Skip to content

Commit

Permalink
exports dropwizard-metrics to prometheus format
Browse files Browse the repository at this point in the history
Signed-off-by: Max Thonagel <12283268+thoniTUB@users.noreply.github.com>
  • Loading branch information
thoniTUB committed May 6, 2024
1 parent 01734d5 commit bdc7d6a
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 0 deletions.
20 changes: 20 additions & 0 deletions backend/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -389,5 +389,25 @@
<artifactId>ngdbc</artifactId>
<version>2.17.10</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_dropwizard</artifactId>
<version>0.16.0</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>prometheus-metrics-simpleclient-bridge</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>prometheus-metrics-exporter-servlet-jakarta</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>prometheus-metrics-core</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
</project>
3 changes: 3 additions & 0 deletions backend/src/main/java/com/bakdata/conquery/Conquery.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.bakdata.conquery.commands.ShardNode;
import com.bakdata.conquery.io.jackson.Jackson;
import com.bakdata.conquery.io.jackson.MutableInjectableValues;
import com.bakdata.conquery.metrics.prometheus.PrometheusBundle;
import com.bakdata.conquery.mode.Manager;
import com.bakdata.conquery.mode.ManagerProvider;
import com.bakdata.conquery.mode.cluster.ClusterManagerProvider;
Expand Down Expand Up @@ -82,6 +83,8 @@ public void initialize(Bootstrap<?> bootstrap) {
bootstrap.getConfigurationSourceProvider(), StringSubstitutor.createInterpolator()));
}
});

bootstrap.addBundle(new PrometheusBundle());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.bakdata.conquery.metrics.prometheus;

import com.bakdata.conquery.models.config.ConqueryConfig;
import io.dropwizard.core.ConfiguredBundle;
import io.dropwizard.core.setup.Bootstrap;
import io.dropwizard.core.setup.Environment;
import io.prometheus.client.CollectorRegistry;
import io.prometheus.client.dropwizard.DropwizardExports;
import io.prometheus.metrics.exporter.servlet.jakarta.PrometheusMetricsServlet;
import io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector;
import org.eclipse.jetty.servlet.ServletHolder;

public class PrometheusBundle implements ConfiguredBundle<ConqueryConfig> {

@Override
public void initialize(Bootstrap<?> bootstrap) {
// Init simple_client https://www.robustperception.io/exposing-dropwizard-metrics-to-prometheus/
CollectorRegistry.defaultRegistry.register(new DropwizardExports(bootstrap.getMetricRegistry()));
// Init client_java bridge: https://prometheus.github.io/client_java/migration/simpleclient/
SimpleclientCollector.builder().register();
}

@Override
public void run(ConqueryConfig configuration, Environment environment) throws Exception {

environment.getAdminContext().addServlet(new ServletHolder(new PrometheusMetricsServlet()), "/metrics-prometheus");
}
}

0 comments on commit bdc7d6a

Please sign in to comment.