Synthetic テストをプライベートロケーションから実行する

概要

プライベートロケーションから、内部用アプリケーションの監視や、パブリックインターネットから接続できないプライベートエンドポイントの監視を行えます。これは以下にも使用できます。

  • ビジネスでミッションクリティカルな領域に、カスタム Synthetic ロケーションを作成します
  • Continuous Testing および CI/CD を使用して本番環境に新機能をリリースする前に、内部 CI 環境でアプリケーションパフォーマンスを確認します
  • 内部ネットワークの内外両方からアプリケーションのパフォーマンスを比較します
Synthetic Monitoring におけるプライベートロケーションの仕組みを示すアーキテクチャ図

プライベートロケーションは Docker コンテナまたは Windows サービスとして提供され、プライベートネットワーク内にインストールすることができます。プライベートロケーションを作成してインストールしたら、他のマネージドロケーションと同様に、Synthetic テストを割り当てることができます。

プライベートロケーションワーカーは、HTTPS を使用してテストコンフィギュレーションを Datadog のサーバーからプルし、スケジュールまたはオンデマンドでテストを実行して、テスト結果を Datadog のサーバーに返します。次に、管理ロケーションから実行されているテストを視覚化する方法とまったく同じ方法で、プライベートロケーションのテスト結果を視覚化できます。

Synthetic テストのプライベートロケーションへの割り当て

前提条件

Continuous Testing テストでプライベートロケーションを使用するには、v1.27.0 以降が必要です。

プライベートロケーションは、プライベートネットワーク内のどこにでも設置できる Docker コンテナです。プライベートロケーションのワーカーイメージ]101には、Google Container Registry からアクセスできます。ホスト上に Docker エンジンがあり、Linux コンテナモードで動作可能であれば、Linux ベースの OS や Windows OS 上で動作させることができます。

プライベートロケーションは、MSI ファイルを使用してプライベートネットワーク内の任意の場所にインストールできる Windows サービスです。プライベートロケーションをインストールしたい仮想マシンまたは物理マシンからこのファイルを実行します。

このマシンの要件を以下の表に示します。プライベートロケーションワーカーをインストールするマシンでは、PowerShell スクリプトが有効になっている必要があります。

System要件
OSWindows Server 2016、Windows Server 2019、または Windows 10。
RAM最低 4GB。8GB 推奨。
CPU64 ビット対応の Intel または AMD プロセッサー。2.8 GHz 以上のプロセッサーを推奨。

MSI インストーラーを使用する前に、コンピューターに .NET バージョン 4.7.2 以降をインストールする必要があります。

Datadog プライベートロケーションエンドポイント

テストコンフィギュレーションを取得してテスト結果を送信するには、プライベートロケーションのワーカーが以下の Datadog API エンドポイントにアクセスする必要があります。

ポートエンドポイント説明
443intake.synthetics.datadoghq.comAWS Signature Version 4 プロトコルに基づく社内プロトコルを使用して、テストコンフィギュレーションをプルし、テスト結果を Datadog にプッシュするためにプライベートロケーションで使用されます。
443バージョン 0.2.0 以降、1.4.0 以下は intake-v2.synthetics.datadoghq.comブラウザのテストアーティファクト (スクリーンショット、エラー、リソースなど) をプッシュするためにプライベートロケーションで使用されます。

ポートエンドポイント説明
443intake.synthetics.datadoghq.euAWS Signature Version 4 プロトコルに基づく社内プロトコルを使用して、テストコンフィギュレーションをプルし、テスト結果を Datadog にプッシュするためにプライベートロケーションで使用されます。

: これらのドメインは、静的 IP アドレスのセットを指しています。これらのアドレスは https://ip-ranges.datadoghq.eu にあります。

ポートエンドポイント説明
443intake.synthetics.us3.datadoghq.comAWS Signature Version 4 プロトコルに基づく社内プロトコルを使用して、テストコンフィギュレーションをプルし、テスト結果を Datadog にプッシュするためにプライベートロケーションで使用されます。

ポートエンドポイント説明
443intake.synthetics.ap1.datadoghq.comAWS Signature Version 4 プロトコルに基づく社内プロトコルを使用して、テストコンフィギュレーションをプルし、テスト結果を Datadog にプッシュするためにプライベートロケーションで使用されます。

ポートエンドポイント説明
443intake.synthetics.us5.datadoghq.comAWS Signature Version 4 プロトコルに基づく社内プロトコルを使用して、テストコンフィギュレーションをプルし、テスト結果を Datadog にプッシュするためにプライベートロケーションで使用されます。

ポートエンドポイント説明
443intake.synthetics.ddog-gov.comAWS Signature Version 4 プロトコルに基づく社内プロトコルを使用して、テストコンフィギュレーションをプルし、テスト結果を Datadog にプッシュするためにプライベートロケーションで使用されます。バージョン 1.32.0 以降では、これらのリクエストは連邦情報処理規格 (FIPS) に準拠しています。

プライベートロケーションを設定する

プライベートロケーションは、Synthetics Private Locations Write ロールを持つユーザーのみが作成できます。詳しくは、権限を参照してください。

プライベートロケーションを作成する

Synthetic Monitoring > Settings > Private Locations に移動し、Add Private Location をクリックします。

プライベートロケーションを作成する

プライベートロケーションの詳細を入力します。

  1. プライベートロケーションの名前および説明を指定します。
  2. プライベートロケーションに関連付けるタグを追加します。
  3. 既存の API キーを 1 つ選択します。API キーを選択すると、プライベートロケーションと Datadog 間の通信が可能になります。既存の API キーがない場合は、Generate API key をクリックして専用ページで作成します。NameAPI key フィールドのみが必須です。
  4. プライベートロケーションのアクセス権を設定し、Save Location and Generate Configuration File をクリックします。Datadog はプライベートロケーションを作成し、関連するコンフィギュレーションファイルを生成します。
プライベートロケーションに詳細を追加する

プライベートロケーションを構成する

生成されたコンフィギュレーションファイルをカスタマイズして、プライベートロケーションを構成します。ステップ 3プロキシ予約 IP のブロックなどの初期構成パラメーターを追加すると、ステップ 4 で生成したコンフィギュレーションファイルは自動的に更新されます。

詳細オプションにアクセスして、内部ネットワークの設定に基づいた構成を調整することができます。help コマンドの詳細については、構成を参照してください。

プロキシのコンフィギュレーション

プライベートロケーションと Datadog 間のトラフィックがプロキシを経由する必要がある場合は、http://<YOUR_USER>:<YOUR_PWD>@<YOUR_IP>:<YOUR_PORT> の形式でプロキシ URL を指定し、生成されたコンフィギュレーションファイルに proxyDatadog パラメーターを追加します。

Add a proxy to your private location configuration file

予約済み IP のブロック

デフォルトでは、Synthetic ユーザーは任意の IP を使用してエンドポイントで Synthetic テストを作成できます。ユーザーがネットワーク内の機密性の高い内部 IP でテストを作成できないようにする場合は、Block reserved IPs ボタンを切り替えて、予約済み IP 範囲のデフォルトセット (IPv4 アドレスレジストリおよび IPv6 アドレスレジストリ) をブロックし、生成されたコンフィギュレーションファイルで関連する enableDefaultBlockedIpRanges パラメーターを true に設定します。

テストするエンドポイントの一部がブロックされた予約済み IP 範囲の 1 つまたは複数にある場合は、その IP または CIDR、あるいはその両方を許可リストに追加して、生成されたコンフィギュレーションファイルに関連する allowedIPRanges パラメーターを追加できます。

予約済み IP を構成する

コンフィギュレーションファイルを表示する

プライベートロケーションのコンフィギュレーションファイルに適切なオプションを追加した後、このファイルを作業ディレクトリにコピーアンドペーストしてください。このコンフィギュレーションファイルには、プライベートロケーションの認証、テスト構成の復号化、およびテスト結果の暗号化のためのシークレットが含まれています。

予約済み IP を構成する

Datadog はシークレットを保存しないので、View Installation Instructions をクリックする前に、ローカルに保存してください。

注: ワーカーをさらに追加する場合、または、他のホストにワーカーをインストールする場合は、これらの秘密情報を再度参照できる必要があります。

プライベートロケーションをインストールする

タスクの定義では、環境変数 DATADOG_API_KEYDATADOG_ACCESS_KEYDATADOG_SECRET_ACCESS_KEYDATADOG_PUBLIC_KEY_PEMDATADOG_PRIVATE_KEY を使用することが可能です。

次でプライベートロケーションを起動します。

次のコマンドを実行して、コンフィギュレーションファイルをコンテナにマウントすることでプライベートロケーションワーカーを起動します。<MY_WORKER_CONFIG_FILE_NAME>.json ファイルはルートホームフォルダーではなく /etc/docker 内に格納してください。

docker run -d --restart unless-stopped -v $PWD/<MY_WORKER_CONFIG_FILE_NAME>.json:/etc/datadog/synthetics-check-runner.json datadog/synthetics-private-location-worker:latest

注: 予約済み IP をブロックした場合は、プライベートロケーションコンテナに NET_ADMIN Linux 機能を追加してください。

このコマンドは、Docker コンテナを起動し、プライベートロケーションでテストを実行できるようにします。Datadog は、適切な再起動ポリシーを使用して、コンテナをデタッチモードで実行することをお勧めします。

ルート証明書

カスタムルート証明書をプライベートロケーションにアップロードして、API やブラウザテストで独自の .pem ファイルを使用して SSL ハンドシェイクを実行させることができます。

プライベートロケーションのコンテナをスピンアップする際には、プライベートロケーションの構成ファイルをマウントするのと同じように、関連する証明書 .pem ファイルを /etc/datadog/certs にマウントします。これらの証明書は信頼できる CA とみなされ、テストの実行時に使用されます。

管理者用のプライベートロケーションのパラメーターについては、構成を参照してください。

  1. 次で docker-compose.yml ファイルを作成します。

    version: "3"
    services:
        synthetics-private-location-worker:
            image: datadog/synthetics-private-location-worker:latest
            volumes:
                - PATH_TO_PRIVATE_LOCATION_CONFIG_FILE:/etc/datadog/synthetics-check-runner.json
    

    注: 予約済み IP をブロックした場合は、プライベートロケーションコンテナに NET_ADMIN Linux 機能を追加してください。

  2. 次でコンテナを起動します。

    docker-compose -f docker-compose.yml up
    

ルート証明書

カスタムルート証明書をプライベートロケーションにアップロードして、API やブラウザテストで独自の .pem ファイルを使用して SSL ハンドシェイクを実行させることができます。

プライベートロケーションのコンテナをスピンアップする際には、プライベートロケーションの構成ファイルをマウントするのと同じように、関連する証明書 .pem ファイルを /etc/datadog/certs にマウントします。これらの証明書は信頼できる CA とみなされ、テストの実行時に使用されます。

管理者用のプライベートロケーションのパラメーターについては、構成を参照してください。

Podman の構成は Docker と非常に似ていますが、ICMP テストに対応するため、追加機能として NET_RAW を設定する必要があります。

  1. コンテナが動作するホストから、sysctl -w "net.ipv4.ping_group_range = 0 2147483647" を実行します。

  2. このコマンドを実行すると、コンフィギュレーションファイルをコンテナにマウントしてプライベートロケーションのワーカーが起動します。コンテナにマウントするために、<MY_WORKER_CONFIG_FILE_NAME>.json ファイルがアクセス可能であることを確認します。

    podman run --cap-add=NET_RAW --rm -it -v $PWD/<MY_WORKER_CONFIG_FILE_NAME>.json:/etc/datadog/synthetics-check-runner.json gcr.io/datadoghq/synthetics-private-location-worker:latest
    

    ブロックされた予約 IP アドレスを構成している場合、プライベートロケーションのコンテナに NET_ADMIN Linux 機能を追加します。

このコマンドは、Podman コンテナを起動し、プライベートロケーションでテストを実行できるようにします。Datadog は、適切な再起動ポリシーを使用して、コンテナをデタッチモードで実行することをお勧めします。

プライベートロケーションワーカーを安全にデプロイするために、コンテナ内の /etc/datadog/synthetics-check-runner.json 以下に Kubernetes Secret リソースを設定しマウントしてください。

  1. 以下を実行し、以前に作成した JSON ファイルで Kubernetes Secret を作成します。

    kubectl create secret generic private-location-worker-config --from-file=<MY_WORKER_CONFIG_FILE_NAME>.json
    
  2. デプロイを使用して、プライベートロケーションに関連付けられている望ましい状態を記述します。次の private-location-worker-deployment.yaml ファイルを作成します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: datadog-private-location-worker
      namespace: default
    spec:
      selector:
        matchLabels:
          app: private-location
      template:
        metadata:
          name: datadog-private-location-worker
          labels:
            app: private-location
        spec:
          containers:
          - name: datadog-private-location-worker
            image: datadog/synthetics-private-location-worker
            volumeMounts:
            - mountPath: /etc/datadog/synthetics-check-runner.json
              name: worker-config
              subPath: <MY_WORKER_CONFIG_FILE_NAME>
          volumes:
          - name: worker-config
            secret:
              secretName: private-location-worker-config
    

    注: 予約済み IP をブロックした場合は、プライベートロケーションコンテナに NET_ADMIN Linux 機能を追加してください。

  3. コンフィギュレーションを適用します。

    kubectl apply -f private-location-worker-deployment.yaml
    

