AWS App Mesh is a service mesh that provides application-level networking to your micro services running on Amazon ECS Fargate or Amazon EKS clusters.
Minimum Agent version: 6.15.0
Use the instructions below to enable metric collection for the AWS App Mesh proxy sidecar, called Envoy. Users can choose to add sidecars in one of three modes: deploying, patching the deployment later, or using the AWS App Mesh injector controller. All modes are supported by the following steps.
Prerequisite: Deploy Datadog Agents as a DaemonSet in your Kubernetes cluster using the EKS integration documentation.
-
Due to limitations in App Mesh, forwarding metrics from EKS to Datadog requires the Egress filter to be set to
Allow External Traffic. -
Create a ConfigMap in your cluster to automatically discover App Mesh's Envoy side cars that are added to each pod:
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
-
Update the
volumeMountsobject in your Datadog Agent's DaemonSet YAML file:volumeMounts: - name: datadog-config mountPath: /conf.d
-
Update the
volumesobject in your Datadog Agent's DaemonSet YAML file:volumes: - name: datadog-config configMap: name: datadog-config items: - key: envoy path: envoy.yaml
Select the namespace to deploy the datadog-agent and service, for example: monitoring. Use this in the option to deploy the appmesh-injector with:
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=8126Alternatively, the appmesh injector can be deployed by following the App Mesh with EKS documentation using the option enable-datadog-tracing=true or environment variable ENABLE_DATADOG_TRACING=true.
Prerequisite: Add Datadog Agents to each of your Fargate task definitions with App Mesh enabled, such as an Envoy sidecar injected, using the ECS Fargate integration documentation.
-
Due to limitations in App Mesh, forwarding metrics from an ECS task to Datadog requires the Egress filter to be set to
Allow External Traffic. -
Update all task definitions containing the Envoy sidecar and Datadog Agent with the following Docker labels. See Integration Setup for ECS Fargate for details.
"dockerLabels": { com.datadoghq.ad.instances : [{"stats_url": "http://%%host%%:9901/stats"}] com.datadoghq.ad.check_names : ["envoy"] com.datadoghq.ad.init_configs : [{}] },
- Enable trace collection with the instructions in the ECS Fargate integration documentation.
Set the AWS App Mesh parameters ENABLE_ENVOY_DATADOG_TRACING and DATADOG_TRACER_PORT as environment variables in the ECS Fargate task definition. Learn more in the AWS App Mesh documentation.
Prerequisite: Add Datadog Agents to each of your ECS EC2 task definitions with App Mesh enabled, such as an Envoy sidecar injected, using the ECS integration documentation.
-
Due to limitations in App Mesh, forwarding metrics from an ECS task to Datadog requires the Egress filter to be set to
Allow External Traffic. -
Update all task definitions containing the Envoy sidecar and Datadog Agent with the following Docker labels. See Integration Setup for ECS Fargate for details.
"dockerLabels": { com.datadoghq.ad.instances : [{"stats_url": "http://%%host%%:9901/stats"}] com.datadoghq.ad.check_names : ["envoy"] com.datadoghq.ad.init_configs : [{}] },
-
Enable trace collection with the instructions in the ECS integration documentation.
-
Set the AWS App Mesh parameters
ENABLE_ENVOY_DATADOG_TRACINGandDATADOG_TRACER_PORTas environment variables in the ECS task definition. Learn more in the AWS App Mesh documentation.
See the Envoy integration for a list of metrics.
The AWS App Mesh integration does not include any events.
The AWS App Mesh integration does not include any service checks.
Need help? Contact Datadog support.