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)が短縮され、運用にかかる負担も軽減されます。

テレメトリーパイプラインの仕組み

  1. アプリケーションの計装 OpenTelemetry SDKを利用して、アプリケーションから分散トレースを生成します。
  2. テレメトリーデータのエクスポート OpenTelemetry CollectorまたはOTLP対応のエクスポーターを経由してテレメトリーを送信します。
  3. Applications Managerへのデータ取り込み Applications Managerが分散トレースのテレメトリーストリームを受信し、分析用に処理します。
  4. 分析・アラート・最適化 ダッシュボード、トレース、アラート、分析機能を活用して、アプリケーションのパフォーマンスと信頼性を高めます。

クラウドネイティブなオブザーバビリティに対応

現在のアプリケーションは、以下のような多様な基盤上で稼働しています。

  • Kubernetesクラスター
  • コンテナ
  • 仮想マシン
  • ハイブリッドインフラ
  • パブリッククラウドサービス
  • サーバーレス環境

OpenTelemetryとの連携により、Applications Managerは各環境を横断して分散トレースを一元的に可視化します。監視のワークフローが環境ごとに分断されることがありません。

運用の手間をかけないテレメトリー取り込み

オブザーバビリティ製品の中には、監視を始めるまでに膨大な設定を要するものも少なくありません。 Applications Managerでは、以下の仕組みによってテレメトリー導入の負担を軽減します。

  • OTLPに対応したデータ取り込み
  • 柔軟なテレメトリーパイプラインの設定
  • オブザーバビリティダッシュボードの一元化
  • 短期間で完了する導入手順
  • スケーラブルなトレース処理

分散アプリケーションの監視を素早く開始でき、運用にかかる負担も抑えられます。

先回りした監視と自動対処

監視は、障害が起きてから対応するためだけのものではなく、障害そのものを防ぐために活用すべき手段です。Applications Managerは、以下の機能によって予防的なオブザーバビリティを実現します。

  • しきい値ベースのアラート
  • パフォーマンスのアノマリー検知
  • 迅速なトレース分析
  • 自動対処のワークフロー
  • 通知のエスカレーションポリシー

これにより、運用チームはアプリケーションの異常な挙動を、ユーザーに影響が及ぶ前に把握できます。

開発・運用チームのための視覚的な分析

オブザーバビリティのデータは、素早く解釈できてこそ価値を発揮します。Applications Managerでは、テレメトリーを視覚的に分析できる機能を提供します。

  • サービスごとのパフォーマンス推移を比較
  • コンポーネント間の依存関係を可視化
  • レイテンシーの急増を調査

これらの分析情報は、根本原因分析の迅速化と、根拠に基づいた運用判断を支援します。

OpenTelemetryによる分散アプリケーション監視をはじめる

現在のアプリケーション環境では、サービス、インフラ層、クラウドネイティブな処理基盤から膨大なテレメトリーが生成されます。OpenTelemetryとApplications Managerを組み合わせることで、分散システム全体の運用状況をより深く可視化し、依存関係を明確に把握しながら、インシデント調査を迅速に進められるようになります。

OpenTelemetry監視の詳細情報

よくある質問(FAQ)

1. OpenTelemetryとは何ですか?

OpenTelemetryは、アプリケーションやインフラからトレース、メトリクス、ログを収集するためのAPI、SDK、ツールを提供する、オープンソースのオブザーバビリティフレームワークです。詳細はこちらをご覧ください。

2. Applications ManagerはOpenTelemetryに対応していますか?

対応しています。OpenTelemetryで計装されたアプリケーションからテレメトリーを取り込み、分散アーキテクチャやアプリケーションのパフォーマンスを監視できます。

3. 現在対応しているテレメトリーデータの種類を教えてください。

OpenTelemetryでは、以下のデータを収集できます。

  • トレース
  • トランザクション
  • 応答時間
  • エラーと例外
  • 外部呼び出し
  • SQLの実行状況

メトリクスとログへの対応は、今後のリリースで予定されています。

4. OpenTelemetry監視はどのように始めればよいですか?

一般的な導入手順は以下の通りです。

  1. OpenTelemetry SDKを利用してアプリケーションに計装を施す
  2. OpenTelemetry Collectorを経由したテレメトリーのエクスポートを設定する
  3. テレメトリーデータをApplications Managerへ送信する
  4. オブザーバビリティダッシュボードから分散トレースとサービス間の依存関係を監視する

関連機能