OpenTelemetry連携
アプリケーションへのリクエストは、エンドユーザーに応答が返るまでに、API、コンテナ、データベース、キュー、クラウドサービスなど数多くのコンポーネントを経由します。どこか1つが遅くなると、その影響はアプリケーション全体へ瞬く間に波及します。
Applications ManagerのOpenTelemetry連携では、アプリケーションから送られる分散トレースのテレメトリーデータを取り込み、相関付けて分析する処理を、単一の監視プラットフォーム上で実現します。 分散トレースからトランザクション単位の可視化まで、開発・運用チームが問題を早期に検知するための情報が揃うため、トラブルシューティングにかかる時間を短縮し、アプリケーションの信頼性向上につなげることができます。
OpenTelemetryが選ばれる理由
OpenTelemetryは、ベンダーに依存しない一貫した方法でオブザーバビリティを実現できることから、テレメトリー計装のフレームワークとして広く採用されています。技術ごとに別々の監視エージェントを導入する必要はなく、アプリケーションに一度実装すれば、Applications ManagerなどのOpenTelemetry監視に対応したツールによってテレメトリーデータを確認できます。
導入によって解消される課題
| 課題 | OpenTelemetryによる解決 |
|---|---|
| 監視ツールが分散している | 環境をまたいでテレメトリー収集を標準化 |
| マイクロサービスの可視性が乏しい | 分散アーキテクチャ全体でリクエストを追跡 |
| ベンダー固有の実装が複雑 | オープンなAPIとSDKを利用 |
| サービスをまたぐトランザクションの追跡が難しい | サービス間のテレメトリーシグナルを連結 |
| クラウドネイティブ化が急速に進行 | コンテナ、Kubernetes、最新の処理基盤に対応 |
Applications Managerを選ぶ理由
Applications Managerは、テレメトリーの収集にとどまらず、分散トレースのデータを実際の改善につながるパフォーマンス分析情報へと変換します。
分散システム全体を一元的に可視化
複数のサービスから届くテレメトリーデータを一箇所に集約して表示するため、環境をまたいだアプリケーションの挙動を把握しやすくなります。
- サービス間の通信をトレース
- アプリケーションの依存関係を可視化
- サービスをまたいで連鎖する障害を検知
トランザクションのパフォーマンスを端から端まで分析
静的な監視画面を眺めるだけでなく、トレース、トランザクション、依存関係の間を自在に行き来しながら調査を進められる、探索型のオブザーバビリティを実現します。
多角的なテレメトリー分析
- トレース単位の分析: マイクロサービスをまたいでリクエストを追跡し、レイテンシーがどこで発生しているかを特定します
- サービス依存関係のマッピング: サービス同士がどのように連携しているかを可視化し、障害発生時に下流へ及ぶ影響を把握できます
- トランザクションの可視化: 応答時間、失敗したリクエスト、データベース操作、例外、SQLの実行状況を分析できます
- インテリジェントなアラート: テレメトリーの異常なパターンを検知し、ユーザーが不具合に気付く前にアラートで通知します
対応言語・SDK
Applications Managerは、主要なプログラミング言語で計装されたアプリケーションからのテレメトリー取り込みに対応しています。
対応言語は以下の通りです。
- Node.js
- Java
- .NET
- Python
- Go
- Ruby
- Elixir
- PHP
- C++
- C#
- Rust
- Swift
幅広い言語に対応しているため、ハイブリッド環境や複数言語が混在する環境でも、オブザーバビリティの手法を統一できます。
テレメトリーデータを活用したトラブルシューティングの迅速化
分散アーキテクチャでは、1つのトランザクションが数十のサービスを経由することもあるため、問題の切り分けが難しくなりがちです。OpenTelemetryのトレース分析を活用すれば、パフォーマンスのボトルネックをより速く特定できます。
素早く特定できる代表的な問題
| パフォーマンスの問題 | 得られる情報 |
|---|---|
| APIの応答が遅い | レイテンシーの高いサービスを特定 |
| データベースのボトルネック | 遅延しているクエリやトランザクションを検出 |
| マイクロサービス呼び出しの失敗 | 失敗している依存先を特定 |
| サービスの輻輳 | リクエストの飽和傾向を分析 |
| 断続的な障害 | トレースとインフラのイベントを相関付け |
これにより、平均復旧時間(MTTR:Mean Time To Resolution)が短縮され、運用にかかる負担も軽減されます。
テレメトリーパイプラインの仕組み
- アプリケーションの計装 OpenTelemetry SDKを利用して、アプリケーションから分散トレースを生成します。
- テレメトリーデータのエクスポート OpenTelemetry CollectorまたはOTLP対応のエクスポーターを経由してテレメトリーを送信します。
- Applications Managerへのデータ取り込み Applications Managerが分散トレースのテレメトリーストリームを受信し、分析用に処理します。
- 分析・アラート・最適化 ダッシュボード、トレース、アラート、分析機能を活用して、アプリケーションのパフォーマンスと信頼性を高めます。
クラウドネイティブなオブザーバビリティに対応
現在のアプリケーションは、以下のような多様な基盤上で稼働しています。
- Kubernetesクラスター
- コンテナ
- 仮想マシン
- ハイブリッドインフラ
- パブリッククラウドサービス
- サーバーレス環境
OpenTelemetryとの連携により、Applications Managerは各環境を横断して分散トレースを一元的に可視化します。監視のワークフローが環境ごとに分断されることがありません。
運用の手間をかけないテレメトリー取り込み
オブザーバビリティ製品の中には、監視を始めるまでに膨大な設定を要するものも少なくありません。 Applications Managerでは、以下の仕組みによってテレメトリー導入の負担を軽減します。
- OTLPに対応したデータ取り込み
- 柔軟なテレメトリーパイプラインの設定
- オブザーバビリティダッシュボードの一元化
- 短期間で完了する導入手順
- スケーラブルなトレース処理
分散アプリケーションの監視を素早く開始でき、運用にかかる負担も抑えられます。
先回りした監視と自動対処
監視は、障害が起きてから対応するためだけのものではなく、障害そのものを防ぐために活用すべき手段です。Applications Managerは、以下の機能によって予防的なオブザーバビリティを実現します。
- しきい値ベースのアラート
- パフォーマンスのアノマリー検知
- 迅速なトレース分析
- 自動対処のワークフロー
- 通知のエスカレーションポリシー
これにより、運用チームはアプリケーションの異常な挙動を、ユーザーに影響が及ぶ前に把握できます。
開発・運用チームのための視覚的な分析
オブザーバビリティのデータは、素早く解釈できてこそ価値を発揮します。Applications Managerでは、テレメトリーを視覚的に分析できる機能を提供します。
- サービスごとのパフォーマンス推移を比較
- コンポーネント間の依存関係を可視化
- レイテンシーの急増を調査
これらの分析情報は、根本原因分析の迅速化と、根拠に基づいた運用判断を支援します。
OpenTelemetryによる分散アプリケーション監視をはじめる
現在のアプリケーション環境では、サービス、インフラ層、クラウドネイティブな処理基盤から膨大なテレメトリーが生成されます。OpenTelemetryとApplications Managerを組み合わせることで、分散システム全体の運用状況をより深く可視化し、依存関係を明確に把握しながら、インシデント調査を迅速に進められるようになります。
OpenTelemetry監視の詳細情報
- OpenTelemetryとは(Applications Managerユーザーガイド)
- OpenTelemetry Collectorの設定オプション(Applications Managerユーザーガイド)
- OpenTelemetry連携(Applications Managerユーザーガイド)
- OpenTelemetryのパフォーマンスメトリクス(Applications Managerユーザーガイド)
- OpenTelemetryのデータをAPMインサイトへエクスポート(Applications Managerユーザーガイド)
よくある質問(FAQ)
1. OpenTelemetryとは何ですか?
OpenTelemetryは、アプリケーションやインフラからトレース、メトリクス、ログを収集するためのAPI、SDK、ツールを提供する、オープンソースのオブザーバビリティフレームワークです。詳細はこちらをご覧ください。
2. Applications ManagerはOpenTelemetryに対応していますか?
対応しています。OpenTelemetryで計装されたアプリケーションからテレメトリーを取り込み、分散アーキテクチャやアプリケーションのパフォーマンスを監視できます。
3. 現在対応しているテレメトリーデータの種類を教えてください。
OpenTelemetryでは、以下のデータを収集できます。
- トレース
- トランザクション
- 応答時間
- エラーと例外
- 外部呼び出し
- SQLの実行状況
メトリクスとログへの対応は、今後のリリースで予定されています。
4. OpenTelemetry監視はどのように始めればよいですか?
一般的な導入手順は以下の通りです。
- OpenTelemetry SDKを利用してアプリケーションに計装を施す
- OpenTelemetry Collectorを経由したテレメトリーのエクスポートを設定する
- テレメトリーデータをApplications Managerへ送信する
- オブザーバビリティダッシュボードから分散トレースとサービス間の依存関係を監視する
関連機能
- APMインサイト(Webトランザクション監視)
Applications ManagerのWebトランザクション監視機能であるAPMインサイトを紹介します。 - Kubernetes監視
Applications ManagerのKubernetes監視機能でできることや監視のメリットを紹介します。 - Docker監視
Applications ManagerのDocker監視機能を紹介します。