このドキュメントで提示されているメトリックとラベルの規則は、Prometheusの使用に必須ではありませんが、スタイルガイドとベストプラクティスの集まりとして役立ちます。個々の組織は、命名規則などの一部のプラクティスに異なるアプローチを取ることを望むかもしれません。
メトリック名は...
namespace
と呼ばれることがあります。アプリケーションに固有のメトリックの場合、プレフィックスは通常、アプリケーション名自体です。ただし、クライアントライブラリによってエクスポートされる標準化されたメトリックのように、より一般的なメトリックもあります。例prometheus_notifications_total
(Prometheusサーバーに固有)process_cpu_seconds_total
(多くのクライアントライブラリによってエクスポートされる)http_request_duration_seconds
(すべてのHTTPリクエスト用)total
が接尾辞として付きます。また、これは狭義の単位(下記の表の単位のようなもの)に適用され、一般的な数えられるものには適用されないことに注意してください。例えば、connections
やnotifications
はこのルールの単位とは見なされず、メトリック名の最後に置く必要はありません。(次の段落の例も参照してください。)http_request_duration_seconds
node_memory_usage_bytes
http_requests_total
(単位なしの累積カウントの場合)process_cpu_seconds_total
(単位付きの累積カウントの場合)foobar_build_info
(実行中のバイナリに関するメタデータを提供する疑似メトリックの場合)data_pipeline_last_record_processed_timestamp_seconds
(データ処理パイプラインで処理された最新レコードの時刻を追跡するタイムスタンプの場合)prometheus_tsdb_head_truncations_closed_total
prometheus_tsdb_head_truncations_established_total
prometheus_tsdb_head_truncations_failed_total
prometheus_tsdb_head_truncations_total
prometheus_tsdb_head_series
のような無関係なメトリックが間にソートされる可能性があります。prometheus_tsdb_head_closed_truncations_total
prometheus_tsdb_head_established_truncations_total
prometheus_tsdb_head_failed_truncations_total
prometheus_tsdb_head_truncations_total
経験則として、特定のメトリックのすべてのディメンションにおけるsum()
またはavg()
は意味を持つべきです(必ずしも有用であるとは限りませんが)。意味がない場合は、データを複数のメトリックに分割してください。たとえば、さまざまなキューの容量を1つのメトリックにまとめるのは良いですが、キューの容量とキュー内の現在の要素数を混在させるのは良くありません。
一部のメトリック命名規則(例:OpenTelemetry)では、メトリックの単位や型に関する情報をメトリック名に含めることを推奨しないか、あるいは許可していません。一般的な議論としては、それらの情報はすでに他の場所(例:スキーマ、メタデータ、その他のラベルなど)で定義されているというものです。
Prometheusは、その情報を他の場所に保存している場合でも、以下の実用的な理由から、メトリック名に単位と型を含めることを強く推奨します。
process_cpu
)ケースがあります。ラベルを使用して、測定対象の特性を区別します
api_http_requests_total
- リクエストの種類を区別: operation="create|update|delete"
api_request_duration_seconds
- リクエストの段階を区別: stage="extract|transform|load"
ラベル名をメトリック名に含めないでください。これは冗長性を招き、該当するラベルが集約された場合に混乱を招く可能性があります。
Prometheusにはハードコードされた単位はありません。互換性を高めるため、基本単位を使用すべきです。以下に、いくつかのメトリックファミリーとその基本単位をリストします。このリストはすべてを網羅しているわけではありません。
ファミリー | 基本単位 | 備考 |
---|---|---|
時間 | 秒 | |
温度 | 摂氏 | 実用的な理由から、ケルビンよりも摂氏が好まれます。ケルビンは、色温度や温度が絶対値でなければならない特殊なケースでは基本単位として許容されます。 |
長さ | メートル | |
バイト | バイト | |
ビット | バイト | 異なるメトリックを組み合わせる際の混乱を避けるため、ビットの方が一般的と思われる場合でも、常にバイトを使用してください。 |
パーセント | 比率 | 値は0-1です(0-100ではありません)。ratio はdisk_usage_ratio のような名前の接尾辞としてのみ使用されます。通常のメトリック名はA_per_B のパターンに従います。 |
電圧 | ボルト | |
電流 | アンペア | |
エネルギー | ジュール | |
電力 | ジュールのカウンタをエクスポートすることを推奨します。そうすれば、rate(joules[5m]) でワット単位の電力が得られます。 |
|
質量 | グラム | キログラムではなくグラムが好まれます。これは、キロプレフィックスに関する問題を避けるためです。 |
このドキュメントはオープンソースです。問題の報告やプルリクエストの提出にご協力ください。