diff --git a/sava-core/src/main/java/fr/agroclim/sava/core/MetricsBasicAuthServlet.java b/sava-core/src/main/java/fr/agroclim/sava/core/MetricsBasicAuthServlet.java index 5d69dad1e477956fe7c46b220a9036b83e48e16d..cd0b4a515b7b4e05e134d8da81c7370460505899 100644 --- a/sava-core/src/main/java/fr/agroclim/sava/core/MetricsBasicAuthServlet.java +++ b/sava-core/src/main/java/fr/agroclim/sava/core/MetricsBasicAuthServlet.java @@ -1,6 +1,10 @@ package fr.agroclim.sava.core; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; import java.util.Base64; import javax.servlet.ServletException; @@ -8,13 +12,14 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import io.prometheus.client.exporter.MetricsServlet; -import java.nio.charset.StandardCharsets; +import lombok.extern.log4j.Log4j2; /** * SAVA metrics servlet, using basic_auth with context parameters. * * @author ltromel */ +@Log4j2 public class MetricsBasicAuthServlet extends MetricsServlet { /** @@ -60,6 +65,15 @@ public class MetricsBasicAuthServlet extends MetricsServlet { "The total amount of memory in the Java virtual machine, measured in bytes"); SavaUtils.addGauge("jvm_free_memory", "The amount of free memory in the Java Virtual Machine, measured in bytes"); + try { + SavaUtils.addCounter("host_distribution", "Host machine distribution (linux only)", "", "version"); + SavaUtils.incrementCounter("host_distribution", new BufferedReader(new InputStreamReader(new ProcessBuilder("lsb_release", "-ds").start().getInputStream())).readLine()); + } catch (final Exception e) { + LOGGER.trace("Could not init host_distribution."); + } + SavaUtils.addCounter("run_since", "Server run date", "", "instant"); + SavaUtils.incrementCounter("run_since", LocalDateTime.now().toString()); + } /**