# aws-observability/terraform-aws-observability-accelerator architecture

> Architecture diagram of the GitHub repository aws-observability/terraform-aws-observability-accelerator, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aws-observability/terraform-aws-observability-accelerator
- Repository: https://github.com/aws-observability/terraform-aws-observability-accelerator

## Overview

This repository packages opinionated Terraform modules for deploying observability on AWS. The main workflow is selecting a workload module and collector profile, provisioning collection and monitoring resources, and directing telemetry to managed backends with dashboards and alerts. The README documents the capabilities and relationships represented here; implementation details beyond the sampled dashboard-transform script were not inspected, so the graph relies on those documented relationships.

Main entry points: [`modules/eks-monitoring/main.tf`](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/main.tf) (EKS monitoring), [`modules/eks-monitoring/collector-otel.tf`](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/collector-otel.tf) (EKS collector profiles), [`modules/ecs-monitoring/task-definitions/otel_collector.json`](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/ecs-monitoring/task-definitions/otel_collector.json) (ECS collector), [`modules/managed-prometheus-monitoring/main.tf`](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/managed-prometheus-monitoring/main.tf) (Managed Prometheus monitoring)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workloads["Workload Monitoring"]
  node_eks["EKS monitoring<br/>[main.tf]"]
  node_ecs["ECS monitoring<br/>[main.tf]"]
  node_amp_monitoring["Managed Prometheus monitoring<br/>[main.tf]"]
  node_container_insights["Container Insights<br/>[main.tf]"]
end

subgraph group_collection["Telemetry Collection"]
  node_eks_collectors["EKS collector profiles<br/>[collector-otel.tf]"]
  node_ecs_collector["ECS collector"]
end

subgraph group_insights["Dashboards and Alerts"]
  node_eks_dashboards["EKS dashboards<br/>[dashboards.tf]"]
  node_eks_alerting["EKS alerts and rules<br/>[alerts.tf]"]
  node_amp_dashboards_alerts["AMP dashboards and alarms<br/>[alarms.tf]"]
end

subgraph group_services["AWS Services"]
  node_cloudwatch["Amazon CloudWatch"]
  node_amp[("Amazon Managed Prometheus")]
  node_grafana["Amazon Managed Grafana"]
  node_xray["AWS X-Ray"]
  node_otel["OpenTelemetry Collector"]
end

node_user(("Terraform user"))

node_user -->|"configures"| node_eks
node_user -->|"configures"| node_ecs
node_user -->|"configures"| node_amp_monitoring
node_user -->|"configures"| node_container_insights
node_eks -->|"selects profile"| node_eks_collectors
node_eks -->|"provisions"| node_eks_dashboards
node_eks -->|"provisions"| node_eks_alerting
node_eks_collectors -->|"deploys"| node_otel
node_eks_collectors -->|"sends metrics"| node_cloudwatch
node_eks_collectors -->|"sends metrics"| node_amp
node_eks_dashboards -->|"provisions dashboards"| node_grafana
node_ecs -->|"configures"| node_ecs_collector
node_ecs_collector -->|"sends metrics"| node_amp
node_ecs_collector -->|"sends traces"| node_xray
node_ecs_collector -->|"sends logs"| node_cloudwatch
node_amp_monitoring -->|"monitors workspaces"| node_amp
node_amp_monitoring -->|"provisions"| node_amp_dashboards_alerts
node_amp_dashboards_alerts -->|"provides dashboard"| node_grafana
node_amp_dashboards_alerts -->|"provides alarms"| node_cloudwatch
node_container_insights -->|"collects metrics"| node_cloudwatch

