オブザーバビリティを実現するメトリクスとは何か?
DevOpsやクラウド適用が進む中で、開発者の中でも注目を集めているキーワードの一つにオブザーバビリティがある。日本語では可観測性と訳されるように、いかに起きた問題を適切に捉えて、正確な対処につなげるための能力である。
セキュリティやIT運用のためのログ管理ツールを提供してきたSplunkも、いち早くオブザーバビリティに参入し、クラウドネイティブ・マイクロサービス時代のオブザーバビリティプラットフォーム「Splunk Observability」を提供している。
Splunk Observabilityの特徴は、「3つある」と大谷氏。一つはリアルタイム性。「メトリクスのリアルタイム性は非常に重要で、Splunkではストリーム技術を用いてリアルタイム性を実現しており、この点が非常に優れている」と語る。第二はNoSampleトレースによる分析力。サンプリングせずに、環境に関するすべてのデータを忠実に計測および収集できること。第三はOpenTelemetryに完全準拠していることである。
「Splunkのスポンサーセッションだが、製品の紹介はこれでほぼ終わり」と語り、大谷氏はオブザーバビリティを実現する3本柱の一つ、メトリクスの説明へと進んだ。
メトリクスとは時間の経過とともに変化する測定可能な数値。「例えば10秒間の平均のレスポンスタイム、1分間のCPU使用率など、特定の時間間隔の統計値。これが、日頃皆さんがメトリクスと呼んでいるものの中身」と大谷氏は説明する。
メトリクスは「ゲージ」「カウンター」「累積カウンター」という3つのデータ型がある。ゲージとは特定の瞬間の値。「例えるなら車のスピードメーターみたいなもの」と大谷氏。次のカウンターは何かが起こるたびに増加する値。「リクエストカウントなどが代表例」(大谷氏)。3つ目の累積カウンターとは累積されるカウンター。1分間のカウンターだと、次の1分の計測が来るまでにリセットをする必要がある。だが、そのリセットするタイミングが非常に難しい。そこで累積カウンターを使い、その中で1分間を切り取る方法でデータを集計する方法が使われる場合がある。
「他にもサマリーみたいな形でデータ型を定義することもあるが、基本的なデータ型はこの3つ」(大谷氏)
メトリクスのデータモデルは、ディメンション(メトリックのメタデータを指定するキーと値のペア)、データポイント(ある時点でのメトリックデータ)、メトリック時系列(MTS:まったく同じデータ型、メトリック名、ディメンションの組み合わせを持つデータポイントのセット)で構成される。
ではダッシュボードに表示したり、アラートを出したりするために、どのようにクエリするか。その方法はいろいろある。例えばメトリック名でクエリをかけたり、ディメンションによってフィルターをかけたりすることはもちろん、集計や計算もできる。「合計、平均やパーセンタイル値、データポイント間の差分などを描画することもできる。そのほかにも、ディメンションによるGroup-by、割合など値同士を使った計算ができます」(大谷氏)
時間範囲と時間的解像度も描画することができる
これらのことができるために、メトリクス処理基盤の性能に求められる重要なポイントは3つ。まずはカーディナリティ、つまりどのくらい細かい情報のデータを管理できるかである。次に重要なのが、保持期間と時間的解像度。時間的にどのくらい細かいデータをどのくらいの期間管理できるかがポイントになる。第三はリアルタイム性。「リアルタイム性についてはわかりやすいので、カーディナリティと保持期間について解説していきたい」と大谷氏。
カーディナリティとは、メトリックスの個々の値の数。言葉にすると難しいが、例を見るとわかりやすい。そこで大谷氏は、Webサーバのリクエストカウントを例に取り次のように説明した。「レスポンスのステータスコードごとに集計している状況で、レスポンスのステータスコードが200と300の2種類あるとする。そのステータスコードごとにリクエストカウントを1分に1回集計するとする。その場合のカーディナリティは2となる」(大谷氏)
ある時点で500エラーが発生したとする。そうなるとリクエストカウントのスレー+コードの種類は3つに増える。カーディナリティは3になる。このようにユニークな値、組み合わせがどれだけあるのかがカーディナリティである。
「面白いポイントは、ディメンションの数が増えたからといって、カーディナリティが増えるとは限らないところ」と大谷氏。例えば東京とパリにサーバホストが10台ずつ動いていて、ホストネームは完全にユニークモノが割り当てられているとする。ではこのカーディナリティはいくつになるか。答えは20である。「カーディナリティは高ければ高いほど、さまざまな分析ができるようになる」(大谷氏)
次は保持期間と時間的解像度。「これはソリューションによってパワーに差が出るところ」と大谷氏は話す。到達したデータポイントは、特定の時間的改造で丸められ、時間経過とともに細かい解像度のデータは破棄するケースも多いからだ。