2

プロメテウス メトリック サーブレットを使用してメトリックを公開し、Java クライアント API プロメテウスが提供します。

サーブレットを登録するのと同じ方法でサーブレットを登録しました。以下を参照してください。

 @Bean
public ServletRegistrationBean registerPrometheusExporterServlet(CollectorRegistry metricRegistry) {
    return new ServletRegistrationBean(new MetricsServlet(metricRegistry), "/metrics");
}

ただし、このサーブレットを管理ポートに追加するか、prometheus バージョンが springboot のデフォルトの /metrics サービスを置き換える可能性がある場合は、このサーブレットを追加したいと考えています。このようなことができるでしょうか?そしてどうやって?

ありがとう、ダニエラ

4

1 に答える 1

5

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

それが役に立てば幸い。

于 2016-10-19T13:13:43.730 に答える