click node_eks "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/main.tf"
click node_ecs "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/ecs-monitoring/main.tf"
click node_amp_monitoring "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/managed-prometheus-monitoring/main.tf"
click node_container_insights "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/_archived_eks-container-insights/main.tf"
click node_eks_collectors "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/collector-otel.tf"
click node_ecs_collector "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/ecs-monitoring/task-definitions/otel_collector.json"
click node_eks_dashboards "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/dashboards.tf"
click node_eks_alerting "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/alerts.tf"
click node_amp_dashboards_alerts "https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/managed-prometheus-monitoring/alarms.tf"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_eks,node_ecs,node_amp_monitoring,node_container_insights,node_user toneBlue
class node_eks_collectors,node_ecs_collector toneAmber
class node_eks_dashboards,node_eks_alerting,node_amp_dashboards_alerts toneMint
class node_cloudwatch,node_amp,node_grafana,node_xray,node_otel toneRose
```

## Components

### Workload Monitoring

- [EKS monitoring](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/main.tf): `modules/eks-monitoring/main.tf`
- [ECS monitoring](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/ecs-monitoring/main.tf): `modules/ecs-monitoring/main.tf`
- [Managed Prometheus monitoring](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/managed-prometheus-monitoring/main.tf): `modules/managed-prometheus-monitoring/main.tf`
- [Container Insights](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/_archived_eks-container-insights/main.tf): `modules/_archived_eks-container-insights/main.tf`

### Telemetry Collection

- [EKS collector profiles](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/collector-otel.tf): `modules/eks-monitoring/collector-otel.tf`
- [ECS collector](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/ecs-monitoring/task-definitions/otel_collector.json): `modules/ecs-monitoring/task-definitions/otel_collector.json`

### Dashboards and Alerts

- [EKS dashboards](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/dashboards.tf): `modules/eks-monitoring/dashboards.tf`
- [EKS alerts and rules](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/eks-monitoring/alerts.tf): `modules/eks-monitoring/alerts.tf`
- [AMP dashboards and alarms](https://github.com/aws-observability/terraform-aws-observability-accelerator/blob/main/modules/managed-prometheus-monitoring/alarms.tf): `modules/managed-prometheus-monitoring/alarms.tf`

### AWS Services

- **Amazon CloudWatch**
- **Amazon Managed Prometheus**
- **Amazon Managed Grafana**
- **AWS X-Ray**
- **OpenTelemetry Collector**

### Other components

- **Terraform user**

## Connections

- Terraform user → EKS monitoring: configures (evidence: `README.md`)
- Terraform user → ECS monitoring: configures (evidence: `README.md`)
- Terraform user → Managed Prometheus monitoring: configures (evidence: `README.md`)
- Terraform user → Container Insights: configures (evidence: `README.md`)
- EKS monitoring → EKS collector profiles: selects profile (evidence: `README.md`)
- EKS monitoring → EKS dashboards: provisions (evidence: `README.md`)
- EKS monitoring → EKS alerts and rules: provisions (evidence: `README.md`)
- EKS collector profiles → OpenTelemetry Collector: deploys (evidence: `README.md`)
- EKS collector profiles → Amazon CloudWatch: sends metrics (evidence: `README.md`)
- EKS collector profiles → Amazon Managed Prometheus: sends metrics (evidence: `README.md`)
- EKS dashboards → Amazon Managed Grafana: provisions dashboards (evidence: `README.md`)
- ECS monitoring → ECS collector: configures (evidence: `README.md`)
- ECS collector → Amazon Managed Prometheus: sends metrics (evidence: `README.md`)
- ECS collector → AWS X-Ray: sends traces (evidence: `README.md`)
- ECS collector → Amazon CloudWatch: sends logs (evidence: `README.md`)
- Managed Prometheus monitoring → Amazon Managed Prometheus: monitors workspaces (evidence: `README.md`)
- Managed Prometheus monitoring → AMP dashboards and alarms: provisions (evidence: `README.md`)
- AMP dashboards and alarms → Amazon Managed Grafana: provides dashboard (evidence: `README.md`)
- AMP dashboards and alarms → Amazon CloudWatch: provides alarms (evidence: `README.md`)
- Container Insights → Amazon CloudWatch: collects metrics (evidence: `README.md`)
