SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2022 Summer レポート(PR)

いまさら聞けない「メトリクス」とは?――注目を集めるオブザーバビリティの実現にどう役立つのか 【デブサミ2022夏】

【A-2】入門 メトリクス

  • このエントリーをはてなブックマークに追加

 何かが起こったとしてもシステム全体の状況を把握できる能力、「オブザーバビリティ(可観測性)」が注目を集めている。オブサーバビリティを実現するためのベストプラクティスとして挙げられるのが「メトリクス(何が起きているか)」「ログ(どんな問題が発生したか)」「トレース(どこで問題が起きているか)」の3本柱。本セッションでは古典的でありかつ、おそらく誰もが扱っているツールである「メトリクス」に焦点を当て、メトリクスとは何か、どう役立つのかについて、包括的なオブザーバビリティツールを提供しているSplunk Services Japanの大谷和紀氏が紹介した。

  • このエントリーをはてなブックマークに追加

Splunk Services Japan合同会社 Senior Sales Engineer, Observability 大谷和紀氏
Splunk Services Japan合同会社 Senior Sales Engineer, Observability 大谷和紀氏

オブザーバビリティを実現するメトリクスとは何か?

 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である。「カーディナリティは高ければ高いほど、さまざまな分析ができるようになる」(大谷氏)

 次は保持期間と時間的解像度。「これはソリューションによってパワーに差が出るところ」と大谷氏は話す。到達したデータポイントは、特定の時間的改造で丸められ、時間経過とともに細かい解像度のデータは破棄するケースも多いからだ。

メトリクス処理基盤の性能
メトリクス処理基盤の性能

次のページ
オブザーバビリティを実現するために――メトリクスの実用例を紹介

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2022 Summer レポート連載記事一覧

もっと読む

この記事の著者

中村 仁美(ナカムラ ヒトミ)

 大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16312 2022/09/08 17:04

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング