ICMP テスト

概要

ICMP テストを使用すると、ホストの可用性を監視し、ネットワーク通信の問題を診断できます。Datadog は、エンドポイントへの 1 つ以上の ICMP ping から受信した値をアサートすることにより、接続の問題、ラウンドトリップ時間のクォータを超えるレイテンシー、セキュリティファイアウォールコンフィギュレーションの予期しない変更を検出するのに役立ちます。テストでは、ホストに接続するために必要なネットワークホップ (TTL) の数を追跡し、traceroute の結果を表示して、パスに沿った各ネットワークホップの詳細を検出することもできます。

ICMP テストは、ネットワークの外部または内部のどちらからエンドポイントへの ICMP ping をトリガーするかに応じて、管理ロケーションおよびプライベートロケーションの両方から実行できます。ICMP テストは、定義されたスケジュールで、オンデマンドで、または CI/CD パイプライン内から実行できます。

コンフィギュレーション

ICMP テストの作成を選択した後、テストのリクエストを定義します。

リクエストを定義する

  1. テストを実行するドメイン名または IP アドレスを指定します。
  2. Track number of network hops (TTL) (ネットワークホップ数 (TTL) の追跡) を選択または選択解除します。このオプションを選択すると、“traceroute” プローブをオンにして、ホストの宛先へのパスに沿ったすべてのゲートウェイを検出します。
  3. テストセッションごとにトリガーする Number of Pings (Ping の数) を選択します。 デフォルトでは、ping の数は 4 に設定されています。この数値は、減らすか最大 10 まで増やすかを選択できます。
  4. ICMP テストに名前を付けます。
  5. ICMP テストに env タグとその他のタグを追加します。次に、これらのタグを使用して、Synthetic Monitoring ホームページで Synthetic テストをすばやくフィルタリングできます。
ICMP リクエストを定義する

Test URL をクリックして、リクエストのコンフィギュレーションをテストします。画面の右側に応答プレビューが表示されます。

アサーションを定義する

アサーションは、期待されるテスト結果が何であるかを定義します。Test URL をクリックすると、latencypacket losspacket received の基本的なアサーションが追加されます。テストで監視するには、少なくとも 1 つのアサーションを定義する必要があります。

タイプ集計演算子値の型
レイテンシーavgmaxmin または stddev (別名 jitter)is less thanis less than or equal
isis more thanis more than or equal
整数 (ms)
パケットロス-is less thanis less than or equalisis more thanis more than or equalパーセント (%)
受信したパケット-is less thanis less than or equalisis more thanis more than or equalinteger
ネットワークホップ-is less thanis less than or equalisis more thanis more than or equalinteger

New Assertion を選択するか、応答プレビューを直接選択することで、API テストごとに最大 20 個のアサーションを作成できます。

ICMP テストが成功または失敗するためのアサーションを定義する

テストがレスポンス本文にアサーションを含まない場合、本文のペイロードはドロップし、Synthetics Worker で設定されたタイムアウト制限内でリクエストに関連するレスポンスタイムを返します。

テストがレスポンス本文に対するアサーションを含み、タイムアウトの制限に達した場合、Assertions on the body/response cannot be run beyond this limit というエラーが表示されます。

ロケーションを選択する

ICMP テストを実行するロケーションを選択します。ICMP テストは、ネットワークの外部または内部のどちらから ICMP ping をトリガーするかに応じて、管理ロケーションおよびプライベートロケーションの両方から実行できます。

テストの頻度を指定する

ICMP テストは次の頻度で実行できます。

  • On a schedule: 最も重要なサービスにユーザーが常にアクセスできるようにします。Datadog で ICMP テストを実行する頻度を選択します。
  • Within your CI/CD pipelines
  • On-demand: チームにとって最も意味のあるときにいつでもテストを実行します。

アラート条件を定義する

アラート条件を設定して、テストが失敗してアラートをトリガーする状況を判断できます。

アラート設定規則

アラートの条件を An alert is triggered if your test fails for X minutes from any n of N locations に設定すると、次の 2 つの条件が当てはまる場合にのみアラートがトリガーされます。

  • 直近 X 分間に、最低 1 個のロケーションで失敗 (最低 1 つのアサーションが失敗)。
  • 直近 X 分間に、ある時点で最低 n 個のロケーションで失敗。

