3.0 KiB
Executable File

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

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.