--- title: Spring Boot 2とMicrometerでPrometheusを使うときの便利PromQLメモ tags: ["Spring Boot", "Micrometer", "Prometheus"] categories: ["Programming", "Java", "org", "springframework", "boot"] date: 2018-03-20T11:39:29Z updated: 2018-03-20T11:48:16Z --- メモ 次の設定がある前提。 ``` properties management.metrics.distribution.percentiles-histogram.http.server.requests=true management.metrics.distribution.sla.http.server.requests=100ms, 400ms, 500ms, 2000ms management.metrics.distribution.percentiles.http.server.requests=0.5, 0.9, 0.95, 0.99, 0.999 ``` Prometheusの場合、Client-side Percentilesの計算(`management.metrics.distribution.percentiles`)は不要であるが、 サーバーで計算するより速いし、ぱっと見るのに便利なので設定しておく。 ### 各URIに対する90パーセンタイル ``` histogram_quantile(0.9, sum(rate(http_server_requests_seconds_bucket{status="200"}[5m])) by (app, uri, le)) ``` ![image](https://user-images.githubusercontent.com/106908/37652499-13648ae0-2c7f-11e8-8afd-633d1e32635a.png) ### 特定のURIに対する各パーセンタイル ``` max(http_server_requests_seconds{uri="/entries/{entryId}", status="200", exception="none"}) by (quantile) ``` ![image](https://user-images.githubusercontent.com/106908/37652522-2a997fa4-2c7f-11e8-9baf-2bef9d5b8099.png) ### T=100msの場合の5min間隔のAppdex Appdexについては[こちら](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction)を参照。 ``` ( sum(rate(http_server_requests_seconds_bucket{le="0.1", status="200"}[5m])) by (app, uri) + sum(rate(http_server_requests_seconds_bucket{le="0.4", status="200"}[5m])) by (app, uri) ) / 2 / sum(rate(http_server_requests_seconds_count[5m])) by (app, uri) ``` ![image](https://user-images.githubusercontent.com/106908/37652561-4663917a-2c7f-11e8-81bf-a4bf0ba3e933.png) ### T=500msの場合の5min間隔のAppdex ``` ( sum(rate(http_server_requests_seconds_bucket{le="0.5", status="200"}[5m])) by (app, uri) + sum(rate(http_server_requests_seconds_bucket{le="2.0", status="200"}[5m])) by (app, uri) ) / 2 / sum(rate(http_server_requests_seconds_count[5m])) by (app, uri) ``` ![image](https://user-images.githubusercontent.com/106908/37652597-61575f48-2c7f-11e8-8ff2-8df946324a87.png)