メトリクスのフォーマット
Sumo は、Graphite、Carbon 2.0、Prometheus のメトリクス フォーマットをサポートしています。
Graphite
Graphite メトリクスの形式は次のようになります。
metric_path metric_value metric_timestamp
各パラメータの説明
metric_path
は、測定している内容を識別するドット区切りの文字列です。metric_value
は任意の数値です。metric_timestamp
は UNIX タイムスタンプです。
Graphite メトリクスの例を次に示します。
cluster-1.node-1.cpu-1.cpu-idle 97.29 1460061337
上記のメトリクスの説明
- 測定している内容は
cluster-1.node-1.cpu-1.cpu-idle
です。これは cluster-1 内の node-1 内の cpu-1 のcpu-idle
値を意味します。 - 測定値は 97.29 です。
- メトリクスが測定されたインスタンスのタイムスタンプは 1460061337 です。
Carbon 2.0
Carbon 2.0 メトリクスは、メトリクス 2.0 仕様に準拠しています。Carbon 2.0 メトリクスは次のようになります。
intrinsic_tags meta_tags value timestamp
各パラメータの説明
intrinsic_tags
は、測定している内容を一意に識別する 1 つ以上のスペース区切りのキーと値のペアです。組み込みタグはディメンションとも呼ばれます。meta_tags
は 0 個以上のスペース区切りのキーと値のペアであり、測定している内容に関する追加の非識別情報を提供します。メタ タグとは、メトリクスのクエリに役立つ可能性がある 1 個のメタデータです。測定している内容は識別しませんが、関心のある追加情報を得ることができます。たとえば、測定値を取得した収集エージェントを知ると役立つ場合があります。value
は任意の数値です。timestamp
は UNIX タイムスタンプです。
上記の Graphite 形式のメトリクスでは、測定している内容を識別する metric_path
は
cluster-1.node-1.cpu-1.cpu-idle
Carbon 2.0 形式では、その metric_path は次の組み込みタグのセットに変換されます。
<v> cluster=cluster-1 node=node-1 cpu=cpu-1 metric=cpu_idle</v>
Carbon 2.0 はメタ タグをサポートしているため、Graphite よりも便利なメトリクス形式です。したがって、このメトリクス例の Carbon 2.0 形式バージョンには、メトリクスのクエリが容易になる追加のキーと値のペアを含めることができます。たとえば、次の例ではメトリクスを収集したエージェントを識別するメタ タグを含めています。
cluster=cluster-1 node=node-1 cpu=cpu-1 agent=biggie metric=cpu_idle
Prometheus
Prometheus 形式では、時系列はそのメトリクス名とラベルのセット (キーと値のペア) によって一意に識別されます。形式は次のようになります。
# HELP metric_name metric_description
# TYPE metric_name metric_type
metric_name labels value timestamp
metric_name labels value timestamp
2 つの時系列での Prometheus メトリクス公開の例を次に示します。(メトリクスを Prometheus で使用可能にするプロセスは「公開」と呼ばれます)。
# HELP http_requests_total The total number of HTTP requests.
# TYPE http_requests_total counter
http_requests_total{method="post",code="200"} 1027 1395066363000
http_requests_total{method="post",code="400"} 3 1395066363000
Prometheus メトリクス公開のコンポーネントの説明については、以下の表を参照してください。
コンポーネント | 説明 |
metric_name |
測定されるシステムの一般的な機能を指定します。例:http_requests_total |
metric_description |
メトリクスの任意の説明またはカテゴリ。例:requests |
metric_type |
メトリクスの種類 (counter 、gauge 、histogram 、summary 、untyped のいずれか)。 |
labels |
メトリクスの特定のディメンション インスタンス化を識別する、0 個以上のスペース区切りのキーと値のペア。例を次に示します。http_requests_total{method="post",code="200"} 1027 1395066363000 |
value |
メトリクスの値。 |
timestamp |
メトリクスが収集された時刻 (int64 形式)。 |
Prometheus 形式は、形式自体ではメタデータをサポートしていません。メトリクスを Sumo にアップロードするときに HTTP ヘッダーでメタデータを指定することで、Prometheus メトリクスにメタデータを添付できます。詳細については、「HTTP Source へのメトリクスのアップロード」を参照してください。