resource "datadog_monitor" "kafka_connector_no_gsr_dlq_monitor" {
  name    = "${var.environment}-${var.service_name}-sfsink-nogsr"
  type    = "metric alert"
  message = "[${var.environment}] New failed messages from Snowflake Sink in ${var.monitor_no_gsr_dlq_topic_name}. Notify: ${var.notification_endpoints}"

  query = "max(last_1m):avg:aws.kafka.messages_in_per_sec{cluster_name:${var.trigger_msk_cluster_name},topic:${lower(var.monitor_no_gsr_dlq_topic_name)}} >= 1"

  monitor_thresholds {
    critical = 1
  }

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

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

resource "datadog_monitor" "kafka_connector_gsr_dlq_monitor" {
  name    = "${var.environment}-${var.service_name}-sfsink-gsr"
  type    = "metric alert"
  message = "[${var.environment}] New failed messages from Snowflake Sink in ${var.monitor_gsr_dlq_topic_name}. Notify: ${var.notification_endpoints}"

  query = "max(last_1m):avg:aws.kafka.messages_in_per_sec{cluster_name:${var.trigger_msk_cluster_name},topic:${lower(var.monitor_gsr_dlq_topic_name)}} >= 1"

  monitor_thresholds {
    critical = 1
  }

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

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