AWS ECS
Overview
The AWS ECS integration with ObserveOps (formerly known as AIOps) collects operational telemetry from Amazon Elastic Container Service clusters. It monitors cluster state, service health, task lifecycle, container resource consumption, and network throughput across ECS-managed workloads.
These metrics help administrators track service availability, monitor task and container performance, identify resource bottlenecks, and maintain operational visibility across ECS environments.
Prerequisites
- The AWS account has ECS clusters running.
- The IAM role or user used for integration has the
AmazonECS_ReadOnlyAccesspolicy or equivalent attached. - Required AWS API endpoints are reachable from ObserveOps.
- The AWS account is added in discovery with correct credentials and region configuration.
List of Supported KPIs
Cluster
| Metric | Description | Type |
|---|---|---|
| aws.ecs.cluster | Identifier of the ECS cluster. | String |
| aws.ecs.cluster.arn | ARN of the ECS cluster. | String |
| aws.ecs.cluster.state | Current operational state of the ECS cluster. | String |
| aws.ecs.cluster.region | AWS region in which the ECS cluster is deployed. | String |
| aws.ecs.cluster.cpu.percent | CPU utilization percentage across the ECS cluster. | Percent |
| aws.ecs.cluster.memory.used.percent | Memory utilization percentage across the ECS cluster. | Percent |
| aws.ecs.cluster.cpu.reserved.vcpu | Total vCPU capacity reserved across the ECS cluster. | Count |
| aws.ecs.cluster.memory.reserved.bytes | Total memory capacity reserved across the ECS cluster. | Bytes |
| aws.ecs.active.services | Total number of active services in the ECS cluster. | Count |
| aws.ecs.tasks | Total number of tasks in the ECS cluster. | Count |
| aws.ecs.running.tasks | Total number of running tasks in the ECS cluster. | Count |
| aws.ecs.pending.tasks | Total number of pending tasks in the ECS cluster. | Count |
| aws.ecs.stopped.tasks | Total number of stopped tasks in the ECS cluster. | Count |
| aws.ecs.containers | Total number of containers in the ECS cluster. | Count |
Services
| Metric | Description | Type |
|---|---|---|
| aws.ecs.service | Identifier of an individual ECS service. | String |
| aws.ecs.service.arn | ARN of the ECS service. | String |
| aws.ecs.service.state | Current operational state of the ECS service. | String |
| aws.ecs.service.cpu.percent | CPU utilization percentage of the ECS service. | Percent |
| aws.ecs.service.memory.used.percent | Memory utilization percentage of the ECS service. | Percent |
| aws.ecs.service.launch.type | Launch type of the service — EC2, Fargate, or External. | String |
| aws.ecs.service.created.time | Timestamp when the ECS service was created. | Timestamp |
| aws.ecs.service.tasks | Total number of tasks in the ECS service. | Count |
| aws.ecs.service.running.tasks | Number of running tasks in the ECS service. | Count |
| aws.ecs.service.pending.tasks | Number of pending tasks in the ECS service. | Count |
Tasks
| Metric | Description | Type |
|---|---|---|
| aws.ecs.task | Identifier of an individual ECS task. | String |
| aws.ecs.task.arn | ARN of the ECS task. | String |
| aws.ecs.task.state | Current operational state of the ECS task. | String |
| aws.ecs.task.launch.type | Launch type of the task — EC2, Fargate, or External. | String |
| aws.ecs.task.availability.zone | Availability zone in which the task is running. | String |
| aws.ecs.task.service | Service this task belongs to. | String |
| aws.ecs.task.family | Task definition family name. | String |
| aws.ecs.task.group | Task group this task belongs to. | String |
| aws.ecs.task.cpu.percent | CPU utilization percentage of the ECS task. | Percent |
| aws.ecs.task.memory.used.percent | Memory utilization percentage of the ECS task. | Percent |
| aws.ecs.task.storage.read.bytes | Total bytes read from storage by the task. | Bytes |
| aws.ecs.task.storage.write.bytes | Total bytes written to storage by the task. | Bytes |
| aws.ecs.task.ephemeral.storage.bytes | Total ephemeral storage allocated to the task. | Bytes |
| aws.ecs.task.ephemeral.storage.used.percent | Utilization percentage of the task's ephemeral storage. | Percent |
| aws.ecs.task.network.received.bytes.per.sec | Network bytes received per second by the task. | Bytes/sec |
| aws.ecs.task.network.transmitted.bytes.per.sec | Network bytes transmitted per second by the task. | Bytes/sec |
| aws.ecs.task.containers | Number of containers in the task. | Count |
| aws.ecs.task.created.time | Timestamp when the ECS task was created. | Timestamp |
Containers
| Metric | Description | Type |
|---|---|---|
| aws.ecs.container | Identifier of an individual ECS container. | String |
| aws.ecs.container.instances | Total number of container instances in the cluster. | Count |
| aws.ecs.container.name | Name of the container. | String |
| aws.ecs.container.state | Current state of the container. | String |
| aws.ecs.container.task | Task this container belongs to. | String |
| aws.ecs.container.task.service | Service of the task this container belongs to. | String |
| aws.ecs.container.task.arn | ARN of the task this container belongs to. | String |
| aws.ecs.container.cpu.percent | CPU utilization percentage of the container. | Percent |
| aws.ecs.container.memory.used.percent | Memory utilization percentage of the container. | Percent |
| aws.ecs.container.storage.read.bytes | Total bytes read from storage by the container. | Bytes |
| aws.ecs.container.storage.write.bytes | Total bytes written to storage by the container. | Bytes |
| aws.ecs.container.network.received.bytes.per.sec | Network bytes received per second by the container. | Bytes/sec |
| aws.ecs.container.network.transmitted.bytes.per.sec | Network bytes transmitted per second by the container. | Bytes/sec |