resource "datadog_monitor" "lambda_jwt_refresh_containerized_monitor" {
  name    = "${var.environment} jwt refresh containerized lambda invocations monitor"
  type    = "metric alert"
  message = "The Lambda function ${var.environment}-${var.service_name} has not been triggered for 8.30 hours. Notify: ${var.datadog_notification_endpoints}"

  query = "sum(last_510m):sum:aws.lambda.invocations{environment:${var.environment},service_name:lambda-populate-m2m-jwt}.as_count() < 1"

  monitor_thresholds {
    critical = 1
  }

  notify_no_data      = true
  no_data_timeframe   = 510
  notify_audit        = false
  renotify_interval   = 0
  timeout_h           = 0
  require_full_window = true

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

module "lambda_jwt_refresh_containerized_dashboard" {
  source = "git@github.com:theorchard/terraform-datadog.git//modules/lambda?ref=6.13.9"

  environment                           = var.environment
  service_name                          = var.containerized_lambda_name
  notification_endpoints                = "@slack-monitoring @slack-security-team"
  escalation_notification_endpoints     = "@slack-monitoring @slack-security-team"
  lambda_error_critical_number          = "1"
  lambda_error_critical_operator        = ">="
  lambda_error_warning_number           = "0.8"
  lambda_error_critical_recovery_number = "0.7"
  lambda_error_warning_recovery_number  = "0.5"
}
