- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Synthetic API テストで収集したタイミングメトリクスを用いて、サーバーとクライアント間の通信におけるボトルネックを特定することができます。
Synthetic テストは以下を測定するメトリクスを収集します。
synthetics.http.redirect.time
メトリクスは、リダイレクトに費やされた合計時間を測定します。その他のネットワークのタイミング (DNS の解決や TCP 接続など) はすべて最後のリクエストに対応します。
例えば、Follow Redirects を選択した HTTP テストでは、ページ A を合計 35 ms
で読み込み、ページ B に読み込み時間合計 40 ms
でリダイレクトした後、ページ C にリダイレクトします。リダイレクトのタイミングは 35 ms + 40 ms = 75 ms
で計算でき、ページ C の読み込み時間は DNS 解決と TCP その他接続を含むその他すべてのタイミングで分割されます。
これに続くリダイレクトについて詳しくは、HTTP テストを参照してください。
synthetics.http.redirect.time
メトリクスは、Synthetics HTTP テストの実行中にリダイレクトが発生した場合のみ測定されます。
synthetics.dns.response.time
メトリクスと *.dns.time
メトリクスは、ドメイン名の解決にかかった時間を測定します。Synthetic API テストでは、ドメイン名の解決に Google、CloudFlare、AWS、Azure などの一般的なDNS サーバーを使用しています。これらのサーバーはプライベートロケーションまたは DNS テストでオーバーライドできます。
これらのメトリクスは、API テストの URL フィールドにドメイン名が含まれる場合にのみ測定されます。IP アドレスを使用した場合 DNS 解決はスキップされ、これらのメトリクスの時系列は表示されません。
リダイレクトがあった場合、DNS 解決時間は最後のリクエストにのみ対応します。
*.connect.time
メトリクスは、サーバーとの TCP 接続の確立に要した総時間を測定します。
リダイレクトがあった場合、TCP 接続時間は最後のリクエストにのみ対応します。
synthetics.http.ssl.time
および synthetics.ssl.hanshake.time
メトリクスは、SSL ハンドシェイクに費やした時間を測定します。
これらのメトリクスは、リクエストが HTTP ではなく HTTPS を経由した場合にのみ収集されます。
リダイレクトがあった場合、SSL ハンドシェイク時間は最後のリクエストにのみ対応します。
synthetics.http.firstbyte.time
メトリクスは、接続が確立されてから Datadog クライアントが応答の最初のバイトを受信した時までの時間を測定します。これには同じリクエストでのデータ送信に費やしたすべての時間が含まれます。
リダイレクトがあった場合、最初のバイト受信時間は最後のリクエストにのみ対応します。
synthetics.http.download.time
メトリクスは、Datadog クライアントが応答の最初のバイトを受信してから全体の応答のダウンロードが終了した時までの時間を測定します。一般的に、応答の本文が大きいほど時間も長くなります。
応答に本文がない場合、このタイミングは null となります。
リダイレクトがあった場合、ダウンロード時間は最後のリクエストにのみ対応します。
*.response.time
メトリクスは、Synthetics が起動してから Synthetics がリクエストを終了するまでの時間を測定します。応答時間はすべてのネットワーク時間の合計となります。
例えば、HTTPS エンドポイントでリダイレクトを行わない HTTP テストの総応答時間などがこれにあたります: synthetics.http.response.time = synthetics.http.dns.time + synthetics.http.connect.time + synthetics.http.ssl.time + synthetics.http.firstbyte.time + synthetics.http.download.time
API テストネットワークのタイミングメトリクスのバリエーションは、リダイレクトから応答本文のダウンロードまで、リクエストのあらゆる段階でボトルネックや遅延が発生した場合に起こります。
次の動作を確認してください。
測定するすべてのタイミングメトリクスについて、以下のような要素でバリエーションを確認することができます。
リダイレクト時間は、リクエストに含まれるすべてのリダイレクトの合計です。DNS 解決からダウンロードまで、HTTP リクエストのどの段階でもバリエーションが発生するとリダイレクトのタイミングが顕著に増加します。
例えば、リダイレクトには複数のドメインを解決するための API テストが必要となるため、DNS 解決が遅れるとリダイレクトのタイミングにも影響が生じます。
信頼できるサーバーからのレイテンシーが加わることで、DNS 解決時間が増加することがあります。
TCP ハンドシェイクのバリエーションは、ネットワークやサーバーの負荷、リクエストメッセージや応答メッセージのサイズ、Synthetics のマネージドまたはプライベートロケーションとサーバーとの距離などによって発生します。
SSL ハンドシェイク時間のバリエーションは、サーバーの負荷 (SSL ハンドシェイクは通常、CPU に負荷がかかります)、ネットワークの負荷、および Syntheticsのマネージドまたはプライベートロケーションからサーバーまでの距離によって発生します。また、CDN の問題により SSL ハンドシェイク時間が長くなることがあります。
最初のバイト受信時間のバリエーションは、ネットワークやサーバーの負荷、および Synthetics のマネージドまたはプライベートロケーションからサーバーまでの距離によって発生します。例えば、ネットワークの負荷が高くなったり、CDN が利用できないことによるトラフィックのリルートが発生したりすると、最初のバイト受信時間のタイミングに悪影響が生じます。
応答サイズの変化により、ダウンロード時間のバリエーションが発生することがあります。ダウンロードされた本文のサイズは、テスト結果とsynthetics.http.response.size
メトリクスで確認できます。
ネットワークの負荷によりバリエーションが起こりうる場所では、ネットワークパフォーマンスモニタリングやSynthetics ICMP テストを用いてて潜在的なボトルネックを特定することができます。
サーバーの負荷によりバリエーションが起こりうる場合には、Datadog Agentとそのインテグレーションを使用して、潜在的な遅延を特定します。
お役に立つドキュメント、リンクや記事: