Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
34554 tejus.loha 1
package com.smartdukaan.cron.monitored;
2
 
3
 
4
import io.micrometer.core.instrument.Counter;
5
import io.micrometer.core.instrument.DistributionSummary;
6
import io.micrometer.core.instrument.MeterRegistry;
7
import org.springframework.stereotype.Service;
8
 
9
@Service
10
public class CronMetricsService {
11
 
12
    private final Counter cronSuccessCounter;
13
    private final Counter cronFailureCounter;
14
    private final DistributionSummary cronDurationSummary;
15
 
16
    public CronMetricsService(MeterRegistry meterRegistry) {
17
        this.cronSuccessCounter = Counter.builder("cron_execution_success_count")
18
                .description("Number of successful cron executions")
19
                .register(meterRegistry);
20
 
21
        this.cronFailureCounter = Counter.builder("cron_execution_failure_count")
22
                .description("Number of failed cron executions")
23
                .register(meterRegistry);
24
 
25
        this.cronDurationSummary = DistributionSummary.builder("cron_execution_duration_ms")
26
                .description("Duration of cron executions")
27
                .baseUnit("milliseconds")
28
                .register(meterRegistry);
29
    }
30
 
31
    public void recordSuccess(long durationMs) {
32
        cronSuccessCounter.increment();
33
        cronDurationSummary.record(durationMs);
34
    }
35
 
36
    public void recordFailure(long durationMs) {
37
        cronFailureCounter.increment();
38
        cronDurationSummary.record(durationMs);
39
    }
40
}