APM UI には、アプリケーションのパフォーマンスをトラブルシューティングし、これを製品全体で関連付けるための多くのツールが用意されています。これは、高度に分散されたシステムの問題を見つけて解決するのに役立ちます。
コンセプト | 説明 |
---|---|
サービス | サービスは、最新のマイクロサービスアーキテクチャの構成要素です。サービスは、アプリケーションを構築する目的で、エンドポイント、クエリ、またはジョブを広くグループ化します。 |
Resource | リソースは、顧客アプリケーションの特定のドメインを表します。通常、これはインスツルメントされたウェブエンドポイント、データベースクエリ、またはバックグラウンドジョブです。 |
モニター | APM メトリクスモニターは、通常のメトリクスモニターと同様に機能しますが、APM 専用に調整されたコントロールを備えています。このモニターを使用して、ヒット、エラー、さまざまなレイテンシー測定に関するサービスレベルでアラートを受信します。 |
トレース | トレースは、アプリケーションがリクエストを処理するのにかかった時間とこのリクエストのステータスを追跡するために使用されます。各トレースは、1 つ以上のスパンで構成されます。 |
スパン | スパンは、特定の期間における分散システムの論理的な作業単位を表します。複数のスパンでトレースが構成されます。 |
トップレベルスパン | スパンとは、サービスへのリクエストに対するエントリーポイントメソッドとなるトップレベルのスパンを指します。フレームグラフ上の直属の親のカラーが異なる場合、この値を Datadog APM 内で可視化することができます。 |
トレースメトリクス | トレースメトリクスは自動的に収集され、他の Datadog メトリクスと同様の 15 か月の保持ポリシーで保持されます。これを使用して、ヒット、エラー、またはレイテンシーを特定し、アラートを発信することができます。 |
Indexed Span | Indexed Span は、Retention Filter またはレガシー版の App Analytics で分析されたスパンによりインデックスされたすべてのスパンを表し、Analytics での検索、クエリ、監視に使用することができます。 |
スパンタグ | Trace View でリクエストを関連付けたり、Analytics でフィルターしたりするためのキーと値のペアの形式のタグスパン。 |
Retention Filters | Retention Filter は Datadog UI 内に設定されたタグベースのコントロールで、15 日間にわたって Datadog でインデックスするスパンの種類を決定します。 |
Ingestion Controls | Ingestion Controls は Datadog に最大 100% のトレースを送信し、 15 分間の Live Search および分析を行う際に使用されます。 |
サブレイヤーメトリクス | サブレイヤーメトリクスはトレース内における任意のタイプ / サービスの実行時間を指します。 |
実行時間 | スパンが ‘active’ と判断される合計時間 (子スパンの完了まで待機しません) 。 |
注: Analyzed Span は、2020 年 10 月 20 日の Tracing Without Limits のローンチに伴い、Indexed Span と改名しました。
アプリケーションのインスツルメンテーションの後、サービス一覧画面が APM データのメインランディングページになります。
サービスは、最新のマイクロサービスアーキテクチャの構成要素です。サービスは、インスタンスをスケーリングする目的で、エンドポイント、クエリ、またはジョブを広くグループ化します。以下はその例です。
以下のスクリーンショットは、e コマースサイトビルダー向けのマイクロサービス分散システムです。web-store
、ad-server
、payment-db
、auth-service
はすべて、APM のサービスとして表されます。
すべてのサービスはサービス一覧画面にあり、サービスマップに視覚的に表示されます。各サービスには独自のサービス詳細画面があり、スループット、レイテンシー、エラー率などのトレースメトリクスを表示および検査できます。これらのメトリクスを使用して、ダッシュボードウィジェットの作成、モニターの作成、およびサービスに属するウェブエンドポイントやデータベースクエリなどのすべてのリソースのパフォーマンスの確認を行います。
リソースは、顧客アプリケーションの特定のドメインを表します。通常は、インスツルメントされたウェブエンドポイント、データベースクエリ、またはバックグラウンドジョブです。ウェブサービスの場合、これらのリソースは、静的なスパン名 web.request
でグループ化された動的なウェブエンドポイントの場合があります。データベースサービスでは、スパン名が db.query
のデータベースクエリになります。たとえば、web-store
サービスには、チェックアウト、updateing_carts、add_item などを処理するリソース(ウェブエンドポイント)が自動的にインスツルメントされています。各リソースには、特定のエンドポイントにスコープされたトレースメトリクスを持つ独自のリソースステータス画面があります。トレースメトリクスは、他の Datadog メトリクスと同様に使用できます。ダッシュボードにエクスポートしたり、モニター作成に使用したりできます。リソースステータス画面には、すべてのトレースのスパンの集約ビュー、リクエストのレイテンシー分布、およびこのエンドポイントに対して行われたリクエストを示すトレースを含むスパンサマリーウィジェットも表示されます。
トレースは、アプリケーションがリクエストを処理するのにかかった時間とこのリクエストのステータスを追跡するために使用されます。各トレースは、1 つ以上のスパンで構成されます。リクエストの存続期間中、サービス全体の分散呼び出し(HTTP ヘッダーを介して trace-id が挿入/抽出されるため)、自動的にインスツルメントされたライブラリ、OpenTracing などのオープンソースツールを使用した手動インスツルメンテーションをフレームグラフビューで見ることができます。トレースビューページで、各トレースは、ログをトレースに接続する、タグをスパンに追加する、ランタイムメトリクスを収集するなど、プラットフォームの他の部分に接続する情報を収集します。
スパンは、特定の期間におけるシステム内の論理的な作業単位を表します。各スパンは、span.name
、開始時間、期間、およびスパンタグで構成されます。たとえば、スパンは、別のマシンでの分散呼び出しに費やされた時間、または大きなリクエスト内の小さなコンポーネントに費やされた時間を表すことができます。スパンは相互にネストでき、これによりスパン間に親子関係が作られます。
以下の例では、スパン rack.request
はトレースのエントリーポイントスパンです。これは、ウェブストアのサービス詳細画面が、rack.request
という名前のエントリーポイントスパンを持つトレースで構成されるリソースを表示していることを意味します。この例では、アプリケーション側に追加されたタグ(merchant.name
や merchant.tier
など)も示されています。これらのユーザー定義のタグは、Analytics で APM データを検索、分析するために使用できます。
スパンとは、サービスへのリクエストに対するエントリーポイントメソッドとなるトップレベルのスパンを指します。フレームグラフ上の直属の親のカラーが異なる場合、この値を Datadog APM 内で可視化することができます。フレームグラフ画面の右側にはサービスの一覧も表示されます。
以下の例におけるトップレベルスパンは次の通りです。
トレースメトリクスは自動的に収集され、他の Datadog メトリクスと同様の 15 か月の保持ポリシーで保持されます。これを使用して、ヒット、エラー、またはレイテンシーを特定し、アラートを発信することができます。トレースメトリクスは、サービスまたはリソースとともにトレースを受信するホストによってタグ付けされます。たとえば、ウェブサービスをインスツルメントした後、Metric Summary のエントリポイントスパン web.request
のトレースメトリクスが収集されます。
トレースメトリクスは、Service または Resource ページからダッシュボードにエクスポートできます。さらに、既存のダッシュボードからトレースメトリクスを照会できます。
トレースメトリクスは、監視に役立ちます。APM モニターは、New Monitors、Service、または Resource ページで設定できます。推奨されるモニターのセットは、Service または Resource ページで利用できます。
15 分間で収集されたトレースの 100% および 15 日間におけるすべての Indexed Span の検索および分析を実行します。
注: Analyzed Span は、2020 年 10 月 20 日の Tracing Without Limits のローンチに伴い、Indexed Span と改名しました。
Indexed Span は、Datadog に 15 日間保管された [Retention Filter](#Retention Filters) でインデックスされたスパンを表し、スパンに含まれるタグによるトレース検索および Analytics での検索、クエリ、監視に使用することができます。
Trace View でリクエストを関連付けたり、Analytics でフィルターしたりするためのキーと値のペアの形式のタグスパン。タグは、単一のスパンに追加することも、すべてのスパンにグローバルに追加することもできます。以下の例では、リクエスト(merchant.store_name
や merchant.tier
など)がタグとしてスパンに追加されています。
アプリケーションのスパンをタグ付けするには、このチュートリアルをご覧ください。
タグがスパンに追加されたら、タグをクリックしてファセットとして追加し、Analytics でタグを検索およびクエリします。これが完了すると、このタグの値はすべての新しいトレースに保存され、検索バー、ファセットパネル、トレースグラフクエリで使用できます。
[Datadog UI でタグベースのフィルターを設定して 15 日間のスパンをインデックスし、トレース検索と Analytics で使用できるようにします。](#trace-search-and-analytics)
サービスから Datadog にトレースの 100% を送信し、[タグベースの Retention Filter](#Retention Filters) と結合させて 15 日間で最もビジネス的に重要なトレースを維持します。
トレーシングアプリケーションメトリクスを sublayer_service
と sublayer_type
でタグ付けし、トレース内のサービスの実行時間を個別に確認することもできます。
特定のトレースにおける特定の時間にアクティブなスパンは、すべてリーフスパン (子のないスパン) となります。