provider "aws" {
  region = var.aws_region
}

terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "prod/mysql/replicas/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

data "datadog_role" "datadog_admin_role" {
  filter = "Datadog Admin Role"
}

# Monitor for MySQL replicas
resource "datadog_monitor" "mysql_replication_monitor" {
  name               = "${var.environment}-mysql-replication-monitor"
  type               = "metric alert"
  message            = "Replication monitor triggered. Notify: ${var.notification_endpoints}"
  escalation_message = "Replication not running. Escalation to ${var.escalation_notification_endpoints}"

  query = "avg(last_15m):avg:mysql.replication.slave_running{mysql_role:replica,replication_mode:replica} by {host} <= 0"

  monitor_thresholds {
    ok       = 1
    critical = 0
  }

  include_tags        = true
  notify_no_data      = true
  notify_audit        = false
  renotify_interval   = 60
  timeout_h           = 0
  require_full_window = true

  tags = [
    "environment:${var.environment}",
    "service_name:mysql",
  ]
}
