All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.taskurotta.service.recovery.MetricsRecoveryService Maven / Gradle / Ivy

package ru.taskurotta.service.recovery;

import ru.taskurotta.service.metrics.Metric;
import ru.taskurotta.service.metrics.MetricName;
import ru.taskurotta.service.metrics.MetricsFactory;

import java.util.Collection;
import java.util.UUID;

/**
 * Wrapper for RecoveryProcessService providing metrics data gathering for console
 * Date: 13.02.14 12:46
 */
public class MetricsRecoveryService implements RecoveryService {

    private RecoveryService recoveryService;
    private MetricsFactory metricsFactory;

    public MetricsRecoveryService(RecoveryService recoveryService, MetricsFactory metricsFactory) {
        this.recoveryService = recoveryService;
        this.metricsFactory = metricsFactory;
    }

    @Override
    public boolean resurrectProcess(UUID processId) {
        long start = System.currentTimeMillis();
        boolean result = recoveryService.resurrectProcess(processId);
        long period = System.currentTimeMillis() - start;
        Metric recoveryMetric = metricsFactory.getInstance(MetricName.RECOVERY.getValue());
        recoveryMetric.mark(MetricName.RECOVERY.getValue(), period);

        if (result) {
            recoveryMetric.mark("restartSuccess", period);
        } else {
            recoveryMetric.mark("restartSkip", period);
        }

        return result;
    }

    @Override
    public Collection resurrectProcesses(Collection processIds) {
        return recoveryService.resurrectProcesses(processIds);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy