- 重要な情報
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
gRPC ヘルスチェックは、gRPC サービスの健全性を報告するための規格です。これにより、gRPC サーバーやサービスが応答し、実行され、リモートプロシージャコール (RPC) を処理する能力があるかどうかを判断することができます。
ヘルスチェックのメカニズムは、gRPC サーバー上の gRPC サービスとして実装することができます。gRPC コミュニティで共有されているヘルスチェックのプロトファイル例にアクセスするには、オープンソースの gRPC リポジトリを参照してください。
gRPC ヘルスチェックテストは、ネットワークの外部または内部からのテストの実行の好みに応じて、管理ロケーションとプライベートロケーションの両方から実行することができます。gRPC テストは、スケジュール、オンデマンド、または CI/CD パイプライン内で直接実行することができます。
gRPC
ヘルスチェックテストの作成を選択した後、テストのリクエストを定義します。
ヘルスチェックテストを実行する Host と Port を指定します。デフォルトでは、ポートは 50051
に設定されています。
ヘルスチェックを送信したいサービスを入力します。gRPC サーバーのヘルスチェックを送信する場合は、このフィールドを空白にします。
gRPC ヘルスチェックテストの名前を入力します。
gRPC ヘルスチェックテストに env
タグとその他のタグを追加します。次に、これらのタグを使用して、Synthetic Monitoring ホームページで Synthetic テストをすばやくフィルタリングできます。
Test Service をクリックして、リクエストのコンフィギュレーションをテストします。画面の右側に応答プレビューが表示されます。
アサーションは、期待されるテスト結果が何であるかを定義します。Test Service をクリックすると、取得したレスポンスに基づいて response time
と healthcheck status
に関するアサーションが追加されます。モニターするテストには、少なくとも 1 つのアサーションを定義する必要があります。
タイプ | 演算子 | 値の型 |
---|---|---|
response time | is less than | 整数 (ms) |
ヘルスチェックのステータス | is 、is not | 整数 (ms) |
New Assertion をクリックするか、応答プレビューを直接クリックすることで、API テストごとに最大 20 個のアサーションを作成できます。
テストがレスポンス本文にアサーションを含まない場合、本文のペイロードはドロップし、Synthetics Worker で設定されたタイムアウト制限内でリクエストに関連するレスポンスタイムを返します。
テストがレスポンス本文に対するアサーションを含み、タイムアウトの制限に達した場合、Assertions on the body/response cannot be run beyond this limit
というエラーが表示されます。
gRPC ヘルスチェックテストを実行する Locations を選択します。gRPC ヘルスチェックテストは、ヘルスチェックテストをネットワークの外部から実行するか内部から実行するかに応じて、管理ロケーションとプライベートロケーションの両方から実行することができます。
gRPC ヘルスチェックテストは次の頻度で実行できます。
アラート条件で、ヘルスチェックテストが失敗しアラートをトリガーする状況を設定します。
アラートの条件を An alert is triggered if any assertion fails for X minutes from any n of N locations
に設定すると、次の 2 つの条件が当てはまる場合にのみアラートがトリガーされます。
ヘルスチェックテストが失敗した場合、Y
ミリ秒後に X
回再試行することができます。再試行の間隔は、警告の感性に合うようにカスタマイズしてください。
ロケーションのアップタイムは、評価ごとに計算されます (評価前の最後のテスト結果がアップかダウンか)。合計アップタイムは、構成されたアラート条件に基づいて計算されます。送信される通知は、合計アップタイムに基づきます。
以前に定義されたアラート条件に基づいて、テストによって通知が送信されます。このセクションを使用して、チームに送信するメッセージの方法と内容を定義します。
モニターの構成方法と同様、メッセージに @notification
を追加するか、ドロップダウンボックスでチームメンバーと接続されたインテグレーションを検索して、通知を受信するユーザーやサービスを選択します。
ヘルスチェックテストの通知メッセージを入力します。このフィールドでは、標準のマークダウン形式のほか、以下の条件付き変数を使用できます。
条件付き変数 | 説明 |
---|---|
{{#is_alert}} | テストがアラートを発する場合に表示します。 |
{{^is_alert}} | テストがアラートを発しない限り表示します。 |
{{#is_recovery}} | テストがアラートから回復したときに表示します。 |
{{^is_recovery}} | テストがアラートから回復しない限り表示します。 |
{{#is_renotify}} | モニターが再通知したときに表示します。 |
{{^is_renotify}} | モニターが再通知しない限り表示します。 |
{{#is_priority}} | モニターが優先順位 (P1~P5) に一致したときに表示します。 |
{{^is_priority}} | モニターが優先順位 (P1~P5) に一致しない限り表示します。 |
テストが失敗した場合に、ヘルスチェックテストで通知メッセージを再送信する頻度を指定します。ヘルスチェックテストの失敗を再通知しない場合は、Never renotify if the monitor has not been resolved
オプションを使用してください。
Save をクリックすると、保存され、ヘルスチェックテストが開始されます。
ヘルスチェックテストコンフィギュレーションフォームの右上隅にある Create Local Variable をクリックすると、ローカル変数を作成できます。以下の利用可能なビルトインのいずれかから値を定義できます。
{{ numeric(n) }}
n
桁の数字列を生成します。{{ alphabetic(n) }}
n
文字のアルファベット文字列を生成します。{{ alphanumeric(n) }}
n
文字の英数字文字列を生成します。{{ date(n, format) }}
n
日の値を使用して、許容される形式のいずれかで日付を生成します。{{ timestamp(n, unit) }}
n
選択単位で開始されたタイムスタンプの値を使用して、許容される単位のいずれかでタイムスタンプを生成します。gRPC テストの URL、高度なオプション、アサーションで、Settings
で定義されたグローバル変数を使用することができます。
変数のリストを表示するには、目的のフィールドに {{
と入力します。
ヘルスチェックテストが 1 つ以上のアサーションを満たさない場合、またはリクエストが時期尚早に失敗した場合、テストは FAILED
と見なされます。場合によっては、エンドポイントに対してアサーションをテストすることなくヘルスチェックテストが実際に失敗することがあります。
これらの理由には以下が含まれます。
gRPC specific errors
CONNRESET
DNS
INVALID_REQUEST
SSL
TIMEOUT
TIMEOUT
には 2 種類あります。TIMEOUT: The request couldn’t be completed in a reasonable time.
は、リクエストの持続時間がテスト定義のタイムアウト (デフォルトは 60 秒に設定されています) に当たったことを示します。
各リクエストについて、ネットワークウォーターフォールに表示されるのは、リクエストの完了したステージのみです。例えば、Total response time
だけが表示されている場合、DNS の解決中にタイムアウトが発生したことになります。TIMEOUT: Overall test execution couldn't be completed in a reasonable time.
は、テスト時間 (リクエストとアサーション) が最大時間 (60.5 秒) に達したことを示しています。デフォルトでは、Datadog 管理者および Datadog 標準ロールを持つユーザーのみが、Synthetic gRPC ヘルスチェックテストを作成、編集、削除できます。Synthetic gRPC ヘルスチェックテストの作成、編集、削除アクセスを取得するには、ユーザーをこれら 2 つのデフォルトのロールのいずれかにアップグレードします。
カスタムロール機能を使用している場合は、synthetics_read
および synthetics_write
権限を含むカスタムロールにユーザーを追加します。
アカウントにカスタムロールを使用しているお客様は、アクセス制限が利用可能です。
組織内の役割に基づいて、ブラウザテストへのアクセスを制限することができます。ブラウザテストを作成する際に、(ユーザーのほかに) どのロールがテストの読み取りと書き込みを行えるかを選択します。