OpenTelemetry 向けマネージドサービスは、分散アプリケーションを開発するための一連のツールを提供します。ご利用のマイクロサービスからトレースデータを収集し、リアルタイムで集約することで、パフォーマンスボトルネックの特定、トレースのマッピング、リクエストのカウント、トレースのトポロジーの表示、分散アーキテクチャにおけるアプリケーションの依存関係の分析を支援します。これにより、マイクロサービスの開発と診断の効率が向上します。
分散トレーシングの仕組み
分散システムでは、1 つのユーザーリクエストが完了するまでに、多くの場合、複数のサービスを通過します。分散トレーシングは、各ステップを スパン として記録することで、そのリクエストをエンドツーエンドで追跡します。スパンは、1 つのサービス内での 1 つの操作 (例えば、HTTP ハンドラ、データベースクエリ、リモートプロシージャコールなど) のタイミング、ステータス、メタデータをキャプチャします。同じリクエストのすべてのスパンは 1 つの トレース にリンクされ、リクエストパス、レイテンシーの内訳、障害点の全体像を把握できます。
OpenTelemetry 向けマネージドサービスは、これらのトレースを収集、保存、可視化することで、リクエストが遅延または失敗する箇所を特定できます。
アーキテクチャ
次の図は、データが OpenTelemetry 向けマネージドサービスをどのように流れるかを示しています。
データパイプラインには 3 つのステージがあります:
アプリケーションの計装。クライアント SDK をアプリケーションに統合して、サービスコールデータをキャプチャし、レポートします。OpenTelemetry 向けマネージドサービスは、複数言語に対応した SDK を提供しており、OpenTracing 標準を介して、さまざまなオープンソースコミュニティの SDK と互換性があります。
集約と可視化。アプリケーションがトレースデータをレポートした後、OpenTelemetry 向けマネージドサービスはデータをリアルタイムで集約し、永続化します。これにより、問題の診断に使用できるトレース詳細、パフォーマンス概要、リアルタイムのサービストポロジーマップが生成されます。
ダウンストリームサービスへの転送。トレースデータを他の Alibaba Cloud サービスにエクスポートして、さらなる分析を行います。例えば、ログ分析のためにトレースを Simple Log Service に転送したり、オフライン分析とアラート機能のために MaxCompute に転送したりします。
機能
目的 | OpenTelemetry 向けマネージドサービスによる支援 |
サービス間のリクエストのトレース | マイクロサービスを流れるリクエストを収集し、分散トレースとして再構築します。個々のトレースをクエリして、レイテンシーの急増やエラーが発生している箇所を正確に特定します。 |
アプリケーションパフォーマンスのリアルタイム監視 | アプリケーションのすべてのユーザーリクエストをキャプチャし、サービスとリソースのパフォーマンスをリアルタイムで分析します。 |
サービス依存関係の可視化 | 分散マイクロサービスと関連する PaaS プロダクト間の呼び出し関係を自動的に検出し、リアルタイムのトポロジーにマッピングします。 |
複数言語対応 | 複数のプログラミング言語に対応した SDK を提供します。OpenTracing 標準を介して、Jaeger や Zipkin などのオープンソースのトレーシングエコシステムと互換性があります。 |
分析プラットフォームとの統合 | ログ分析のために Simple Log Service、オフライン分析のために MaxCompute などのダウンストリームサービスにトレースデータをエクスポートします。 |
OpenTracing との互換性
OpenTelemetry 向けマネージドサービスは OpenTracing 標準をサポートしており、Jaeger や Zipkin などのコミュニティのオープンソース SDK やライブラリと互換性があります。これらの広く採用されているツールを使用してアプリケーションを計装し、トレースデータを OpenTelemetry 向けマネージドサービスに送信します。
クイックスタート
OpenTelemetry 向けマネージドサービスの使用を開始するには:
Alibaba Cloud コンソールで OpenTelemetry 向けマネージドサービスをアクティベートします。
クライアント SDK をアプリケーションに統合します。
コンソールにトレースデータが表示されることを確認します。