Spring Boot を Prometheus と統合できたかどうかはわかりませんが、現在、公式の Prometheusclient-java
プロジェクトに専用のコネクタがあります。
プロジェクトのGithubページは次のとおりです。
次の依存関係を追加して使用できますpom.xml
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_spring_boot</artifactId>
<version>0.0.17</version>
</dependency>
これを使用するには、次のように Spring Boot 構成をプロジェクトに追加します。
@Configuration
public class MetricsConfiguration {
@Bean
public ServletRegistrationBean servletRegistrationBean() {
DefaultExports.initialize();
return new ServletRegistrationBean(new MetricsServlet(), "/prometheus");
}
@Bean
public SpringBootMetricsCollector springBootMetricsCollector(Collection<PublicMetrics> publicMetrics) {
SpringBootMetricsCollector springBootMetricsCollector = new SpringBootMetricsCollector(
publicMetrics);
springBootMetricsCollector.register();
return springBootMetricsCollector;
}
}
今後、Spring Boot Actuator によって公開されるメトリクスは、Prometheus カウンターおよびゲージとして利用できるようになります。
情報は、アプリケーションのパス/prometheus
に発行されます。次に、次のような構成で、この情報を使用するように Prometheus に指示する必要があります。
# my global config
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
- job_name: 'your-application-name'
scrape_interval: 5s
metrics_path: '/prometheus'
static_configs:
- targets: ['localhost:8080']
ブラウザーをポイントする/metrics
と、Spring Boot 形式の情報が引き続き表示されます。ただし、ブラウザーを指定http://localhost:9090/graph
すると、そのような情報が Prometheus クエリ ブラウザーに直接クエリされます。
こちらの Github プルリクエストもご覧ください。
更新
の次のリリース0.0.18 では、Spring Boot の構成クラスに注釈を追加して、Prometheus アダプターを自動的simpleclient_spring_boot
に構成するだけで十分です (このテストを見てください)。@EnablePrometheusEndpoint
それが役に立てば幸い。