provisioning/schemas/platform/defaults/common/observability-defaults.ncl

73 lines
1.6 KiB
Text
Raw Normal View History

# Observability Default Configuration
# Base defaults for logging, metrics, health checks, and audit
let observability_schema = import "../../common/observability.ncl" in
{
observability | observability_schema.ObservabilityConfig = {
# Observability enabled globally
enabled = true,
# Logging Defaults
logging = {
enabled = true,
level = "info",
format = "json",
output = {
destination = "stdout",
},
fields = {
service_name = true,
timestamp = true,
level = true,
caller = false,
spans = true,
},
sampling = {
enabled = false,
},
},
# Metrics Defaults
metrics = {
enabled = true,
exporter = "prometheus",
prometheus_path = "/metrics",
interval = 60,
histogram_buckets = [1, 5, 10, 50, 100, 500, 1000, 5000],
},
# Health Check Defaults
health = {
enabled = true,
port = 8081,
liveness_path = "/healthz",
readiness_path = "/ready",
startup_path = "/startup",
interval = 10,
timeout = 5000,
success_threshold = 1,
failure_threshold = 3,
initial_delay = 0,
},
# Distributed Tracing Defaults
tracing = {
enabled = false,
backend = "otlp",
sampler = "parentbased",
},
# Audit Logging Defaults
audit = {
enabled = true,
storage = "file",
retention_days = 90,
include_pii = false,
export_formats = ["jsonl"],
track_workspace_operations = true,
workspace_operations = ["create", "delete", "update", "switch", "list", "sync"],
},
},
}