# Terraform Datadog Slack Module ## Overview This Terraform module creates a Kubernetes/Docker application monitoring dashboard in Datadog configured specifically for Slack/team deployments with account-scoped filtering. ## Features - **Kubernetes Resource Monitoring**: Visualizes pod and node resource utilization - **Account-Scoped Filtering**: Filters metrics by team and environment - **CPU & Memory Tracking**: Timeseries visualization for top containers - **Read-Only Dashboard**: Prevents accidental modifications - **EU Datadog Instance**: Configured for European GDPR compliance ## Resources Created - `datadog_dashboard`: Application monitoring dashboard with account-scoped widgets ## Dashboard Widgets 1. **Kubernetes Pods Hostmap**: CPU utilization by Docker image (account-scoped) 2. **CPU Utilization Timeseries**: Container CPU usage 3. **Kubernetes Nodes Hostmap**: CPU utilization by host 4. **Memory Utilization Timeseries**: Container memory usage ## Requirements | Name | Version | |------|---------| | terraform | >= 0.12 | | datadog | >= 3.5.0 | ## Usage ```hcl module "slack_dashboard" { source = "./terraform-datadog-slack" opco_name = "sanoma" app_name = "slack-integration" team_name = "platform-team" image_name = "slack-app" aws_region = "eu-west-1" env = "prd" api_key = var.datadog_api_key app_key = var.datadog_app_key url = "https://slack.example.com/health" } ``` ## Inputs | Name | Description | Type | Required | |------|-------------|------|----------| | `opco_name` | Name of the OPCO | `string` | yes | | `app_name` | Name of the application | `string` | yes | | `team_name` | Name of the responsible team | `string` | yes | | `image_name` | Docker image name | `string` | yes | | `aws_region` | AWS region for resources | `string` | yes | | `env` | Environment (dev, tst, stg, prd) | `string` | yes | | `api_key` | Datadog API key | `string` | yes | | `app_key` | Datadog APP key | `string` | yes | | `url` | Synthetics URL | `string` | yes | ## Outputs Currently, this module does not export any outputs. ## Account Scoping The dashboard filters metrics using account-based scoping: - **Scope**: `account:{team_name}_{env}` - This ensures each team only sees their environment's metrics ## Differences from terraform-datadog-app-dashboard While similar to the app-dashboard module, this version: - Uses account-scoped filtering instead of namespace - Configured specifically for EU Datadog API - Simplified widget set (no alert graph) - Synthetics integration is commented out - Uses OPCO name instead of CFA name ## Provider Configuration - **API URL**: `https://api.datadoghq.eu` (EU instance) - **Datadog Provider**: Version 3.5.0 or higher ## Notes - Dashboard is read-only to prevent accidental modifications - All widgets filter by account scope `{team_name}_{env}` - Designed for multi-tenant Kubernetes environments - Uses EU Datadog API endpoint for GDPR compliance ## License Internal use only - Sanoma/WeBuildYourCloud ## Authors Created and maintained by the Platform Engineering team.