Amazon ECS on EC2

Looking to deploy the containerized Datadog Agent to your ECS cluster? See the Amazon ECS Agent documentation.

Overview

Amazon ECS on EC2 is a highly scalable, high performance container management service for Docker containers running on EC2 instances.

Collect ECS metrics automatically from CloudWatch using the Amazon ECS Datadog integration. Expand on those metrics by querying the ECS API for ECS events, tags, and the status of container instances, tasks, and services.

Setup

Installation

If you haven’t already, set up the Amazon Web Services integration first.

Metric collection

  1. Follow the AWS Integration role delegation setup instructions.
  2. Ensure the following permissions for your Datadog IAM policy are set to collect Amazon ECS metrics. For more information on ECS policies, read Actions, resources, and condition keys for Amazon Elastic Container Service in the AWS documentation.
AWS PermissionDescription
ecs:ListClustersReturns a list of existing clusters.
ecs:ListContainerInstancesReturns a list of container instances in a specified cluster.
ecs:ListServicesLists the services that are running in a specified cluster.
ecs:DescribeContainerInstancesDescribes Amazon ECS container instances.
  1. In the AWS integration page, ensure that ECS is enabled under the Metric Collection tab.

    Amazon ECS Configuration

When metric collection is enabled, an out-of-the-box dashboard that provides detailed information about your ECS metrics is available for this integration. See Monitoring ECS with Datadog for more details.

Data collected

Metrics

aws.ecs.cluster.cpureservation
(gauge)
The percentage of CPU units that are reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cluster.cpureservation.maximum
(gauge)
The maximum percentage of CPU units that are reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cluster.cpureservation.minimum
(gauge)
The minimum percentage of CPU units that are reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cluster.cpuutilization
(gauge)
The percentage of CPU units that are used in the cluster or service filtered by ClusterName.
Shown as percent
aws.ecs.cluster.cpuutilization.maximum
(gauge)
The maximum percentage of CPU units that are used in the cluster or service.
Shown as percent
aws.ecs.cluster.cpuutilization.minimum
(gauge)
The minimum percentage of CPU units that are used in the cluster or service.
Shown as percent
aws.ecs.cluster.memory_reservation
(gauge)
The percentage of memory that is reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cluster.memory_reservation.maximum
(gauge)
The maximum percentage of memory that is reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cluster.memory_reservation.minimum
(gauge)
The minimum percentage of memory that is reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cluster.memory_utilization
(gauge)
The percentage of memory that is used in the cluster or service.
Shown as percent
aws.ecs.cluster.memory_utilization.maximum
(gauge)
The maximum percentage of memory that is used in the cluster or service.
Shown as percent
aws.ecs.cluster.memory_utilization.minimum
(gauge)
The minimum percentage of memory that is used in the cluster or service.
Shown as percent
aws.ecs.cpureservation
(gauge)
The percentage of CPU units that are reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cpureservation.maximum
(gauge)
The maximum percentage of CPU units that are reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cpureservation.minimum
(gauge)
The minimum percentage of CPU units that are reserved by running tasks in the cluster.
Shown as percent
aws.ecs.cpureservation.samplecount
(count)
The sample count of CPU units that are reserved by running tasks in the cluster.
aws.ecs.cpuutilization
(gauge)
The percentage of CPU units that are used in the cluster or service filtered by ClusterName and ServiceName.
Shown as percent
aws.ecs.cpuutilization.maximum
(gauge)
The maximum percentage of CPU units that are used in the cluster or service.
Shown as percent
aws.ecs.cpuutilization.minimum
(gauge)
The minimum percentage of CPU units that are used in the cluster or service.
Shown as percent
aws.ecs.cpuutilization.samplecount
(count)
The sample count of CPU units that are used in the cluster or service.
aws.ecs.memory_reservation
(gauge)
The percentage of memory that is reserved by running tasks in the cluster.
Shown as percent
aws.ecs.memory_reservation.maximum
(gauge)
The maximum percentage of memory that is reserved by running tasks in the cluster.
Shown as percent
aws.ecs.memory_reservation.minimum
(gauge)
The minimum percentage of memory that is reserved by running tasks in the cluster.
Shown as percent
aws.ecs.memory_utilization
(gauge)
The percentage of memory that is used in the cluster or service.
Shown as percent
aws.ecs.memory_utilization.maximum
(gauge)
The maximum percentage of memory that is used in the cluster or service.
Shown as percent
aws.ecs.memory_utilization.minimum
(gauge)
The minimum percentage of memory that is used in the cluster or service.
Shown as percent
aws.ecs.pending_tasks_count
(gauge)
The number of tasks on the container instance that are in the PENDING status.
Shown as task
aws.ecs.registered_cpu
(gauge)
The number of CPU units registered on the container instance
aws.ecs.registered_memory
(gauge)
The number of Memory units registered on the container instance
aws.ecs.remaining_cpu
(gauge)
The number of CPU units remaining on the container instance
aws.ecs.remaining_memory
(gauge)
The number of Memory units remaining on the container instance
aws.ecs.running_tasks_count
(gauge)
The number of tasks on the container instance that are in the RUNNING status.
Shown as task
aws.ecs.service.cpuutilization
(gauge)
Average percentage of CPU units that are used in the service.
Shown as percent
aws.ecs.service.cpuutilization.maximum
(gauge)
Maximum percentage of CPU units that are used in the service.
Shown as percent
aws.ecs.service.cpuutilization.minimum
(gauge)
Minimum percentage of CPU units that are used in the service.
Shown as percent
aws.ecs.service.desired
(gauge)
The number of tasks in the cluster that are in the desired state
aws.ecs.service.memory_utilization
(gauge)
Average percentage of memory that is used in the service.
Shown as percent
aws.ecs.service.memory_utilization.maximum
(gauge)
Maximum percentage of memory that is used in the service.
Shown as percent
aws.ecs.service.memory_utilization.minimum
(gauge)
Minimum percentage of memory that is used in the service.
Shown as percent
aws.ecs.service.pending
(gauge)
The number of tasks in the cluster that are in the pending state
Shown as task
aws.ecs.service.running
(gauge)
The number of tasks in the cluster that are in the running state
Shown as task
aws.ecs.services
(gauge)
The number of services running per cluster
ecs.containerinsights.container_instance_count
(count)
The number of EC2 instances running the Amazon ECS agent that are registered with a cluster.
Shown as instance
ecs.containerinsights.container_instance_count.maximum
(count)
The maximum number of EC2 instances running the Amazon ECS agent that are registered with a cluster.
Shown as instance
ecs.containerinsights.container_instance_count.minimum
(count)
The minimum number of EC2 instances running the Amazon ECS agent that are registered with a cluster.
Shown as instance
ecs.containerinsights.container_instance_count.samplecount
(count)
A sample count of EC2 instances running the Amazon ECS agent that are registered with a cluster.
Shown as instance
ecs.containerinsights.container_instance_count.sum
(count)
The sum of EC2 instances running the Amazon ECS agent that are registered with a cluster.
Shown as instance
ecs.containerinsights.cpu_reserved
(gauge)
The CPU units reserved by tasks in the specified resource for the chosen dimension.
ecs.containerinsights.cpu_reserved.maximum
(gauge)
The maximum CPU units reserved by tasks in the specified resource for the chosen dimension.
ecs.containerinsights.cpu_reserved.minimum
(gauge)
The minimum CPU units reserved by tasks in the specified resource for the chosen dimension.
ecs.containerinsights.cpu_reserved.samplecount
(gauge)
A sample count of CPU units reserved by tasks in the specified resource for the chosen dimension.
ecs.containerinsights.cpu_reserved.sum
(gauge)
The sum of CPU units reserved by tasks in the specified resource for the chosen dimension.
ecs.containerinsights.cpu_utilized
(gauge)
The CPU units used by tasks in the specified resource for the chosen dimension.
Shown as percent
ecs.containerinsights.cpu_utilized.maximum
(gauge)
The maximum CPU units used by tasks in the specified resource for the chosen dimension.
Shown as percent
ecs.containerinsights.cpu_utilized.minimum
(gauge)
The minimum CPU units used by tasks in the specified resource for the chosen dimension.
Shown as percent
ecs.containerinsights.cpu_utilized.samplecount
(gauge)
A sample count of CPU units used by tasks in the specified resource for the chosen dimension.
Shown as percent
ecs.containerinsights.cpu_utilized.sum
(gauge)
The sum of CPU units used by tasks in the specified resource for the chosen dimension.
Shown as percent
ecs.containerinsights.deployment_count
(count)
The number of deployments in an Amazon ECS service.
ecs.containerinsights.deployment_count.maximum
(count)
The maximum number of deployments in an Amazon ECS service.
ecs.containerinsights.deployment_count.minimum
(count)
The minimum number of deployments in an Amazon ECS service.
ecs.containerinsights.deployment_count.samplecount
(count)
A sample count of the deployments in an Amazon ECS service.
ecs.containerinsights.deployment_count.sum
(count)
The sum of deployments in an Amazon ECS service.
ecs.containerinsights.desired_task_count
(count)
The number of desired tasks for an Amazon ECS service.
Shown as task
ecs.containerinsights.desired_task_count.maximum
(count)
The maximum number of desired tasks for an Amazon ECS service.
Shown as task
ecs.containerinsights.desired_task_count.minimum
(count)
The minimum number of desired tasks for an Amazon ECS service.
Shown as task
ecs.containerinsights.desired_task_count.samplecount
(count)
A sample count of desired tasks for an Amazon ECS service.
Shown as task
ecs.containerinsights.desired_task_count.sum
(count)
The sum of desired tasks for an Amazon ECS service.
Shown as task
ecs.containerinsights.memory_reserved
(gauge)
The memory reserved by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_reserved.maximum
(gauge)
The maximum memory reserved by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_reserved.minimum
(gauge)
The minimum memory reserved by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_reserved.samplecount
(gauge)
A sample count of memory reserved by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_reserved.sum
(gauge)
The sum of memory reserved by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_utilized
(gauge)
The memory being used by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_utilized.maximum
(gauge)
The maximum memory being used by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_utilized.minimum
(gauge)
The minimum memory being used by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_utilized.samplecount
(gauge)
A sample count of memory being used by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.memory_utilized.sum
(gauge)
The sum of memory being used by tasks in the specified resource for the chosen dimension.
Shown as megabyte
ecs.containerinsights.pending_task_count
(count)
The number of tasks currently in the PENDING state.
Shown as task
ecs.containerinsights.pending_task_count.maximum
(count)
The maximum number of tasks currently in the PENDING state.
Shown as task
ecs.containerinsights.pending_task_count.minimum
(count)
The minimum number of tasks currently in the PENDING state.
Shown as task
ecs.containerinsights.pending_task_count.samplecount
(count)
A sample count of tasks currently in the PENDING state.
Shown as task
ecs.containerinsights.pending_task_count.sum
(count)
The sum of tasks currently in the PENDING state.
Shown as task
ecs.containerinsights.running_task_count
(count)
The number of tasks currently in the RUNNING state.
Shown as task
ecs.containerinsights.running_task_count.maximum
(count)
The maximum number of tasks currently in the RUNNING state.
Shown as task
ecs.containerinsights.running_task_count.minimum
(count)
The minimum number of tasks currently in the RUNNING state.
Shown as task
ecs.containerinsights.running_task_count.samplecount
(count)
A sample count of tasks currently in the RUNNING state.
Shown as task
ecs.containerinsights.running_task_count.sum
(count)
The sum of tasks currently in the RUNNING state.
Shown as task
ecs.containerinsights.service_count
(count)
The number of services in the cluster.
Shown as service
ecs.containerinsights.service_count.maximum
(count)
The maximum number of services in the cluster.
Shown as service
ecs.containerinsights.service_count.minimum
(count)
The minimum number of services in the cluster.
Shown as service
ecs.containerinsights.service_count.samplecount
(count)
A sample count of services in the cluster.
Shown as service
ecs.containerinsights.service_count.sum
(count)
The sum of services in the cluster.
Shown as service
ecs.containerinsights.storage_read_bytes
(gauge)
The number of bytes read from storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_read_bytes.maximum
(gauge)
The maximum number of bytes read from storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_read_bytes.minimum
(gauge)
The minimum number of bytes read from storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_read_bytes.samplecount
(gauge)
A sample count of bytes read from storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_read_bytes.sum
(gauge)
The sum of bytes read from storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_write_bytes
(gauge)
The number of bytes written to storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_write_bytes.maximum
(gauge)
The maximum number of bytes written to storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_write_bytes.minimum
(gauge)
The minimum number of bytes written to storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_write_bytes.samplecount
(gauge)
A sample count of bytes written to storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.storage_write_bytes.sum
(gauge)
The sum of bytes written to storage in the specified resource for the chosen dimension.
Shown as byte
ecs.containerinsights.task_count
(count)
The number of tasks running in the service.
Shown as task
ecs.containerinsights.task_count.maximum
(count)
The maximum number of tasks running in the service.
Shown as task
ecs.containerinsights.task_count.minimum
(count)
The minimum number of tasks running in the service.
Shown as task
ecs.containerinsights.task_count.samplecount
(count)
A sample count of tasks running in the service.
Shown as task
ecs.containerinsights.task_count.sum
(count)
The sum of tasks running in the service.
Shown as task
ecs.containerinsights.task_set_count
(count)
The number of task sets in the service.
Shown as task
ecs.containerinsights.task_set_count.maximum
(count)
The maximum number of task sets in the service.
Shown as task
ecs.containerinsights.task_set_count.minimum
(count)
The minimum number of task sets in the service.
Shown as task
ecs.containerinsights.task_set_count.samplecount
(count)
A sample count of task sets in the service.
Shown as task
ecs.containerinsights.task_set_count.sum
(count)
The sum of task sets in the service.
Shown as task

Each of the metrics retrieved from AWS is assigned the same tags that appear in the AWS console, including but not limited to hostname, security-groups, and more.

Note: Metrics prefixed with ecs.containerinsights.* can be collected by enabling Collect custom metrics under the Metric Collection tab of the AWS Integration page.

Events

To reduce noise, the Amazon ECS integration is automatically set up to include only events that contain the following words: drain, error, fail, insufficient memory, pending, reboot, terminate. See example events below:

Amazon ECS Events

To remove the inclusion list and receive all events from your Datadog Amazon ECS integration, reach out to Datadog support.

Service Checks

aws.ecs.agent_connected
Whether the ECS Agent is connected.
Statuses: ok, critical

Troubleshooting

Need help? Contact Datadog support.