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

io.mosip.registration.metrics.SystemTimeMetrics Maven / Gradle / Ivy

package io.mosip.registration.metrics;

import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tag;
import io.micrometer.core.instrument.binder.MeterBinder;

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.util.Date;

import static java.util.Collections.emptyList;

public class SystemTimeMetrics implements MeterBinder {

    private final Iterable tags;

    public SystemTimeMetrics() {
        this(emptyList());
    }

    public SystemTimeMetrics(Iterable tags) {
        this.tags = tags;
    }

    @Override
    public void bindTo(MeterRegistry registry) {
        RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean();

        Gauge.builder("system.uptime", rb, RuntimeMXBean::getUptime)
                .tags(tags)
                .register(registry);

        Gauge.builder("system.time", System.currentTimeMillis(), Double::valueOf)
                .strongReference(true)
                .tags(tags)
                .register(registry);

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy