AppDynamics は、AWS Distro for OpenTelemetry のパートナーになりました。

詳細はこちら [英語]

OpenTelemetry とは

OpenTelemetry は、優れたオブザーバビリティを実現する新しいフレームワークです。このフレームワークを利用すれば、ログ、メトリクス、イベント、トレースなどのテレメトリデータを収集し、任意のバックエンド プラットフォームに標準化された方式で送信できます。

 

テレメトリ収集の新たな標準である OpenTelemetry を利用すれば、市場をリードする AppDynamics の包括的なオブザーバビリティ機能をさまざまなシステムに拡張し、従来の AI/ML 機能をさらに強化できます。

OpenTelemetry の成り立ち

現在、テレメトリデータは、技術者がアプリケーションのふるまいやパフォーマンスの全体像を把握する上で重要な役割を果たしています。しかし、多くの異なるシステムからこのようなデータを収集するのは非常に困難です。そこで OpenTelemetry が登場しました。OpenTelemetry は、Cloud Native Computing Foundation(CNCF)で始まったばかりのプロジェクトで、OpenTracing プロジェクトと OpenCensus プロジェクトが統合されたものです。

2019 年に、OpenTracing(CNCF 主導のベンダーに依存しないトレースプロジェクト)と OpenCensus(Google 社主導のベンダーに依存しないトレース/メトリクスライブラリ)が統合され、OpenTelemetry となりました。その目的は、観測可能なテレメトリを収集するために、統合された一連のインストルメンテーション ライブラリと仕様を提供し、テレメトリエコシステムをシンプルにすることです。OpenTelemetry を利用すれば、最新の分散サービスと従来の環境の両方をモニタリングするのに適した、包括的なテレメトリシステムを実現できます。API とライブラリが 1 つに統合されているため、技術者が使用するテレメトリデータを収集/転送するのがシンプルになります。

OpenTelemetry は、特定のベンダーに依存しないサービスとして、拡大が進んでいる主要な OSS や民間企業が提供しているバックエンド プラットフォーム(Jaeger や Zipkin など)と互換性があります。


OpenTelemetry の仕組み

オブザーバビリティ、つまり、システムが生成する外部データを活用してシステムのパフォーマンスをモニタリングしシステムの内部状態を把握する機能は、一般的に次の 4 つの基本的なデータを使用しています。

  • メトリクス:アプリケーション エコシステムの各要素に関する時間ベースの数値測定情報を提供します。たとえば、1 秒間に平均 255 件のトランザクションが発生しているなどの情報です。
  • イベント:各アクションをトラッキングし、ユーザーが定義した運用に関連するデータのタイムスタンプ付きインベントリを生成します。  
  • ロギング:アプリケーションが生成した構造化/非構造化テキストが収集され、トラブルシューティングに活用できます。ただし、マイクロサービスにおけるログデータの有効性については、さまざまな意見があります。拡張が難しく、コストがかかりすぎると考えられているためです。
  • トレースはリクエストがシステムをどのように流れているかに関する情報です。各要素がどのようにふるまって相互に作用しているかを把握できます。

技術者は、上記のデータから、アプリケーションの状態とパフォーマンスに関する豊富な情報を得られます。また、4 つのカテゴリは相互に関連しています。つまり、これらのメトリクスを使用すれば、分散したトレースの異常を特定し、トレースデータに関連付けられたログを使用することで、問題の原因などを正確に把握できるということです。

OpenTelemetry エコシステムの概要

OpenTelemetry API は、アプリケーション開発者がコードをインストルメントするために使用します。ライブラリの作成者がライブラリ内でインストルメンテーションを統合する場合にも API を使用します。API には以下の 4 つの種類があります。

トレーサ API

トレーサ API を使用すれば、スパンを生成できます。スパンは連続した作業セグメントを表すもので、名前や処理時間に関する情報を保持しています。複数のスパンをつなぎ合わせものがトレースです。

メトリクス API

メトリクス API を使用すると、開発者は、カウンタやオブザーバなどのさまざまなインストルメントにアクセスできます。

コンテキスト API

コンテキスト API を使用することで、W3C Trace Context などの有益なコンテキスト情報を追加できます。

OpenTelemetry API には、スパンと属性の命名規則や、エラーとスパンの関連付けに関する規則が定められた、セマンティクス上の規則も含まれています。

OpenTelemetry を統合するための主要コンポーネント

OpenTelemetry API を実装するために OpenTelemetry SDK が用意されています。この SDK は、前述の API に相当する 3 つの部分で構成されています。OpenTelemetry では、API と SDK は言語ごとに 1 つずつ提供されています。SDK を利用することで、トランザクション サンプリングやリクエストフィルタリングなどの高度な設定が可能になります。

インプロセス エクスポーターは重要なコンポーネントです。このコンポーネントを利用すると、開発者は、標準の OTLP 形式または独自の形式のどちらかに変換したテレメトリを、どのバックエンド プラットフォームに送信するか選択できます。

OpenTelemetry コレクターは、データを収集し、独自の実装方式またはベンダーに依存しない実装方式でそのデータを処理してエクスポートします。