OpenShift の場合、プライベートロケーションを anyuid SCC で実行します。これは、ブラウザテストを実行するために必要です。

構成パラメーターに、すでに構成されているシークレットを指す環境変数を設定することができます。シークレットを指定した環境変数を作成するには、Kubernetes のドキュメントを参照してください。

あるいは

  1. Datadog Synthetics Private Location を Helm リポジトリに追加します。

    helm repo add datadog https://helm.datadoghq.com
    helm repo update
    
  2. 先に作成した JSON ファイルを使って、リリース名 <RELEASE_NAME> のチャートをインストールします。

    helm install <RELEASE_NAME> datadog/synthetics-private-location --set-file configFile=<MY_WORKER_CONFIG_FILE_NAME>.json
    

注: 予約済み IP をブロックした場合は、プライベートロケーションコンテナに NET_ADMIN Linux 機能を追加してください。

以下に一致する EC2 タスクの定義を新規に作成します。各パラメーターを、以前に生成したプライベートロケーションのコンフィギュレーションファイルにある対応する値に置き換えてください。

{
    ...
    "containerDefinitions": [
        {
            "command": [
                "--site='...'",
                "--locationID='...'",
                "--accessKey='...'",
                "--datadogApiKey='...'",
                "--secretAccessKey='...'",
                "--privateKey='-----BEGIN RSA PRIVATE KEY-----XXXXXXXX-----END RSA PRIVATE KEY-----'",
                "--publicKey.pem='-----BEGIN PUBLIC KEY-----XXXXXXXX-----END PUBLIC KEY-----'",
                "--publicKey.fingerprint='...'"
            ],
            ...
            "image": "datadog/synthetics-private-location-worker:latest",
            ...
        }
    ],
    ...
    "compatibilities": [
        "EC2"
    ],
    ...
}

注:

  • 予約済み IP をブロックした場合は、linuxParameters を構成して、プライベートロケーションコンテナに NET_ADMIN 機能を付与してください。
  • DATADOG_API_KEYDATADOG_ACCESS_KEYDATADOG_SECRET_ACCESS_KEYDATADOG_PUBLIC_KEY_PEMDATADOG_PRIVATE_KEY の環境変数を使用する場合、それらを "command": [ ] セクションに入れる必要はありません。

以下に一致する Fargate タスクの定義を新規に作成します。各パラメーターを、以前に生成したプライベートロケーションのコンフィギュレーションファイルにある対応する値に置き換えてください。

{
    ...
    "containerDefinitions": [
        {
            "command": [
                "--site='...'",
                "--locationID='...'",
                "--accessKey='...'",
                "--datadogApiKey='...'",
                "--secretAccessKey='...'",
                "--privateKey='-----BEGIN RSA PRIVATE KEY-----XXXXXXXX-----END RSA PRIVATE KEY-----'",
                "--publicKey.pem='-----BEGIN PUBLIC KEY-----XXXXXXXX-----END PUBLIC KEY-----'",
                "--publicKey.fingerprint='...'"
            ],
            ...
            "image": "datadog/synthetics-private-location-worker:latest",
            ...
        }
    ],
    ...
    "compatibilities": [
        "EC2",
        "FARGATE"
    ],
    ...
}

注: プライベートロケーションファイアウォールオプションは AWS Fargate ではサポートされていないため、enableDefaultBlockedIpRanges パラメーターは true に設定できません。

Datadog は既に Kubernetes および AWS と統合されているため、すぐに EKS を監視することができます。

  1. 以下を実行し、以前に作成した JSON ファイルで Kubernetes Secret を作成します。

    kubectl create secret generic private-location-worker-config --from-file=<MY_WORKER_CONFIG_FILE_NAME>.json
    
  2. デプロイを使用して、プライベートロケーションに関連付けられている望ましい状態を記述します。次の private-location-worker-deployment.yaml ファイルを作成します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: datadog-private-location-worker
      namespace: default
    spec:
      selector:
        matchLabels:
          app: private-location
      template:
        metadata:
          name: datadog-private-location-worker
          labels:
            app: private-location
        spec:
          containers:
          - name: datadog-private-location-worker
            image: datadog/synthetics-private-location-worker
            volumeMounts:
            - mountPath: /etc/datadog/synthetics-check-runner.json
              name: worker-config
              subPath: <MY_WORKER_CONFIG_FILE_NAME>
          volumes:
          - name: worker-config
            configMap:
              name: private-location-worker-config
    

    注: 予約済み IP をブロックした場合は、セキュリティコンテキストを構成して、プライベートロケーションコンテナに NET_ADMIN Linux 機能を追加してください。

  3. コンフィギュレーションを適用します。

    kubectl apply -f private-location-worker-deployment.yaml
    
  1. datadog-synthetics-worker-<version>.amd64.msi ファイルをダウンロードし、プライベートロケーションをインストールしたいマシンからこのファイルを実行します。

  2. ウェルカムページで をクリックし、EULA を読み、利用規約に同意します。Next をクリックします。

  3. アプリケーションのインストール先を変更するか、デフォルト設定のままにします。Next をクリックします。

  4. Windows のプライベートロケーションを構成するには、以下のいずれかの方法があります。

    • Datadog Synthetics Private Location Worker の JSON 構成を貼り付けて入力します。このファイルは、プライベートロケーションの作成時に Datadog が生成します。
    • Datadog Synthetics Private Location Worker の JSON 構成を含むファイルのパスを参照または入力します。
    • 空白のままにしておいて、インストール完了後に Windows のコマンドラインプロンプトで C:\\Program Files\Datadog-Synthetics\Synthetics\synthetics-pl-worker.exe --config=<PathToYourConfiguration> を実行することができます。
    Synthetics Private Location Worker ウィザード、MSI インストーラー。'Paste in a JSON configuration' (JSON 構成を貼り付ける) オプションが選択されています。この JSON 構成のテキストフィールドが表示されています。
  5. 以下の構成オプションを適用できます。

    Synthetics Private Location Worker ウィザード、MSI インストーラー。ファイアウォールとログの設定が表示されています。
    Apply firewall rules needed by this program to Windows Firewall (このプログラムに必要なファイアウォールルールを Windows ファイアウォールに適用)
    インストーラーがインストール時にファイアウォールルールを適用し、アンインストール時に削除できるようにします。
    Apply rules to block reserved IPs in Windows Firewall (Windows ファイアウォールで予約済み IP をブロックするルールを適用)
    Chrome、Firefox、Edge (インストールされている場合) のブロックルールを構成し、Windows ファイアウォールで予約済み IP アドレス範囲の送信をブロックするルールを追加します。
    Enable File Logging (ファイルログの有効化)
    Synthetics Private Location Worker がインストールディレクトリ内でログファイルを記録できるようにします。
    Log Rotation Days (ログローテーション日数 )
    ローカルシステムからログを削除するまでの保存日数を指定します。
    Logging Verbosity (ロギングの冗長性)
    Synthetics Private Location Worker のコンソールとファイルロギングの冗長性を指定します。
  6. NextInstall をクリックしてインストールプロセスを開始します。

プロセスが完了したら、インストール完了ページで Finish をクリックします。

JSON 構成を入力した場合、Windows サービスはその構成を使用して実行を開始します。構成を入力していない場合は、コマンドプロンプトから C:\\Program Files\Datadog-Synthetics\Synthetics\synthetics-pl-worker.exe --config=< PathToYourConfiguration > を実行するか、スタートメニューのショートカットを使用して Synthetics Private Location Worker を起動します。
  1. datadog-synthetics-worker-<version>.amd64.msi ファイルをダウンロードし、プライベートロケーションをインストールしたいマシンからこのファイルを実行します。

  2. インストーラをダウンロードしたディレクトリで、以下のコマンドのいずれかを実行します。

    • PowerShell ターミナルで

      Start-Process msiexec "/i datadog-synthetics-worker-<version>-beta.amd64.msi /quiet /qn WORKERCONFIG_FILEPATH=C:\ProgramData\Datadog-Synthetics\worker-config.json";
      
    • またはコマンドターミナルで

      msiexec /i datadog-synthetics-worker-1.43.0-beta.amd64.msi /quiet /qn WORKERCONFIG_FILEPATH=C:\ProgramData\Datadog-Synthetics\worker-config.json
      

パラメーターを追加することができます。

オプションパラメーター定義デフォルト値タイプ
APPLYDEFAULTFIREWALLRULESプログラムに必要なファイアウォールルールを適用します。1N/A0: 無効
1: 有効
APPLYFIREWALLDEFAULTBLOCKRULESインストールされている各ブラウザ (Chrome、Edge、Firefox) の予約済み IP アドレスをブロックします。Windows ファイアウォールでは、ループバック接続をブロックすることはできません。0N/A0: 無効
1: 有効
LOGGING_ENABLED有効にすると、これによりファイルログイングが構成されます。これらのログは、インストールディレクトリの logs フォルダに保存されます。0--enableFileLogging0: 無効
1: 有効
LOGGING_VERBOSITYプログラムのロギングの冗長性を構成します。これはコンソールログとファイルログに影響します。これはコンソールログとファイルログに影響します。-vvv-v: Error
-vv: Warning
-vvv: Info
vvvv: Debug
LOGGING_MAXDAYSシステム上でファイルログを削除する前に保持する日数。無人インストールを実行する場合は、任意の日数を指定できます。7--logFileMaxDays整数
WORKERCONFIG_FILEPATHこれは Synthetics Private Location Worker JSON 構成ファイルのパスに変更する必要があります。パスにスペースが含まれている場合は、このパスを引用符で囲んでください。--config文字列

ライブネスプローブとレディネスプローブのセットアップ

オーケストレーターがワーカーが正しく動作していることを確認できるように、ライブネスプローブまたはレディネスプローブを追加します。

レディネスプローブの場合、プライベートロケーションデプロイメントでポート 8080 のプライベートロケーションステータスプローブを有効にする必要があります。詳細については、プライベートロケーションの構成を参照してください。

healthcheck:
  retries: 3
  test: [
    "CMD", "wget", "-O", "/dev/null", "-q", "http://localhost:8080/liveness"
  ]
  timeout: 2s
  interval: 10s
  start_period: 30s
livenessProbe:
  httpGet:
    path: /liveness
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
readinessProbe:
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  httpGet:
    path: /readiness
    port: 8080
livenessProbe:
  httpGet:
    path: /liveness
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
readinessProbe:
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  httpGet:
    path: /readiness
    port: 8080
"healthCheck": {
  "retries": 3,
  "command": [
    "CMD-SHELL", "/usr/bin/wget", "-O", "/dev/null", "-q", "http://localhost:8080/liveness"
  ],
  "timeout": 2,
  "interval": 10,
  "startPeriod": 30
}
"healthCheck": {
  "retries": 3,
  "command": [
    "CMD-SHELL", "wget -O /dev/null -q http://localhost:8080/liveness || exit 1"
  ],
  "timeout": 2,
  "interval": 10,
  "startPeriod": 30
}
livenessProbe:
  httpGet:
    path: /liveness
    port: 8080
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
readinessProbe:
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  httpGet:
    path: /readiness
    port: 8080

ヘルスチェックの追加構成

プライベートロケーションのヘルスチェックを追加するこの方法は、サポートされなくなりました。Datadog では、ライブネスプローブとレディネスプローブを使用することを推奨しています。

プライベートロケーションコンテナの /tmp/liveness.date ファイルは、Datadog から正常にポーリングされるごとに更新されます (デフォルトでは 2 秒)。例えば過去1分間にフェッチされないなど一定期間ポーリングが行われないと、コンテナは異常だとみなされます。

以下のコンフィギュレーションを使い、livenessProbe でコンテナにヘルスチェックを設定します。

healthcheck:
  retries: 3
  test: [
    "CMD", "/bin/sh", "-c", "'[ $$(expr $$(cat /tmp/liveness.date) + 300000) -gt $$(date +%s%3N) ]'"
  ]
  timeout: 2s
  interval: 10s
  start_period: 30s
livenessProbe:
  exec:
    command:
      - /bin/sh
      - -c
      - '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  failureThreshold: 3
livenessProbe:
  exec:
    command:
      - /bin/sh
      - -c
      - '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  failureThreshold: 3
"healthCheck": {
  "retries": 3,
  "command": [
    "CMD-SHELL", "/bin/sh -c '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'"
  ],
  "timeout": 2,
  "interval": 10,
  "startPeriod": 30
}
"healthCheck": {
  "retries": 3,
  "command": [
    "CMD-SHELL", "/bin/sh -c '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'"
  ],
  "timeout": 2,
  "interval": 10,
  "startPeriod": 30
}
livenessProbe:
  exec:
    command:
      - /bin/sh
      - -c
      - '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'
  initialDelaySeconds: 30
  periodSeconds: 10
  timeoutSeconds: 2
  failureThreshold: 3

プライベートロケーションイメージのアップグレード

既存のプライベートロケーションをアップグレードするには、プライベートロケーションのサイドパネルにある歯車アイコンをクリックし、Installation instructions をクリックします。

プライベートロケーションのセットアップワークフローにアクセスする

次に、環境に応じた構成コマンドを実行して、プライベートロケーションイメージの最新バージョンを取得します。

: Private Location のイメージを起動するために docker run を使用していて、以前に latest タグを使用して Private Location のイメージをインストールしたことがある場合は、同じ latest タグでローカルに存在するキャッシュバージョンのイメージに依存するのではなく、最新バージョンがプルされるように docker run コマンドに --pull=always を追加してください。

内部エンドポイントをテストする

少なくとも 1 つのプライベートロケーションワーカーが Datadog にレポートを開始すると、プライベートロケーションのステータスが緑色で表示されます。

プライベートロケーションのレポート

Settings ページのプライベートロケーションリストに REPORTING の健全性ステータスと関連するモニターステータスが表示されます。

プライベートロケーションの健全性ステータスとモニターステータス

内部エンドポイントの 1 つで速度テストを起動して最初の内部エンドポイントのテストを開始し、期待される応答が得られるかどうかを確認します。

注: Datadog はプライベートロケーションからアウトバウンドトラフィックのみを送信し、インバウンドトラフィックは送信されません。

Synthetic テストをプライベートロケーションから起動する

API、マルチステップ API、またはブラウザテストを作成し、関心のあるプライベートロケーションを選択します。

Synthetics テストのプライベートロケーションへの割り当て

プライベートロケーションは、Datadog が管理するロケーションと同様に使用できます。プライベートロケーションに Synthetic テストを割り当て、テスト結果を視覚化し、Synthetic メトリクスを取得するなど、様々なことが可能です。

プライベートロケーションのサイズ変更

1 つのプライベートロケーションに単一のコンフィギュレーションファイルで複数のワーカーを実行できるため、ワーカーを追加または削除することでプライベートロケーションを水平スケーリングできます。このとき、concurrency パラメーターを必ず設定し、プライベートロケーションで実行するテストのタイプおよび数と一致するワーカーリソースを割り当てます。

プライベートロケーションワーカーが取り扱うことのできるロードを増加してプライベートロケーションを垂直にスケーリングすることもできます。同様に、concurrency パラメーターを使用して、ワーカーが実行できるテストの最大数を調整し、ワーカーに割り当てられたリソースを必ず更新してください。

詳しくは、プライベートロケーションのディメンションを参照してください。

プライベートロケーションを Continuous Testing に使用するには、concurrency パラメーターに値を設定し、並列化を制御してください。詳しくは、Continuous Testing を参照してください。

プライベートロケーションを監視する

最初はプライベートロケーションから実行するテストの数と種類に見合ったリソースを追加しますが、プライベートロケーションの規模を縮小すべきか拡大すべきかを知る最も簡単な方法は、厳密にモニターすることです。プライベートロケーションモニタリングは、すぐに使えるメトリクスやモニターと同様に、プライベートロケーションのパフォーマンスや状態に関する洞察を提供します。

詳しくは、プライベートロケーションモニタリングを参照してください。

ヘルプ

デフォルトでは、Datadog Admin ロールを持つユーザーのみが、プライベートロケーションの作成、プライベートロケーションの削除、プライベートロケーションのインストールガイドラインにアクセスすることができます。

Datadog Admin ロールおよび Datadog Standard ロール]20を持つユーザーは、プライベートロケーションの表示、プライベートロケーションの検索、プライベートロケーションへの Synthetic テストの割り当てを行うことができます。ユーザーをこれら 2 つのデフォルト ロールのいずれかにアップグレードして、Private Locations ページへのアクセスを許可してください。

カスタムロール機能を使用している場合、ユーザーを synthetics_private_location_readsynthetics_private_location_write 権限を含むカスタムロールに追加してください。

その他の参考資料