Skip to content

Commit 9808407

Browse files
ahornaceVladimir Kotal
authored andcommitted
Export JVM metrics
1 parent 073595b commit 9808407

File tree

7 files changed

+38
-25
lines changed

7 files changed

+38
-25
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/Metrics.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,31 @@
2222
*/
2323
package org.opengrok.indexer;
2424

25+
import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
26+
import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
27+
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
28+
import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
29+
import io.micrometer.core.instrument.binder.system.ProcessorMetrics;
2530
import io.micrometer.prometheus.PrometheusConfig;
2631
import io.micrometer.prometheus.PrometheusMeterRegistry;
2732

2833
public final class Metrics {
2934

30-
private static final PrometheusMeterRegistry instance = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
35+
private static final PrometheusMeterRegistry registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
36+
37+
static {
38+
new ClassLoaderMetrics().bindTo(registry);
39+
new JvmMemoryMetrics().bindTo(registry);
40+
new JvmGcMetrics().bindTo(registry);
41+
new ProcessorMetrics().bindTo(registry);
42+
new JvmThreadMetrics().bindTo(registry);
43+
}
3144

3245
private Metrics() {
3346
}
3447

35-
public static PrometheusMeterRegistry getInstance() {
36-
return instance;
48+
public static PrometheusMeterRegistry getRegistry() {
49+
return registry;
3750
}
3851

3952
}

opengrok-indexer/src/main/java/org/opengrok/indexer/authorization/AuthorizationFramework.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ public final class AuthorizationFramework extends PluginFramework<IAuthorization
5555

5656
private static final Logger LOGGER = LoggerFactory.getLogger(AuthorizationFramework.class);
5757

58-
private final Counter authStackReloadCounter = Metrics.getInstance().counter("authorization_stack_reload");
59-
private final Counter authCacheHits = Metrics.getInstance().counter("authorization_cache_hits");
60-
private final Counter authCacheMisses = Metrics.getInstance().counter("authorization_cache_misses");
61-
private final Counter authSessionsInvalidated = Metrics.getInstance().counter("authorization_sessions_invalidated");
58+
private final Counter authStackReloadCounter = Metrics.getRegistry().counter("authorization_stack_reload");
59+
private final Counter authCacheHits = Metrics.getRegistry().counter("authorization_cache_hits");
60+
private final Counter authCacheMisses = Metrics.getRegistry().counter("authorization_cache_misses");
61+
private final Counter authSessionsInvalidated = Metrics.getRegistry().counter("authorization_sessions_invalidated");
6262

63-
private final Timer authTimer = Metrics.getInstance().timer("authorization");
64-
private final Timer authPositiveTimer = Metrics.getInstance().timer("authorization_positive");
65-
private final Timer authNegativeTimer = Metrics.getInstance().timer("authorization_negative");
63+
private final Timer authTimer = Metrics.getRegistry().timer("authorization");
64+
private final Timer authPositiveTimer = Metrics.getRegistry().timer("authorization_positive");
65+
private final Timer authNegativeTimer = Metrics.getRegistry().timer("authorization_negative");
6666

6767
/**
6868
* Stack of available plugins/stacks in the order of the execution.
@@ -542,8 +542,8 @@ private boolean checkAll(HttpServletRequest request, String cache, Nameable enti
542542
} else {
543543
authNegativeTimer.record(duration);
544544
}
545-
Metrics.getInstance().timer(String.format("authorization_of_%s", entity.getName())).record(duration);
546-
Metrics.getInstance()
545+
Metrics.getRegistry().timer(String.format("authorization_of_%s", entity.getName())).record(duration);
546+
Metrics.getRegistry()
547547
.timer(String.format("authorization_%s_of_%s", overallDecision ? "positive" : "negative", entity.getName()))
548548
.record(duration);
549549

opengrok-indexer/src/main/java/org/opengrok/indexer/authorization/AuthorizationStack.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -285,15 +285,15 @@ protected boolean processStack(Nameable entity,
285285
}
286286
Duration duration = Duration.between(start, Instant.now());
287287

288-
Metrics.getInstance()
288+
Metrics.getRegistry()
289289
.timer(String.format("authorization_in_stack_%s_%s", getName(),
290290
overallDecision ? "positive" : "negative"))
291291
.record(duration);
292-
Metrics.getInstance()
292+
Metrics.getRegistry()
293293
.timer(String.format("authorization_in_stack_%s_%s_of_%s", getName(),
294294
overallDecision ? "positive" : "negative", entity.getName()))
295295
.record(duration);
296-
Metrics.getInstance()
296+
Metrics.getRegistry()
297297
.timer(String.format("authorization_in_stack_%s_of_%s", getName(), entity.getName()))
298298
.record(duration);
299299

opengrok-indexer/src/test/java/org/opengrok/indexer/authorization/AuthorizationFrameworkReloadTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public void run() {
146146
}
147147

148148
// Double check that at least one reload() was done.
149-
long reloads = (long) Metrics.getInstance().counter("authorization_stack_reload").count();
149+
long reloads = (long) Metrics.getRegistry().counter("authorization_stack_reload").count();
150150
assertTrue(reloads > 0);
151151
}
152152

opengrok-web/src/main/java/org/opengrok/web/AuthorizationFilter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ public class AuthorizationFilter implements Filter {
5050

5151
private static final Logger LOGGER = LoggerFactory.getLogger(AuthorizationFilter.class);
5252

53-
private final DistributionSummary requests = Metrics.getInstance().summary(StatisticsFilter.REQUESTS_METRIC);
54-
private final Timer requestsForbidden = Metrics.getInstance().timer("requests_forbidden");
53+
private final DistributionSummary requests = Metrics.getRegistry().summary(StatisticsFilter.REQUESTS_METRIC);
54+
private final Timer requestsForbidden = Metrics.getRegistry().timer("requests_forbidden");
5555

5656
@Override
5757
public void init(FilterConfig fc) {

opengrok-web/src/main/java/org/opengrok/web/StatisticsFilter.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ public class StatisticsFilter implements Filter {
4444

4545
static final String REQUESTS_METRIC = "requests";
4646

47-
private final DistributionSummary requests = Metrics.getInstance().summary(REQUESTS_METRIC);
47+
private final DistributionSummary requests = Metrics.getRegistry().summary(REQUESTS_METRIC);
4848

49-
private final Timer genericTimer = Metrics.getInstance().timer("*");
50-
private final Timer emptySearch = Metrics.getInstance().timer("empty_search");
51-
private final Timer successfulSearch = Metrics.getInstance().timer("successful_search");
49+
private final Timer genericTimer = Metrics.getRegistry().timer("*");
50+
private final Timer emptySearch = Metrics.getRegistry().timer("empty_search");
51+
private final Timer successfulSearch = Metrics.getRegistry().timer("successful_search");
5252

5353
@Override
5454
public void init(FilterConfig fc) throws ServletException {
@@ -83,11 +83,11 @@ public void doFilter(ServletRequest sr, ServletResponse sr1, FilterChain fc)
8383
requests.record(1);
8484
genericTimer.record(duration);
8585

86-
Metrics.getInstance().timer(category).record(duration);
86+
Metrics.getRegistry().timer(category).record(duration);
8787

8888
/* supplementary categories */
8989
if (config.getProject() != null) {
90-
Metrics.getInstance()
90+
Metrics.getRegistry()
9191
.timer("viewing_of_" + config.getProject().getName())
9292
.record(duration);
9393
}

opengrok-web/src/main/java/org/opengrok/web/servlet/MetricsServlet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class MetricsServlet extends HttpServlet {
3737
@Override
3838
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws IOException {
3939
try (PrintWriter pw = resp.getWriter()) {
40-
pw.print(Metrics.getInstance().scrape());
40+
pw.print(Metrics.getRegistry().scrape());
4141
}
4242
}
4343
}

0 commit comments

Comments
 (0)