分散トレース

分散トレースを用いて、アプリケーション間で発生したトランザクションを追跡することができます。これによりアプリケーション間の要求を監視し、問題の原因を絞り込むことができます。

コンテンツ:

トレースとは

トレースはメソッド要求、データベースクエリー、例外などのトランザクションの実行フローです。指定したしきい値をトランザクションが越えた際に、トレースが取得されます。

分配トレースとは

現代のアプリケーションはモノリシックなものからマイクロサービスや分散型システムへと進化してきました。このような環境で問題を分析するにはシステム内に広がる複数のサービスからデータを相関させ、問題の診断およびトラブルシュートするためのより高度なトレースの仕組みが必要となってきます。

分散トレースはアプリケーションやサービスにわたるWebトランザクションのパス全体を追跡でき、このニーズを満たします。

前提条件

監視が必要な全てのアプリケーションにAPMインサイトのエージェントがインストールされていることを確認してください。

エージェントが次のバージョンに更新されていることを確認してください。

  • Javaエージェントバージョン 4.5.1
  • .NETエージェントバージョン 4.5.2
  • Node.jsエージェントバージョン 1.7
  • PHPエージェントバージョン 3.2
  • Pythonエージェントバージョン 1.2.1
分配トレースは、同じアカウントのアプリケーション間でのみ表示されます。
他のアカウント内のアプリケーションと同画面で表示することはできません。

分散トレースのしくみ

1. アプリケーションやサービスがAPI要求を他のアプリケーションやサービスに送る際に、Site24x7 APMインサイトがメタデータを含むHTTPヘッダーを付加し、サービスの要求を追跡します。

2. Site24x7 APMインサイトが対応した他のサービスで有効になっている場合、HTTPヘッダーを処理し、応答ヘッダー経由で追跡情報を返します。

3. 他のサービスが別のサービスを呼び出すと、ヘッダーの伝播が継続されるため、分散システム全体で元のアプリケーションまたはサービスがたどるすべてのパスが追跡されます。

  • 要求がサービスごとに設定されたしきい値を超えた時のみ追跡が取得されます。
  • アプリケーションでプロキシサービスが使われている場合、エージェントがトランザクションを追跡できるように要求および応答ヘッダーにX-Site24x7-IdX-Site24x7-DT-Dataのキーが追加されていることを確認してください。

データの表示

  1. 分散トレースを表示させる方法は次のとおりです。
  2. Site24x7アカウントにログインし、[APM]→[APMインサイト]→[アプリケーション]の順にアクセスします。
  3. アプリケーションを選択し、[トレース(追跡)]タブをクリックします。
  4. [分散]タブをクリックします。
  5. ここに他のアプリケーションに対して行われてた要求や対応したトランザクションが表示されます。

メトリックについて

分散トレースタブには、様々なメトリクスが存在し、追跡結果の分析に役立てられます。

  • httpURL.doは、アプリケーションZylkerからの親トランザクションです。
  • EmpSite_EmpAppおよびNodeAppは、親トランザクションがリクエストを完了するために呼び出しを行った他の2つのアプリケーションです。
  • dynamodb/createtable、oracle/viewdetails、customer/addは親トランザクションのhttpURL.doによって要求された対応するトランザクションです。

上部のバーにはトランザクションによって取得された応答時間の合計(この場合8,883ミリ秒)、一つのトランザクションにかかった部分的な応答時間(3,623ミリ秒)、メモリ使用率などといった詳細なメトリックが表示されます。アプリケーション名の右側にあるツリービューをクリックすると、要求の完了までにかなりの時間を要したメソッド要求やコードブロックを表示することができます。

通常では、これらトランザクションの追跡はコンテキストなしに個別で表示されます。分散トレースを用いて、特定のアプリケーションからのトランザクションによって要求されたメソッド呼び出しの詳細と、しきい値違反を正確に把握することができます。これによりデバッグのプロセスを簡単にすることができます。