概要
AWS App Mesh は、Amazon ECS Fargate または Amazon EKS クラスター上で稼働するマイクロサービスに対して、アプリケーションレベルのネットワーキングを提供するサービスメッシュです。
セットアップ
下記の指示に従って、Envoy と呼ばれる AWS App Mesh のサイドカープロキシのメトリクスの収集を有効にします。デプロイ、後でデプロイをパッチ、AWS App Mesh インジェクターコントローラーを使用、のいずれかの方法を選択してサイドカーを追加します。どの方法を選択しても、下記のステップで実行できます。
メトリクスの収集
前提条件: EKS インテグレーションドキュメントを参考にして、Datadog Agent を Kubernetes クラスターで DaemonSet としてデプロイします。
App Mesh の制限により、EKS から Datadog へメトリクスを転送するには Egress フィルターを Allow External Traffic
に設定する必要があります。
クラスターで ConfigMap を作成し、各ポッドに追加されている App Mesh の Envoy サイドカーを自動的に検出します。
apiVersion: v1
kind: ConfigMap
metadata:
name: datadog-config
data:
envoy: |-
ad_identifiers:
- aws-appmesh-envoy
init_config:
instances:
- stats_url: http://%%host%%:9901/stats
tags:
- <TAG_KEY>:<TAG_VALUE> # Example - cluster:eks-appmesh
Datadog Agent の DaemonSet YAML ファイルで volumeMounts
オブジェクトをアップデートします。
volumeMounts:
- name: datadog-config
mountPath: /conf.d
Datadog Agent の DaemonSet YAML ファイルで volumes
オブジェクトをアップデートします。
volumes:
- name: datadog-config
configMap:
name: datadog-config
items:
- key: envoy
path: envoy.yaml
収集データ
ログ収集は、このサイトではサポートされていません。
トレースの収集
namespace を選択して、datadog-agent
とサービス (例: monitoring
) をデプロイします。オプションでこれを使用し、以下のように appmesh-injector をデプロイします。
helm upgrade -i appmesh-controller eks/appmesh-controller \
--namespace appmesh-system \
--set sidecar.logLevel=debug \
--set tracing.enabled=true \
--set tracing.provider=datadog \
--set tracing.address=ref:status.hostIP \
--set tracing.port=8126
または、EKS を使用した App Mesh ドキュメントの説明に従って、オプションの enable-datadog-tracing=true
や環境変数の ENABLE_DATADOG_TRACING=true
を使用して appmesh インジェクターをデプロイすることもできます。
メトリクスの収集
前提条件: ECS Fargate インテグレーションドキュメントを参考にして、有効化された App Mesh (Envoy サイドカーがインジェクト済みなど) により Datadog Agent を各 Fargate タスク定義に追加します。
App Mesh の制限により、ECS から Datadog へメトリクスを転送するには Egress フィルターを Allow External Traffic
に設定する必要があります。
下記の Docker ラベルを使用して、Envoy サイドカーと Datadog Agent を含むタスク定義をアップデートします。詳細については、ECS Fargate インテグレーションのセットアップをご参照ください。
"dockerLabels": {
com.datadoghq.ad.instances : [{"stats_url": "http://%%host%%:9901/stats"}]
com.datadoghq.ad.check_names : ["envoy"]
com.datadoghq.ad.init_configs : [{}]
},
収集データ
ログ収集は、このサイトではサポートされていません。
トレースの収集
- ECS Fargate インテグレーションドキュメントの説明に従って、トレースの収集を有効化します。
AWS App Mesh パラメーター ENABLE_ENVOY_DATADOG_TRACING
および DATADOG_TRACER_PORT
を ECS Fargate タスク定義の環境変数として設定します。詳細は AWS App Mesh ドキュメントを参照してください。
メトリクスの収集
前提条件: ECS インテグレーションドキュメントを参考にして、有効化された App Mesh (Envoy サイドカーがインジェクト済みなど) により、Datadog Agent を各 ECS EC2 タスク定義に追加します。
App Mesh の制限により、ECS から Datadog へメトリクスを転送するには Egress フィルターを Allow External Traffic
に設定する必要があります。
下記の Docker ラベルを使用して、Envoy サイドカーと Datadog Agent を含むタスク定義をアップデートします。詳細については、ECS Fargate インテグレーションのセットアップをご参照ください。
"dockerLabels": {
com.datadoghq.ad.instances : [{"stats_url": "http://%%host%%:9901/stats"}]
com.datadoghq.ad.check_names : ["envoy"]
com.datadoghq.ad.init_configs : [{}]
},
収集データ
ログ収集は、このサイトではサポートされていません。
トレースの収集
ECS インテグレーションドキュメントの説明に従って、トレースの収集を有効化します。
AWS App Mesh パラメーター ENABLE_ENVOY_DATADOG_TRACING
および DATADOG_TRACER_PORT
を ECS タスク定義の環境変数として設定します。詳細は AWS App Mesh ドキュメントを参照してください。
収集データ
メトリクス
メトリクス一覧については、Envoy インテグレーションをご参照ください。
イベント
AWS App Mesh インテグレーションには、イベントは含まれません。
サービスチェック
AWS App Mesh インテグレーションには、サービスチェック機能は含まれません。
トラブルシューティング
ご不明な点は、Datadog のサポートチームまでお問合せください。
その他の参考資料