mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-03-03 19:00:52 +01:00
Add more system metrics (#1609)
Add metrics about logging, file descriptors, process threads and process memory. Rename scm.http.requests to http.server.requests to match micrometer defaults. With this change the exposed metrics are now compatible (except for the tomcat metrics) to the official micrometer grafana dashboard (https://grafana.com/grafana/dashboards/4701).
This commit is contained in:
2
gradle/changelog/system_metrics.yaml
Normal file
2
gradle/changelog/system_metrics.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
- type: added
|
||||
description: Metrics about logging, file descriptors, process threads and process memory ([#1609](https://github.com/scm-manager/scm-manager/pull/1609))
|
||||
@@ -173,6 +173,7 @@ ext {
|
||||
jerseyClientRuntime: "com.sun.jersey.contribs:jersey-apache-client:${jerseyClientVersion}",
|
||||
|
||||
// metrics
|
||||
micrometerCore: "io.micrometer:micrometer-core:${micrometerVersion}"
|
||||
micrometerCore: "io.micrometer:micrometer-core:${micrometerVersion}",
|
||||
micrometerExtra: "io.github.mweirauch:micrometer-jvm-extras:0.2.2"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -117,6 +117,9 @@ dependencies {
|
||||
implementation libraries.legmanShiro
|
||||
implementation libraries.legmanMicrometer
|
||||
|
||||
// metrics
|
||||
implementation libraries.micrometerExtra
|
||||
|
||||
// lombok
|
||||
compileOnly libraries.lombok
|
||||
testCompileOnly libraries.lombok
|
||||
|
||||
@@ -47,7 +47,7 @@ import java.io.IOException;
|
||||
@Priority(Filters.PRIORITY_PRE_BASEURL)
|
||||
public class HttpMetricsFilter extends HttpFilter {
|
||||
|
||||
static final String METRIC_DURATION = "scm.http.requests";
|
||||
static final String METRIC_DURATION = "http.server.requests";
|
||||
|
||||
private final HttpServletRequestTagsProvider tagsProvider = new DefaultHttpServletRequestTagsProvider();
|
||||
|
||||
|
||||
@@ -26,13 +26,18 @@ package sonia.scm.metrics;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import io.github.mweirauch.micrometer.jvm.extras.ProcessMemoryMetrics;
|
||||
import io.github.mweirauch.micrometer.jvm.extras.ProcessThreadMetrics;
|
||||
import io.micrometer.core.instrument.Meter;
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
|
||||
import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
|
||||
import io.micrometer.core.instrument.binder.logging.LogbackMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.FileDescriptorMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.ProcessorMetrics;
|
||||
import io.micrometer.core.instrument.binder.system.UptimeMetrics;
|
||||
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -103,12 +108,19 @@ public class MeterRegistryProvider implements Provider<MeterRegistry> {
|
||||
return staticRegistry;
|
||||
}
|
||||
|
||||
@SuppressWarnings("java:S2095") // we can't close JvmGcMetrics, but it should be ok
|
||||
@SuppressWarnings("java:S2095") // we can't close, but it should be ok
|
||||
private void bindCommonMetrics(MeterRegistry registry) {
|
||||
// bind all metrics for https://grafana.com/grafana/dashboards/4701
|
||||
// expect those for tomcat
|
||||
new ClassLoaderMetrics().bindTo(registry);
|
||||
new JvmMemoryMetrics().bindTo(registry);
|
||||
new JvmGcMetrics().bindTo(registry);
|
||||
new ProcessorMetrics().bindTo(registry);
|
||||
new JvmThreadMetrics().bindTo(registry);
|
||||
new UptimeMetrics().bindTo(registry);
|
||||
new FileDescriptorMetrics().bindTo(registry);
|
||||
new ProcessMemoryMetrics().bindTo(registry);
|
||||
new ProcessThreadMetrics().bindTo(registry);
|
||||
new LogbackMetrics().bindTo(registry);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user