このドキュメントで提示されているメトリクスとラベルの規則は、Prometheusを使用する上で必須ではありませんが、スタイルガイドとベストプラクティスのコレクションの両方として役立ちます。個々の組織は、これらのプラクティス、例えば命名規則などに対して異なるアプローチを取りたい場合があります。
メトリクス名は...
namespace
と呼ばれることもあります。アプリケーションに固有のメトリクスの場合、プレフィックスは通常アプリケーション名自体です。しかし、クライアントライブラリによってエクスポートされる標準化されたメトリクスのように、より一般的なメトリクスもあります。例:prometheus_notifications_total
(Prometheusサーバーに固有)process_cpu_seconds_total
(多くのクライアントライブラリによってエクスポートされる)http_request_duration_seconds
(すべてのHTTPリクエスト用)total
を接尾辞として持つことに注意してください。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
(データ処理パイプラインで処理された最新のレコードの時間を追跡するタイムスタンプの場合)経験則として、特定のメトリクスのすべてのディメンションにわたるsum()
またはavg()
のいずれかが意味を持つ必要があります(必ずしも有用である必要はありません)。意味がない場合は、データを複数のメトリクスに分割してください。たとえば、1つのメトリクスにさまざまなキューの容量を含めるのは良いことですが、キューの容量とキュー内の現在の要素数を混在させるのは良くありません。
測定されているものの特性を区別するためにラベルを使用します。
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]) を実行すると、ワット単位の電力が得られます。 |
|
質量 | グラム | キロ接頭辞に関する問題を避けるために、キログラムよりもグラムが推奨されます。 |
このドキュメントはオープンソースです。問題点を報告するか、プルリクエストを提出して、改善にご協力ください。