
data "aws_secretsmanager_secret" "datadog_api" {
  name = "${var.environment}/datadog/DD_API_KEY"
}

data "aws_secretsmanager_secret_version" "datadog_api" {
  secret_id = data.aws_secretsmanager_secret.datadog_api.id
}

data "aws_secretsmanager_secret" "datadog_app_key" {
  name = "${var.environment}/datadog/DD_APP_KEY"
}

data "aws_secretsmanager_secret_version" "datadog_app_key" {
  secret_id = data.aws_secretsmanager_secret.datadog_app_key.id
}

resource "datadog_monitor" "gda_sks_lead_poller_error_monitor" {
  name    = "${var.environment}-${var.lambda_name}-error-monitor"
  type    = "query alert"
  message = "{{#is_alert}}${var.environment} gda-sks-lead poller has a high number of failed invocations due to errors.\nTo investigate follow these instructions:\n\n1. Open Metric in AWS Serverless Page from the Monitor view\n\n2. Investigate if the Error requires code changes.\n\n3. Reprocess any missed leads by producing a message to the offset and invoking the lambda.\n\n{{/is_alert}}\n\n{{#is_recovery}} Successful lambda invokations detected, salesforce polling resumed.{{/is_recovery}}\n\nNotify:${var.datadog_notification_endpoints}"

  query = "sum(last_2h):sum:aws.lambda.enhanced.errors{resource:qa-lambda-gda-sks-leads}.as_count() > ${var.datadog_error_monitor_threshold}"

  monitor_thresholds {
    critical          = var.datadog_error_monitor_threshold
    warning           = var.datadog_warning_monitor_threshold
    critical_recovery = var.datadog_recovery_threshold
  }

  notify_no_data      = false
  notify_audit        = false
  renotify_interval   = 0
  timeout_h           = 0
  require_full_window = false
  evaluation_delay    = 900

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