オブザーバビリティメトリクスの理解:種類、ゴールデンシグナル、ベストプラクティス

オブザーバビリティメトリクスは、アプリケーション、システム、インフラのパフォーマンス、動作、健全性に関する洞察を提供し、データの分析を通じてシステムの内部状態を把握する、いわゆる「オブザーバビリティ」の実践を可能にします。組織が収集するデータが増えるにつれ、オブザーバビリティメトリクスはオブザーバビリティに関する重要なテレメトリシグナルとなっています。
現代のアプリケーション開発において、オブザーバビリティとは、さまざまなソースからテレメトリデータ—ログ、メトリクス、トレースを収集および分析し、環境で実行されているアプリケーションの動作に関する詳細な洞察を得ることを意味します。オブザーバビリティメトリクスは、組織が運用状況を把握し、積極的な監視プロセスを構築するのに役立つテレメトリシグナルです。
オブザーバビリティメトリクスを活用することで、組織は技術スタックのパフォーマンスを包括的に把握でき、問題の診断と解決時間を短縮できます。オブザーバビリティメトリクスを効果的に使用すると、成長を促進し、組織がイノベーションに集中するための貴重なビジネスの洞察を得ることができます。
オブザーバビリティの3つの柱
オブザーバビリティの基盤は、多くの場合、 メトリクス、ログ、トレースという3つの柱で説明されています。これらは共に、システムのパフォーマンスと動作に不可欠な可視性を提供します。テクノロジーが進歩し続け、オブザーバビリティの需要が高まるとともに、4つ目の柱であるプロファイルが現れます。
メトリクス
メトリクスは、ハードウェア、ソフトウェア、Webサイトから収集された生のデータポイントです。既知のものを測定する場合、メトリクスは、リソースの使用状況、パフォーマンス、ユーザー行動を監視するために使用されます。言い換えれば、メトリクスは、システムで何が起きているかを監視とオブザーバビリティチームに伝えます。
オブザーバビリティメトリクスのコアタイプ
オブザーバビリティとは、組織が自社の環境と運用を360度見渡せるようにする手法です。オブザーバビリティは、これを実行するために以下のコアタイプのメトリクスに依存します:
アプリケーションメトリクス:アプリケーションメトリクスは、技術スタック内のアプリケーションによって生成され、アプリケーションに関連するデータです。一般的に使用されるメトリクスの例としては、応答時間、スループット、リクエストレート、エラー数などが挙げられます。これらのメトリクスにより、エンジニアはアプリケーションのパフォーマンスと可用性を監視できます。アプリケーションメトリクスは、アプリケーションパフォーマンス監視(APM)でも使用されます。
システムメトリクス:システムメトリクス(別名インフラメトリクス)は、Kubernetesなどの主要コンポーネントを含むハードウェアとオペレーティングシステムの健全性を反映します。CPU使用率、ディスクI/O、ネットワークスループット、メモリ使用量、インスタンスのアップタイム、コンテナリソースの使用率、サービスの可用性などが挙げられます。これらのメトリクスは、クラウドリソース、仮想マシン、コンテナ、その他の基盤コンポーネントのパフォーマンスに関する洞察を提供します。
ビジネスメトリクス:ビジネスメトリクスは、技術的および運用上のパフォーマンスをビジネス成果に結び付けます。たとえば、コンバージョン率、平均取引値、ユーザー保持率などのメトリクスは、システムのパフォーマンスを組織の目標と関連付けるのに役立ちます。
効果的なオブザーバビリティソリューションは、信頼性、効果的なリソース配分、コンプライアンス、セキュリティを保証します。また、容量の計画、パフォーマンスの最適化、ユーザー体験の向上、コストの管理にも役立ちます。コアメトリクスは、効果的なオブザーバビリティを可能にし、最終的に、良いビジネス成果につなげるためのデータに基づいた意思決定を可能にします。これらのメトリクスは通常、リアルタイムのパフォーマンス監視向けにダッシュボードに集約および可視化されます。
ログ
ログは、システム、アプリケーション、ネットワーク、インフラによって生成された特定のイベントのタイムスタンプ付きエントリです。イベントの詳細とコンテキストが提供されるため、エンジニアは問題が発生した理由を理解できます。
ネットワークデバイス、アプリケーション、オペレーティングシステム、IoTデバイス、サードパーティアプリケーションは、以下を含みますが、これらに限定されないさまざまな種類のログを出力します。
システムログ:これには、接続の試行、エラー、設定変更などのイベントが含まれます。
アプリケーションログ:ソフトウェアの変更、CRUD操作、アプリケーション認証、その他のイベントを記録し、問題の診断を支援します。
ネットワークログ:ネットワークログは、ネットワークまたはデバイス上で発生するイベントのデータを記録します。これには、ネットワークトラフィック、セキュリティイベント、ユーザーアクティビティが含まれます。
ログは構造化と非構造化の形式で記録されるため、ストレージ容量の確保が課題となります。また、ログデータはさまざまなシステムにサイロ化され、自動的に相関付けられていないことが多いため、分類が困難な場合もあります。
トレース
トレースは、エンジニアがアプリケーションやサービスをユーザーセッションの視点から見るためのテレメトリシグナルです。分散トレーシングは、分散アーキテクチャを通過するリクエストのトレースを収集します。
トレースを使用すると、エンジニアはアプリケーションを監視およびデバッグし、ボトルネックを発見できます。つまり、トレースはDevOpsチームに環境内で問題が発生している場所を伝えます。トレースは積極的な監視の基盤です。トレースを分析することで、エンジニアは特定の問題に関連するメトリクスやログを特定し、将来の問題を軽減できます。
たとえば、速度の遅いプロセスを特定するのに役立つトレースには、APIクエリ、フロントエンドAPIトラフィック、サーバー間のワークロード、内部API呼び出しが含まれます。
メトリクス、ログ、トレースはユーザーに貴重なアプリケーションとシステムのパフォーマンスデータを提供しますが、これらのシグナルは、コードのトラブルシューティングやパフォーマンスチューニングに必要な詳細を必ずしも提供しません。そこで、プロファイルの出番です。
プロフィール
プロファイリングはプロファイルの収集と分析を行うことで、カーネルレベルとユーザーレベルのデータ構造、コード可視性、メモリ配分に関連する問題を特定するのに役立つスタックトレースです。
プロファイリングは、システム全体のボトルネックをコードレベルで発見するのに役立ちます。これは、最新のオブザーバビリティのもう1つの重要な利点です。OpenTelemetryもプロファイリングをシグナルとして採用しています。その結果、プロファイリングはオブザーバビリティの4つ目で最新の柱として浮上しています。
必須のオブザーバビリティメトリクス:SREチーム向けの4つのゴールデンシグナル
各組織の監視ニーズはそれぞれ異なりますが、特定のオブザーバビリティメトリクスは普遍的に重要です。これらのメトリクスは、サイト信頼性エンジニアリング(SRE)のコミュニティでは4つのゴールデンシグナルと呼ばれることがあります。
レイテンシ
レイテンシは、データがある地点から別の地点に移動するのにかかる時間を測定します。レイテンシは根本的なパフォーマンスの問題を示すものです。レイテンシが高いと、読み込み時間が長くなり、アプリケーションエラーが発生し、ユーザーの期待が損なわれるため、ユーザー体験の質が低下する可能性があります。
トラフィック
トラフィックメトリクスは、アプリケーションが処理するリクエストや取引の量を追跡します。これらは、チームがユーザーの行動を理解し、スケーリングのニーズを予測するのに役立ちます。
エラー
エラーメトリクスは、失敗したリクエストまたは操作の可視性を提供します。エラー率を監視し、パターンを識別することで、繰り返し発生する問題に対処するのに役立ちます。
飽和状態
飽和メトリクスは、システムが容量制限にどれだけ近いかを示します。リソースの使用状況を監視することで、エンジニアはパフォーマンスに影響を与える前にボトルネックに積極的に対処できます。
これら4つのゴールデンシグナルは、ITシステムの健全性とパフォーマンスに関する洞察を提供するため、効果的なオブザーバビリティの実践の鍵となります。これらのメトリクスを監視、関連付け、分析することで、ITチームは実用的な洞察を得ることができ、サイトの信頼性とパフォーマンスの監視に関してより積極的な姿勢をとることができます。
オブザーバビリティメトリクスを実装するためのベストプラクティス
オブザーバビリティメトリクスの実装における最大の課題は、ノイズを選別することです。多くのシグナルから大量のテレメトリデータが生成されますが、すべてが有用であるとは限りません。さらに、SREはデータの異質性にも悩まされることがよくあります。トラブルシューティングを容易にするために、さまざまな種類の異なるデータをどのように相関付ければよいのでしょうか?
これらの課題から、オブザーバビリティメトリクスを実装するためのベストプラクティスをいくつか確立できます。
明確な目標を定義する:オブザーバビリティメトリクスをうまく実装し、データ過多に対処するには、まず目標を設定することから始まります。これらの目標を定義するには、メトリクスに何を伝えて欲しいかを自問します。すべてを監視する必要はありません。組織やシステムにとって重要なことのみを監視すればいいのです。
オープンスタンダードを使用してアプリケーションをインストルメンテーションする:インストルメンテーションとは、アプリケーションからテレメトリデータを生成および収集するプロセスです。アプリケーションをインストルメンテーションする際にベンダーロックインを回避するには、OpenTelemetry(OTel)のようなベンダー中立的なフレームワークを検討してください。OTelは、複数のソースからテレメトリデータを収集・比較できる標準化されたフレームワークを提供します。
自動化を活用する:データの収集、分析、アラートを自動化して、手作業の労力を削減し、応答時間を短縮します。
可視化をカスタマイズする:定義した目標を達成するには、ダッシュボードをカスタマイズすることが最良です。デフォルトのダッシュボードはある程度しか役に立ちません。環境を可視化する方法をカスタマイズすることが、オブザーバビリティを成功させる鍵です。
Elasticのオブザーバビリティメトリクス
Elastic Observabilityは、技術スタック全体にわたるオブザーバビリティメトリクスの収集、監視、分析向けの統合ソリューションを提供します。Elastic Observabilityを使用すると、あらゆるソースからオブザーバビリティメトリクスを収集、格納、可視化し、Search AI Platformを活用して問題解決を迅速化できます。
Elastic Observabilityは、検索ベースの関連性、妥協のないデータ保持、運用効率とコストの改善、将来を見据えた投資により、システム中断を防ぎ問題解決を加速します。進化するテクノロジーエコシステムとシームレスに統合するオープンなOTelファーストソリューションなら、最も広範なデータソースからコンテキストに基づき、統合された洞察を迅速に取得できます。
Elastic Observabilityの詳細をご覧ください。
本記事に記述されているあらゆる機能ないし性能のリリースおよびタイミングは、Elasticの単独裁量に委ねられます。現時点で提供されていないあらゆる機能ないし性能は、すみやかに提供されない可能性、または一切の提供が行われない可能性があります。