web-dev-qa-db-ja.com

Prometheusエンドポイントが機能しないSpringBoot 2.0.0.RC1 SpringWebfluxが有効

私はここのドキュメントに従いました( https://docs.spring.io/spring-boot/docs/2.0.0.RC1/reference/htmlsingle/#production-ready-endpoints-enabling-endpoints )そして、application.ymlファイルに以下があることを確認しました

management:
  metrics:
    export:
      prometheus:
        enabled: true
  endpoints:
    web:
      expose:
        health, info, httptrace, metrics, threaddump, mappings, prometheus

ドキュメント( https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/actuator-api/html/#prometheus )によると、以下は機能しません。

curl 'http://localhost:8080/actuator/prometheus' -i

404ハンドラーマッピングが見つからないという例外が発生します。誰かがスクレイピングの目的でプロメテウスエンドポイントを有効にする方法と、それをテストするために使用する必要があるURLエンドポイントを教えてもらえますか?

o.s.w.r.r.m.a.RequestMappingHandlerMapping[276] - Did not find handler method for [/actuator/prometheus]

他のすべてのエンドポイントのヘルス、情報、httptrace、スレッドダンプ、マッピングは完全に正常に機能しています。

6
ROCKY

少し遅れていますが、念のためですが、これが2.0.0.RELEASEで機能することを確認できます。

依存関係(段階):

compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('io.micrometer:micrometer-registry-prometheus')

application.yaml( 参照

management:
  endpoints:
    web:
      exposure:
        include: health,info,prometheus

@ROCKYが説明したように、RC1(プロメテウスエンドポイントが何らかの理由で表示されない)でもテストしました。

11
Lachezar Balev

確認できることがいくつかあります。

  1. MeterRegistryインストルメンテーションライブラリのPrometheus「サブシステム」が存在するように、必要なMicrometer実装を追加しましたか? ( Micrometer ライブラリは、Spring Boot 2.0の時点でアクチュエータの実装に電力を供給しています)

    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>
    

    特定のMeterRegistry実装がないと、SimpleMeterRegistry実装を利用した通常の/actuator/metricsエンドポイントになります。

  2. 上記のプロパティをapplication.[yml,yaml]ではなくapplication.propertiesファイルに実際に配置しましたか? (私は Spring Initializr で生成された新しいデモプロジェクトで同じことに遭遇しました。)

8
mweirauch

私は同じ問題を経験し、構成に「include」タグを追加することでそれを修正することができました。

管理:
メトリック:
エクスポート:
プロメテウス:
有効:true 
エンドポイント:
ウェブ: 
露出:
インクルード:プロメテウス、情報、メトリクス、スレッドダンプ
3
ypgrument

アプリケーションを1.5から2.1.3にアップグレードしたときに同じ問題が発生しました。これに従うことで修正できました Spring Boot 2.0 Prometheusの下位互換性

依存関係リストにmicrometer-registry-prometheusが必要であり、SpringBootApplicationクラスに以下を追加します。

@Bean
public CollectorRegistry collectorRegistry() {
    return CollectorRegistry.defaultRegistry;
}
0
dushshantha