Member-only story

Prometheusのデータのバックフィリング

gavin.zhou
5 min readAug 17, 2021

--

長い間、みなさんより要望があったPrometheusのバックフィリングサポートが、v2.24.0のリリースでついに実現しました。

OpenMetrics primer

Prometheusのバックフィリングは、現在のところ OpenMetricsフォーマットのみをサポートしています。これはメトリクスをシンプルなテキスト(またはprotobuf)で表したものです。

例:

# HELP http_requests_total The total number of HTTP requests.# TYPE http_requests_total counter http_requests_total{code="200",service="user"} 123 1609954636 http_requests_total{code="500",service="user"} 456 1609954730# EOF

HELPとTYPEは、MetricFamily(セット)の簡単な説明とそのデータ・タイプを表示しているMetricFamilyメタデータです。http_requests_total MetricFamilyには、2つのメトリックが含まれています。どちらもコンマで区切られたラベル、値、タイムスタンプ(Unix時間)が表示されます。

注意点:ファイル(”exposition”)はEOFで終わるようにしてください。

Backfilling

新しいバックフィリングのサポートは、promtoolを介してtsdbにcreate-blocks-from openmetricsサブコマンドとして実装されています。試しにやってみましょう。

まず、v2.24.0以降が動作していることを確認してください。お使いのディストリビューションにまだ入っていない場合は、バイナリリリースが便利です。

デフォルトのコンフィグレーションでprometheusを起動すると、以下のコンテンツのデータディレクトリが作成されます。

❯ tree datadata├── chunks_head├── lock├── queries.active└── wal└── 00000000

バックフィリングのコマンドを走らせてみましょう。

❯ ./promtool tsdb create-blocks-from openmetrics metrics

--

--

No responses yet