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

io.mosip.registration.metrics.DiskMetrics 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.io.File;

import static java.util.Collections.emptyList;

public class DiskMetrics implements MeterBinder {

    private final Iterable tags;

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

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

    @Override
    public void bindTo(MeterRegistry registry) {
        File dir = new File(System.getProperty("user.dir"));

        Gauge.builder("disk.usable", dir, (t) -> {
            return Long.valueOf(t.getUsableSpace()).doubleValue();
        }).tags(tags).strongReference(true).register(registry);

        Gauge.builder("disk.free", dir, (t)  -> {
            return Long.valueOf(t.getFreeSpace()).doubleValue();
        }).tags(tags).strongReference(true).register(registry);

        Gauge.builder("disk.total", dir, (t) -> {
            return Long.valueOf(t.getTotalSpace()).doubleValue();
        }).tags(tags).strongReference(true).register(registry);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy