Prometheus は基本的に、すべてのデータを時系列、つまり同じメトリクスおよび同じラベル付きディメンションのセットに属するタイムスタンプ付きの値のストリームとして保存します。保存された時系列に加えて、Prometheus はクエリの結果としてアドホックな派生時系列を生成する場合があります。
インジケーター (メトリック) の名前とラベル (labels)
各時系列は、 「メトリクス名」と「ラベル」(オプションのキーと値のペア)によって一意に識別されます。
メトリクス名:測定対象のシステムの一般的な特性 (http_requests_total -
受信した HTTP リクエストの総数など) を指定します。
ASCII 文字と数字、アンダースコアとコロンを含めることができます。正規表現と一致する必要があります[a-zA-Z_:][a-zA-Z0-9_:]*
。
注: コロンはユーザー定義の記録ルール用に予約されています。これらは輸出業者や直接の手段によって使用されるべきではありません。
label: Prometheus の次元データ モデル: 同じメトリック名の任意のラベルの組み合わせは、そのメトリックの特定の次元インスタンスを識別します (例: /api/tracks
POST メソッドを使用してすべての http リクエストにアクセスする)。クエリ言語を使用すると、これらのディメンションに基づいてフィルタリングと集計が可能になります。ラベルの追加または削除を含め、ラベル値を変更すると、新しい時系列が作成されます。
タグ名には、ASCII 文字、数字、アンダースコアを含めることができます。これらは正規表現と一致する必要があります[a-zA-Z_][a-zA-Z0-9_]*
。__で始まるタグ名は内部使用のために予約されています。
タグ値には、任意の Unicode 文字を含めることができます。
空のタグ値を持つタグは、存在しないタグと同等とみなされます。
「メトリクスとラベルの命名に関するベスト プラクティス」も参照してください。
サンプル
サンプルは実際の時系列データで構成されます。各サンプルには次のものが含まれます。
- float64 値
- ミリ秒精度のタイムスタンプ
マーキング方法
メトリック名とラベルのセットが与えられると、時系列は多くの場合、次の表記法を使用して識別されます。
<metric name>{<label name>=<label value>, ...}
たとえば、メトリクス名api_http_requests_total
とラベルをmethod="POST"
含む時系列はhandler="/messages"
次のように記述できます。
api_http_requests_total{method="POST", handler="/messages"}