Skip to content
Latchkey

metricとは何か? 時系列測定の解説

metricは、システムの何らかの性質の数値測定で、時系列で繰り返し捕捉され、それがどう推移し、急増し、劣化するかを見られるようにします。

metricは、オブザーバビリティのシグナルの中で最も安価で最もスケーラブルです。metricは、イベントのストリームを、密に保存でき高速にクエリできる数値へと縮約します。これはdashboardやアラートが必要とするまさにそのものです。トレードオフは、metricが個々のイベントの詳細を失うことです。

metricとは何か

metricは、名前、値、timestamp、そして通常はそれに次元を与えるラベルのセットです。時系列として保存され、生のイベントを走査することなく「リクエストのレイテンシは過去1時間でどう動いたか」といった問いに答えます。metricは事前に集約されているため、大量であっても保持が安価なままです。

一般的なmetricの型

  • counter: 処理したリクエストの総数のように、増加するだけの値。
  • gauge: 現在のメモリ使用量のように、増減する値。
  • histogram: リクエストの所要時間のように、範囲にバケット化された値の分布。

metricとlogs

metricはレイテンシが上がったことを教え、logは特定の遅いリクエストについて教えます。metricは個々のイベントについては集約的で次元を持たないため、傾向やアラートには理想的ですが、一つの異常なトランザクションを説明するには役立ちません。2つのシグナルは異なる問いに答え、一緒だと最も強力です。

cardinality

metric名とラベル値の一意な組み合わせごとに、別々の時系列になります。user IDのような多様性の高いラベルを追加すると、系列数が倍増し、metricシステムを圧倒しかねません。ラベルを低cardinalityに保つことが、metric設計で最も重要な規律です。

CI/CDにおけるmetric

有用なpipelineのmetricには、buildの所要時間、成功率、キュー時間、テスト数が含まれます。時間経過に沿ったgaugeやcounterとして、それらはpipelineがreleaseごとに遅くなっているかflakyになっているかを明らかにし、変更の前後でアプリケーションのmetricを比較するdeploy後のcheckを支えます。

重要なポイント

  • metricは、時系列で追跡される数値測定で、しばしばラベルを伴います。
  • 中心的な型はcounter、gauge、histogramです。
  • metricは傾向を示し、logsは個々のイベントを説明します。
  • 所要時間や成功率といったpipelineのmetricは、時間経過とともにCIの健全性を明らかにします。

関連ガイド