Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.smartdukaan.cron.monitored;


import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.DistributionSummary;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.stereotype.Service;

@Service
public class CronMetricsService {

    private final Counter cronSuccessCounter;
    private final Counter cronFailureCounter;
    private final DistributionSummary cronDurationSummary;

    public CronMetricsService(MeterRegistry meterRegistry) {
        this.cronSuccessCounter = Counter.builder("cron_execution_success_count")
                .description("Number of successful cron executions")
                .register(meterRegistry);

        this.cronFailureCounter = Counter.builder("cron_execution_failure_count")
                .description("Number of failed cron executions")
                .register(meterRegistry);

        this.cronDurationSummary = DistributionSummary.builder("cron_execution_duration_ms")
                .description("Duration of cron executions")
                .baseUnit("milliseconds")
                .register(meterRegistry);
    }

    public void recordSuccess(long durationMs) {
        cronSuccessCounter.increment();
        cronDurationSummary.record(durationMs);
    }

    public void recordFailure(long durationMs) {
        cronFailureCounter.increment();
        cronDurationSummary.record(durationMs);
    }
}