| 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 |
}
|