自社のオブザーバビリティデータが驚異的なペースで増加していると考えている企業は71%に上ります。このことからも分かるように、オブザーバビリティは、高性能のソフトウェアシステムを管理および保守する面で不可欠な役割を担っています。こうした状況に対応するには、MELTの概念を理解することが重要です。
MELT (メトリクス、イベント、ログ、トレース)フレームワークは、オブザーバビリティを実現するための包括的なアプローチであり、システムの健全性、パフォーマンス、挙動について貴重なインサイトを提供します。
それらのインサイトを活用することで、システム全体のパフォーマンスを最適化すると同時に、問題を迅速に検出して診断し、解決できるようになります。
このブログ記事では、MELTとその4つの異なるテレメトリデータタイプ、MELTの実装方法、およびMELTのよくある質問について詳しく取り上げます。
(関連記事:テレメトリ、オブザーバビリティ、監視の主な違い)
MELTフレームワークは、次の4つの基本的なテレメトリデータタイプをまとめたものです。
各データタイプはシステムの動作に関する情報を独自の視点で提供するため、チームはアプリケーションのパフォーマンスとシステムの健全性をより深く理解できます。これらのデータタイプを統合すれば、ソフトウェアシステム全体を包括的に把握し、問題を迅速に特定して解決できるようになります。
それでは、それぞれのデータタイプを詳しく見ていきましょう。
メトリクスは、システムのパフォーマンスを概観できる測定値です。これによって、パフォーマンスの数学的モデリングと予測が可能になり、それを特定のデータ構造で表現できるようになります。以下のメトリクスは、システムの動作を理解するうえで役立ちます。
メトリクスを活用すれば、データの長期保存が容易になったり、シンプルなクエリーが実現したりするなど、さまざまなメリットを得られます。また、メトリクスは各種サービスの過去のトレンドを表示するダッシュボードの構築にも役立ちます。
MELTのイベントは個別の事象を記録するデータタイプであり、正確な時間を表す値と各種数値を含みます。これにより、重大なイベントを追跡したり、ユーザーリクエストに関連する潜在的な問題を検出したりできます。簡単に言えば、イベントとは、特定の時点でシステム内に発生した事象のことです。
イベントでは時間が非常に重要な意味を持つため、通常はタイムスタンプが使用されます。
イベントを活用することで、上記のメトリクスデータのコンテキストを理解しやすくなります。また、アプリケーションで最も注意が必要なポイントを特定し、パフォーマンスやセキュリティに影響を及ぼす可能性があるユーザーの行動を効果的に可視化できます。イベントの例を以下に示します。
ログは、指定された時点でのシステムの動作を詳しく記録した情報であり、デバッグには必要不可欠です。ログデータを解析すれば、APIやアプリケーションデータベースからは導き出せない、アプリケーションのパフォーマンスに関するインサイトが得られます。
簡単に言えば、ログはシステム内部で発生するすべてのアクティビティの記録です。
ログにはプレーンテキスト、JSONオブジェクトなどさまざまな形式があり、多くのクエリー手法に対応します。そのため、ログはセキュリティ脅威とパフォーマンスの問題を調査するための最も有用なデータポイントの1つです。
ログを効果的に活用するには、一元化されたプラットフォームに集約する必要があります。集約することで、エラーをすばやく見つけて修正したり、アプリケーションパフォーマンスを適切に監視したりできます。
トレースとは、リクエストまたはワークフローがシステムの1つのコンポーネントから別のコンポーネントへと進んでいくパス全体を指し、分散システム内のリクエストのフローをエンドツーエンドで把握できます。
つまり、トレースは、アプリケーションとそれを構成するサービスによって処理される個々のトランザクションを表す処理をまとめたものです。トレースを構成する個々の処理をスパンと言います。スパンは分散システムの不可欠な部分であり、分散トレーシングの基本的な要素として機能します。
トレースから、2つのデータポイント間の方向性と関係に関するインサイトが得られ、さらにサービスの相互作用と非同期性の影響に関するインサイトが得られます。トレースデータを分析すれば、分散システムのパフォーマンスと挙動について理解を深めることができます。
トレースの例を以下に示します。
トレースのインストルメンテーション(計装)は難しい場合があります。トレースデータを送信するためにリクエストの各コンポーネントを変更する必要があるためです。そのうえ、多くのアプリケーションはオープンソースのフレームワークやライブラリをベースとしているため、追加のインストルメンテーションが必要になる可能性があります。
分散システムは、今日のアプリケーションで非常に重要な役割を果たします。主な理由は次のとおりです。
効果的なオブザーバビリティを確保し、パフォーマンスを最適化するためには、分散システムにMELTを導入することが不可欠です。これには以下の点が関係しています。
テレメトリデータとは、リモートまたはアクセスできないソースから自動的に収集され、中央の場所に送信されるデータを指します。これらのデータは監視と分析のために集約されます。メトリクス、イベント、ログ、トレースの各データから、アプリケーションのパフォーマンス、遅延、スループット、リソース使用率についての重要なインサイトが得られます。
テレメトリデータは以下のソースから収集されます。
これらのデータは、システムのパフォーマンスを観測し、潜在的な問題を認識するために活用できます。また、異常を検出したり、問題の根本原因を探ったりすることもできます。
(関連E-book:『オブザーバビリティプラクティス強化におけるOpenTelemetryのメリット』)
集約したデータを管理し、そこから有意義なインサイトを引き出すには、収集したデータを正しく整理、保存、分析する必要があります。
データの集約とは、統計分析の目的でさまざまなソースから生データを収集し、1つの場所にまとめるプロセスを指します。この段階で、性質が異なる多数のソースからのデータが適切に要約されます。
集約したデータを効果的に整理して保存するには、膨大なデータを格納でき、効率よくアクセスできるシステムを導入する必要があります。これは、リレーショナルデータベースやNoSQLデータベースなどのデータベースシステムを利用して実現できます。
集約したデータを分析するには、統計手法とツールを使用して、データのパターンと傾向を識別しなければなりません。これは、以下の方法で実現できます。
データの集約は、特にログに対して効果を発揮します。ログは収集されたテレメトリデータの大部分を占めており、オブザーバビリティにおいて非常に重要であるためです。さらにログを他のデータソースと統合すれば、アプリケーションのパフォーマンスとユーザーの行動に関する包括的なフィードバックを得ることができます。
このような集約済みのログは、潜在的なセキュリティ脅威を検出して対応するセキュリティ情報/イベント管理(SIEM)ソリューションの実装にも使用されます。
各種ツールや技術の活用もMELTの導入に役立ちます。以下にその例を紹介します。
このメリットはIBM社によるレポートでも裏付けられており、AIと自動化を導入した組織では、侵害ライフサイクルが74日短縮されたことが明らかになっています。
効果的なオブザーバビリティを実現し、パフォーマンスを最適化するためには、分散システムにMELTを導入することが不可欠です。MELTを導入すれば、組織はメトリクス、イベント、ログ、トレースから収集した情報を組み合わせて、貴重なインサイトを得ることができます。
組織は、MELTを活用して問題に事前に対応し、パフォーマンスを最適化し、最終的には優れたカスタマーエクスペリエンスを提供することができます。
このブログはこちらの英語ブログの翻訳です。
この記事について誤りがある場合やご提案がございましたら、ssg-blogs@splunk.comまでメールでお知らせください。
この記事は必ずしもSplunkの姿勢、戦略、見解を代弁するものではなく、いただいたご連絡に必ず返信をさせていただくものではございません。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。