# Datadog configs for creating monitors
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
}

# Datadog provider
provider "datadog" {
  api_key = data.aws_secretsmanager_secret_version.datadog_api.secret_string
  app_key = data.aws_secretsmanager_secret_version.datadog_app_key.secret_string
}

# Error log monitor
resource "datadog_monitor" "fivetran_salesforce_sync_errors_monitor" {
  count   = var.datadog_monitor_enabled ? 1 : 0
  name    = "${var.environment}-fivetran-salesfore-sync-error-monitor"
  type    = "log alert"
  message = "Error with Salesforce - PROD_NR_DELIVERY Fivetran connector. Notify: @slack-collections-prod-alarms"

  query = "logs(\"host:${var.destination_name} service:fivetran status:error\").index(\"*\").rollup(\"count\").last(\"60m\") >= 1"

  monitor_thresholds {
    critical = 1
  }

  enable_logs_sample  = true
  notify_no_data      = false
  notify_audit        = false
  renotify_interval   = 60
  timeout_h           = 0
  include_tags        = true
  require_full_window = false
  priority            = 5
  evaluation_delay    = 300

  tags = [
    "env:${var.environment}",
    "service:fivetran",
    "team:collections-performance",
  ]
}
