# Monitoring Default Values
# Common defaults for metrics, health checks, and observability

let monitoring_schema = import "../../schemas/common/monitoring.ncl" in

{
  monitoring | monitoring_schema.MonitoringConfig = {
    # Disabled by default (can be enabled per service)
    enabled = false,

    # Metrics Collection
    metrics = {
      enabled = false,
      interval = 60,
      prometheus_path = "/metrics",
      retention_days = 30,
      buffer_size = 1000,
    },

    # Health Checks
    health_check = {
      enabled = false,
      type = "&",
      interval = 30,
      timeout = 5000,
      unhealthy_threshold = 3,
      healthy_threshold = 2,
      endpoint = "/health",
    },

    # Distributed Tracing
    tracing = {
      enabled = false,
      sample_rate = 0.1,
    },

    # Alerting
    alerting = {
      enabled = false,
    },

    # Resource Monitoring
    resources = {
      cpu = false,
      memory = false,
      disk = false,
      network = false,
      alert_threshold = 80,
    },
  },
}
