概要
このチェックは、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
を探します。
収集データ
メトリクス
各メトリクスによって送信されるタグのリストについては、metrics.py を参照してください。
イベント
Envoy チェックには、イベントは含まれません。
サービスチェック
トラブルシューティング
一般的な問題
エンドポイント /server_info
に到達できません
- お使いの Envoy 環境でエンドポイントが利用不可能である場合、Envoy のコンフィギュレーションで
collect_server_info
オプションを無効化してエラーログを最小限に抑えます。
注: Envoy のバージョンデータは収集されません。
ご不明な点は、Datadog のサポートチームまでお問合せください。