開発者は、OpenTelemetry API および SDK のクイックスタートガイドとドキュメントを簡単に入手して、Javascript、Python、Go、Ruby、C# などの互換性のある言語でデータを迅速に取り込むことができます。


OpenTelemetry の利点

OpenTelemetry の主な利点は、Kubernetes によって数年前に定義されたコンテナ オーケストレーションの標準と同様に、テレメトリデータを作成/取得するための標準が定められていることです。OpenTelemetry では、収集のメカニズムと形式が標準化されているため、技術者はデータの保存分析にあたって特定のベンダーに縛られることがありません。

OpenTelemetry は、メトリクス(Metrics)、イベント(Events)、ログ(Logging)、トレース(Tracing)(MELT)を利用してオブザーバビリティを実現します。そのため開発者や SRE は、これまで基本的なモニタリング機能で得ていたアプリケーションのパフォーマンスに関する情報を、より包括的に得られるようになります。

オブザーバビリティはビジネス目的の達成に有効

オブザーバビリティの目的は、開発者、セキュリティアナリスト、プロダクトマネージャが、ビジネスに悪影響を与える可能性のあるアプリの問題(信頼性、セキュリティなど)や基盤インフラおよびサービスの問題をより詳細に把握して修正できるようにすることです。

テレメトリデータを使用すれば、システムが正常に動作しているかどうかを把握できます。また、システムへの侵入や DDoS 攻撃の脅威を確認できます。

このように常にシステムを監視することで、サービスが中断する前に即座に問題を検出して対処できます。

OpenTelemetry によってオブザーバビリティ ソリューションの統合がシンプルに

OpenTelemetry が登場する前は、一元化された柔軟なオブザーバビリティ ソリューションがなく、IT プロフェッショナルは、特定のベンダーやバックエンド プラットフォームに縛られていました。

OpenTelemetry は、テレメトリデータの収集形式を標準化することでこの課題に対処し、技術者が問題を効果的に把握して可用性やパフォーマンスの問題を解決できるようにすることで、オブザーバビリティを強化することを目的としています。

よく利用されているフレームワークに向けて作られた言語固有の統合機能により、コンテキスト伝播の処理に加えて、関連するトレースとメトリクスを自動的にキャプチャできます。

OpenTelemetry の自動インストルメンテーション エージェントは、コードを一切変更することなく、一部のアプリからテレメトリを収集することもできます。収集されたすべてのデータは、開発者が選択した任意のバックエンド プラットフォームに送信できます。特定のベンダーに依存する要件はありません。

 


OpenTelemetry の今後

オブザーバビリティ エコシステムを統合することで、IT 業界にはさまざまなメリットがあります。オブザーバビリティの導入を増やすには、ベンダーに依存しないオープンスタンダードが不可欠ですが、OpenTelemetry を採用することで、オブザーバビリティをさらに統合しやすくなります。

OpenTelemetry プロジェクトは大半がまだベータ段階で、始まったばかりです。現時点で最も開発が進んでいるコンポーネントはスパンとトレースですが、一部の言語に関しては「手動コード変更」によるメトリクスの収集にも取り組んでいます。最終的にはロギング機能も統合しようとしています。

プロジェクトチームは、来年中に実稼働品質版を一般向けにリリースするという目標に向かって進んでいます。実稼働品質版では、エージェントによる自動インストルメンテーション機能の統合、互換言語の追加、メトリクス収集機能の改善に加えて、コアコンポーネントの安定化が図られます。これらはすべて現在開発中です。OpenTelemetry プロジェクトは、テクノロジーの状態を示す情報をシステムから標準的な方法で取得することに重点を置いていて、それは今後も同じです。

後方互換性はプロジェクトの重要な特長です。後方互換性によって、OpenTracing システムや OpenCensus システムを利用するアプリケーションで OpenTelemetry を実装できるため、開発者は簡単に移行できます。OpenTelemetry は、CNCF における最大のオープンソースプロジェクトの 1 つとして、エコシステムに関する開発者サポートを拡大しています。

OpenTelemetry には、GitHub を通じてプロジェクトに参加する機会が多くあり、クラウドネイティブのテレメトリ環境で優位に立つ準備が整っています。

オブザーバビリティを IT システムに組み込むこと自体が目的ではなく、オブザーバビリティは、ビジネス目標を達成するための重要なコンポーネントと考えるべきです。インフラストラクチャ(コンピューティング、ストレージ、ネットワークなど)とサポートサービスがアプリケーションの状態にどのように影響するかを関連付けて把握することは、ユーザーエクスペリエンスとビジネス成果を向上させるための第一歩です。

お客様の声

「AppDynamics と連携したことで、マイクロサービスがアプリケーションのその他のコンポーネントとどのように連動しているかを詳細に可視化したり、新たな問題をプロアクティブにトラブルシューティングしたりできるようになりました。さらに、以前よりも迅速に問題を解決できます」

iJET 社 CTO Nuno Pereira 氏

変革のエージェント 2022
エクスペリエンス経済におけるイノベーション

技術者は日々切磋琢磨し、組織が直面する課題に応えていますが、優秀な IT 技術者になるにはかつてなく険しい道が待ち構えています。

AppDynamics の APM ソリューションが
世界をリードする理由をご確認ください。