高速再試行

テストが失敗した場合、Y ミリ秒後に X 回再試行することができます。再試行の間隔は、警告の感性に合うようにカスタマイズしてください。

ロケーションのアップタイムは、評価ごとに計算されます (評価前の最後のテスト結果がアップかダウンか)。合計アップタイムは、構成されたアラート条件に基づいて計算されます。送信される通知は、合計アップタイムに基づきます。

テストモニターを構成する

以前に定義されたアラート条件に基づいて、テストが通知を送信します。このセクションを使用して、チームに送信するメッセージの方法と内容を定義します。

  1. モニターの構成方法と同様、メッセージに @notification を追加するか、ドロップダウンボックスでチームメンバーと接続されたインテグレーションを検索して、通知を受信するユーザーやサービスを選択します。

  2. テストの通知メッセージを入力します。このフィールドでは、標準のマークダウン形式のほか、以下の条件付き変数を使用できます。

    条件付き変数説明
    {{#is_alert}}テストがアラートを発する場合に表示します。
    {{^is_alert}}テストがアラートを発しない限り表示します。
    {{#is_recovery}}テストがアラートから回復したときに表示します。
    {{^is_recovery}}テストがアラートから回復しない限り表示します。
    {{#is_renotify}}モニターが再通知したときに表示します。
    {{^is_renotify}}モニターが再通知しない限り表示します。
    {{#is_priority}}モニターが優先順位 (P1~P5) に一致したときに表示します。
    {{^is_priority}}モニターが優先順位 (P1~P5) に一致しない限り表示します。
  3. テストが失敗した場合に、テストで通知メッセージを再送信する頻度を指定します。失敗したテストを再通知しないよう、Never renotify if the monitor has not been resolved オプションを使用してください。

  4. Create をクリックすると、テストの構成とモニターが保存されます。

詳しくは、Synthetic テストモニターの使用をご覧ください。

変数

ローカル変数を作成する

ローカル変数を作成するには、右上の Create Local Variable をクリックします。以下の利用可能なビルトインのいずれかから選択することができます。

{{ numeric(n) }}
n 桁の数字列を生成します。
{{ alphabetic(n) }}
n 文字のアルファベット文字列を生成します。
{{ alphanumeric(n) }}
n 文字の英数字文字列を生成します。
{{ date(n unit, format) }}
テストが + または - n 単位で開始された UTC 日付に対応する値を使用して、Datadog の許容される形式のいずれかで日付を生成します。
{{ timestamp(n, unit) }}
テストが +/- n 単位で開始された UTC タイムスタンプに対応する値を使用して、Datadog の許容される単位のいずれかでタイムスタンプを生成します。

テスト結果のローカル変数値を難読化するには、Hide and obfuscate variable value を選択します。変数文字列を定義したら、Add Variable をクリックします。

変数を使用する

ICMP テストの URL およびアサーションで、Settings で定義されたグローバル変数を使用できます。

変数のリストを表示するには、目的のフィールドに {{ と入力します。

テストの失敗

テストが 1 つ以上のアサーションを満たさない場合、またはリクエストが時期尚早に失敗した場合、テストは FAILED と見なされます。場合によっては、エンドポイントに対してアサーションをテストすることなくテストが実際に失敗することがあります。

これらの理由には以下が含まれます。

DNS
テスト URL に対応する DNS エントリが見つかりませんでした。テスト URL の構成の誤りまたは DNS エントリの構成の誤りの原因が考えられます。

アクセス許可

デフォルトでは、Datadog 管理者および Datadog 標準ロールを持つユーザーのみが、Synthetic ICMP テストを作成、編集、削除できます。Synthetic ICMP テストの作成、編集、削除アクセスを取得するには、ユーザーをこれら 2 つのデフォルトのロールのいずれかにアップグレードします。

カスタムロール機能を使用している場合は、synthetics_read および synthetics_write 権限を含むカスタムロールにユーザーを追加します。

アクセス制限

アカウントにカスタムロールを使用しているお客様は、アクセス制限が利用可能です。

組織内の役割に基づいて、ICMP テストへのアクセスを制限することができます。ICMP テストを作成する際に、(ユーザーのほかに) どのロールがテストの読み取りと書き込みを行えるかを選択します。

テストのアクセス許可の設定

その他の参考資料