Skip to content
Snippets Groups Projects
Commit ab576107 authored by Sören Henning's avatar Sören Henning
Browse files

Add Micrometer metrics

parent a83a9f8b
No related branches found
No related tags found
1 merge request!248Add Micrometer metrics to HTTP Bridge
Pipeline #6724 passed
...@@ -24,6 +24,8 @@ dependencies { ...@@ -24,6 +24,8 @@ dependencies {
implementation project(':load-generator-commons') implementation project(':load-generator-commons')
implementation 'io.javalin:javalin:4.3.0' implementation 'io.javalin:javalin:4.3.0'
implementation 'io.micrometer:micrometer-core:1.8.3'
implementation 'io.micrometer:micrometer-registry-prometheus:1.8.3'
implementation 'com.google.code.gson:gson:2.8.2' implementation 'com.google.code.gson:gson:2.8.2'
runtimeOnly 'org.slf4j:slf4j-simple:1.7.25' runtimeOnly 'org.slf4j:slf4j-simple:1.7.25'
......
package theodolite.commons.httpbridge; package theodolite.commons.httpbridge;
import io.javalin.Javalin; import io.javalin.Javalin;
import io.javalin.plugin.metrics.MicrometerPlugin;
import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;
import io.prometheus.client.exporter.common.TextFormat;
import java.util.Collection; import java.util.Collection;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -14,7 +18,9 @@ public class JavalinWebServer { ...@@ -14,7 +18,9 @@ public class JavalinWebServer {
private static final int HTTP_SUCCESS = 200; private static final int HTTP_SUCCESS = 200;
private final Javalin app = Javalin.create(); private final Javalin app;
private final PrometheusMeterRegistry registry;
private final String host; private final String host;
private final int port; private final int port;
...@@ -28,6 +34,10 @@ public class JavalinWebServer { ...@@ -28,6 +34,10 @@ public class JavalinWebServer {
final int port) { final int port) {
this.host = host; this.host = host;
this.port = port; this.port = port;
this.registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
this.app = Javalin.create(config -> {
config.registerPlugin(new MicrometerPlugin(this.registry));
});
this.configureRoutes(converters); this.configureRoutes(converters);
} }
...@@ -40,6 +50,9 @@ public class JavalinWebServer { ...@@ -40,6 +50,9 @@ public class JavalinWebServer {
ctx.status(HTTP_SUCCESS); ctx.status(HTTP_SUCCESS);
}); });
} }
this.app.get("/metrics", ctx -> ctx
.contentType(TextFormat.CONTENT_TYPE_004)
.result(this.registry.scrape()));
} }
public void start() { public void start() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment