概要
このチェックは、Envoy から分散型システムの可観測性メトリクスを収集します。
セットアップ
インストール
Envoy チェックは Datadog Agent パッケージに含まれています。サーバーに追加でインストールする必要はありません。
Istio
Istio の一部として Envoy を使用している場合は、Envoy インテグレーションを構成して Istio プロキシメトリクスエンドポイントからのメトリクスを収集します。
instances:
  - openmetrics_endpoint: localhost:15090/stats/prometheus
標準的な方法
/stats エンドポイントをセットアップする方法は 2 つあります。
セキュリティ保護なしの統計エンドポイント
以下に、Envoy の管理構成例を示します。
admin:
  access_log_path: "/dev/null"
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 8001
セキュリティ保護ありの統計エンドポイント
管理エンドポイントにルーティングし (Envoy が自身に接続)、/stats へのルートのみを持つリスナー /vhost を作成します。他のすべてのルートは静的/エラー応答を受け取ります。これにより、たとえば、認証用の L3 フィルターとの適切なインテグレーションも可能になります。
envoy_secured_stats_config.json のコンフィグ例:
admin:
  access_log_path: /dev/null
  address:
    socket_address:
      protocol: TCP
      address: 127.0.0.1
      port_value: 8081
static_resources:
  listeners:
    - address:
        socket_address:
          protocol: TCP
          address: 0.0.0.0
          port_value: 80
      filter_chains:
        - filters:
            - name: envoy.http_connection_manager
              config:
                codec_type: AUTO
                stat_prefix: ingress_http
                route_config:
                  virtual_hosts:
                    - name: backend
                      domains:
                        - "*"
                      routes:
                        - match:
                            prefix: /stats
                          route:
                            cluster: service_stats
                http_filters:
                  - name: envoy.router
                    config:
  clusters:
    - name: service_stats
      connect_timeout: 0.250s
      type: LOGICAL_DNS
      lb_policy: ROUND_ROBIN
      hosts:
        - socket_address:
            protocol: TCP
            address: 127.0.0.1
            port_value: 8001
構成
ホスト
ホストで実行中の Agent に対してこのチェックを構成するには
メトリクスの収集
- Envoy のパフォーマンスデータの収集を開始するには、Agent のコンフィギュレーションディレクトリのルートにある - conf.d/フォルダーの- envoy.d/conf.yamlファイルを編集します。使用可能なすべてのコンフィギュレーションオプションについては、サンプル envoy.d/conf.yaml を参照してください。
 - init_config:
instances:
    ## @param openmetrics_endpoint - string - required
    ## The URL exposing metrics in the OpenMetrics format.
    #
  - openmetrics_endpoint: http://localhost:8001/stats/prometheus
 
- Datadog Agent が Envoy の管理エンドポイントにアクセスできるかを確認します。 
- Agent を再起動します。 
ログ収集
Agent バージョン 6.0 以降で利用可能
- Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、- datadog.yamlファイルでこれを有効にします。
 
- 次に、下部にある - logs行のコメントを解除して、- envoy.d/conf.yamlを編集します。ログの- pathを Envoy ログファイルの正しいパスで更新してください。
 - logs:
  - type: file
    path: /var/log/envoy.log
    source: envoy
    service: envoy
 
- Agent を再起動します。 
コンテナ化
コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。
メトリクスの収集
| パラメーター | 値 | 
|---|
| <INTEGRATION_NAME> | envoy | 
| <INIT_CONFIG> | 空白または {} | 
| <INSTANCE_CONFIG> | {"openmetrics_endpoint": "http://%%host%%:80/stats/prometheus"} | 
| 注: 現行バージョンのチェック (1.26.0+) は、メトリクスの収集に OpenMetrics を使用し、これには Python 3 が必要です。Python 3 の使用が不可能なホストの場合や、このチェックのレガシーバージョンを使用する場合は、以下のコンフィグを参照してください。 |  | 
ログ収集
Agent バージョン 6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。
| パラメーター | 値 | 
|---|
| <LOG_CONFIG> | {"source": "envoy", "service": "<サービス名>"} | 
検証
Agent の status サブコマンドを実行し、Checks セクションで envoy を探します。
収集データ
メトリクス
This check collects distributed system observability metrics from 
Envoy.
各メトリクスによって送信されるタグのリストについては、metrics.py を参照してください。
イベント
Envoy チェックには、イベントは含まれません。
サービスチェック
envoy.can_connect
Returns CRITICAL if the agent can’t connect to Envoy to collect metrics, otherwise OK.
Statuses: ok, critical
envoy.openmetrics.health
Returns CRITICAL if the agent can’t connect to Envoy to collect metrics, otherwise OK.
Statuses: ok, critical
トラブルシューティング
一般的な問題
エンドポイント /server_info に到達できません
- お使いの Envoy 環境でエンドポイントが利用不可能である場合、Envoy のコンフィギュレーションで collect_server_infoオプションを無効化してエラーログを最小限に抑えます。
注: Envoy のバージョンデータは収集されません。
ご不明な点は、Datadog のサポートチームまでお問合せください。