- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
APM UI には、アプリケーションのパフォーマンスをトラブルシューティングし、これを製品全体で関連付けるための多くのツールが用意されています。これは、分散されたシステムの問題を見つけて解決するのに役立ちます。
コンセプト | 説明 |
---|---|
サービス | サービスは、最新のマイクロサービスアーキテクチャの構成要素です。サービスは、アプリケーションを構築する目的で、エンドポイント、クエリ、またはジョブを広くグループ化します。 |
リソース | リソースは、顧客アプリケーションの特定のドメインを表します。通常、これはインスツルメントされたウェブエンドポイント、データベースクエリ、またはバックグラウンドジョブです。 |
モニター | APM メトリクスモニターは、通常のメトリクスモニターと同様に機能しますが、APM 専用に調整されたコントロールを備えています。このモニターを使用して、ヒット、エラー、さまざまなレイテンシー測定に関するサービスレベルでアラートを受信します。 |
トレース | トレースは、アプリケーションがリクエストを処理するのにかかった時間とこのリクエストのステータスを追跡するために使用されます。各トレースは、1 つ以上のスパンで構成されます。 |
スパン | スパンは、特定の期間における分散システムの論理的な作業単位を表します。複数のスパンでトレースが構成されます。 |
サービスエントリスパン | スパンとは、サービスへのリクエストに対するエントリーポイントメソッドとなるサービスエントリスパンを指します。フレームグラフ上の直属の親のカラーが異なる場合、この値を Datadog APM 内で可視化することができます。 |
トレースルートスパン | スパンがトレースのエントリポイントになる場合、ルートスパンとなります。そのスタートは、トレースの開始を示します |
トレースメトリクス | トレースメトリクスは自動的に収集され、他の Datadog メトリクスと同様の 15 か月の保持ポリシーで保持されます。これを使用して、ヒット、エラー、またはレイテンシーを特定し、アラートを発信することができます。統計およびメトリクスは、常に_すべての_トレースに基づき算出されるため、Ingestion controls による影響を受けません。 |
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’ と判断される合計時間 (子スパンの完了まで待機しません) 。 |
アプリケーションのインスツルメンテーションの後、サービス一覧画面が 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.store_name
や merchant.tier
など)も示されています。これらのユーザー定義のタグは、Analytics で APM データを検索、分析するために使用できます。
スパンとは、サービスへのリクエストに対するエントリーポイントメソッドとなるサービスエントリスパンを指します。フレームグラフ上の直属の親のカラーが異なる場合、この値を Datadog APM 内で可視化することができます。フレームグラフ画面の右側にはサービスの一覧も表示されます。
スパンがトレースの最初のスパンになる場合、トレースルートスパンとなります。ルートスパンは、トレースされたリクエストのエントリポイントメソッドです。そのスタートは、トレースの開始を示します。
以下の例におけるサービスエントリスパンは次の通りです。
rack.request
(_ルートスパン_でもある)aspnet_coremvc.request
aspnet_coremvc.request
mongodb
スパンスパンサマリーテーブルには、すべてのトレースでスパンが表示される頻度、トレースの何パーセントにスパンが含まれるか、スパンの平均期間、リクエストの合計実行時間の一般的な割合など、すべてのトレースで集計されたスパンのメトリクスが表示されます。これにより、コード内の N+1 問題を検出し、アプリケーションのパフォーマンスを向上させることができます。
スパンサマリーテーブルは、サービスエントリースパンを含むリソースにのみ利用可能です。
スパンサマリーテーブルには、以下の列が含まれます。
トレースメトリクスは自動的に収集され、他の Datadog メトリクスと同様の 15 か月の保持ポリシーで保持されます。これを使用して、ヒット、エラー、またはレイテンシーを特定し、アラートを発信することができます。トレースメトリクスは、サービスまたはリソースとともにトレースを受信するホストによってタグ付けされます。たとえば、ウェブサービスをインスツルメントした後、Metric Summary のエントリポイントスパン web.request
のトレースメトリクスが収集されます。
トレースメトリクスは、Service または Resource ページからダッシュボードにエクスポートできます。さらに、既存のダッシュボードからトレースメトリクスを照会できます。
トレースメトリクスは、監視に役立ちます。APM モニターは、New Monitors、Service、または Resource ページで設定できます。推奨されるモニターのセットは、Service または Resource ページで利用できます。
15 分間で収集されたトレースの 100% および 15 日間におけるすべての Indexed Span の探索および分析を実行します。
Indexed Span は、Datadog に 15 日間保管された [Retention Filter](#Retention Filters) でインデックスされたスパンを表し、スパンに含まれるタグによるトレース検索および Analytics での検索、クエリ、監視に使用することができます。
Trace View でリクエストを関連付けたり、Analytics でフィルターしたりするためのキーと値のペアの形式のタグスパン。タグは、単一のスパンに追加することも、すべてのスパンにグローバルに追加することもできます。以下の例では、リクエスト(merchant.store_name
や merchant.tier
など)がタグとしてスパンに追加されています。
アプリケーションのスパンをタグ付けするには、このチュートリアルをご覧ください。
タグがスパンに追加されたら、タグをクリックしてファセットとして追加し、Analytics でタグを検索およびクエリします。これが完了すると、このタグの値はすべての新しいトレースに保存され、検索バー、ファセットパネル、トレースグラフクエリで使用できます。
Datadog UI でタグベースのフィルターを設定して 15 日間のスパンをインデックスし、トレース検索と Analytics で使用できるようにします。
サービスから Datadog にトレースの 100% を送信し、[タグベースの Retention Filter](#Retention Filters) と結合させて 15 日間で最もビジネス的に重要なトレースを維持します。
トレーシングアプリケーションメトリクスを sublayer_service
と sublayer_type
でタグ付けし、トレース内のサービスの実行時間を個別に確認することもできます。
サブレイヤーメトリクスは、サービスが下流に依存する場合にのみ利用可能です。
実行時間は、あるスパンがアクティブである時間、つまり子スパンを持たない時間を合計して計算されます。非同期の作業では、これは簡単です。下図では、スパン 1 の実行時間は $\D1 + \D2 + \D3$ となります。スパン 2 とスパン 3 の実行時間は、それぞれの幅になります。
子スパンが同時進行する場合、実行時間は重複する時間を同時進行するスパンの数で割って計算されます。下図の場合、スパン 2 とスパン 3 は同時進行で (どちらもスパン 1 の子スパン)、スパン 3 の時間だけ重なっているため、スパン 2 の実行時間は $\D2 ÷ 2 + \D3$、スパン 3 の実行時間は $\D2 ÷ 2$ となります。