module "default_tags" {
  source             = "git@github.com:theorchard/terraform-default-tags.git//?ref=2.0.0"
  environment        = var.environment
  application_family = var.application_family
  service_name       = var.service_name
  team_name          = var.team_name
}

# Provider determines the method (AWS) and some basic provider properties
provider "aws" {
  region = var.region
  default_tags {
    tags = module.default_tags.tags
  }
}

terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "qa/data-platform-grps-ingester/datadog-monitoring/terraform.tfstate"
    region  = "us-east-1"
    encrypt = true
  }
}


resource "datadog_monitor" "grps_ingester_status_monitor" {
  name                = "GRPS ingester status monitor"
  type                = "log alert"
  query               = <<EOT
logs("service:grps-ingester-set-ingestion-state environment:${var.environment} INGEST_FAILED").index("*").rollup("count").last("10m") > 1
EOT
  message             = <<EOT
GRPS ingester failed
Notify: @slack-data-alerts
EOT
  tags                = ["application_family:${var.application_family}", "environment:${var.environment}", "service_name:${var.service_name}"]
  priority            = 2
  draft_status        = "published"
  enable_logs_sample  = true
  escalation_message  = <<EOT
{{#is_alert}}
GRPS ingester failed Notify: ${var.slack_notification_chanel}
{{/is_alert}}
EOT
  on_missing_data     = "default"
  renotify_interval   = 15
  renotify_statuses   = ["alert"]
  require_full_window = false
  monitor_thresholds {
    critical          = 1
    critical_recovery = 0
    warning           = 0
    warning_recovery  = 0
  }
}
