Files
myinfra.kubernetes.shared/monitoring/base/alloy/kube-scraper/config.alloy
T

88 lines
1.9 KiB
Plaintext

logging {
level = "warn"
}
// ============================================
// Discovery: Kubernetes - endpoints
// used by:
// - loki kubernetes kube state metrics
// ============================================
discovery.kubernetes "kube_endpoints" {
role = "endpoints"
}
// ============================================
// Metrics: Prometheus Remote Write
// ============================================
prometheus.remote_write "prometheus_srv" {
endpoint {
url = sys.env("PROMETHEUS_URL")
}
external_labels = {
cluster = sys.env("CLUSTER_NAME"),
zone = sys.env("ZONE"),
}
}
// ============================================
// CoreDNS discovery (ENDPOINTS)
// ============================================
discovery.relabel "coredns" {
targets = discovery.kubernetes.kube_endpoints.targets
rule {
source_labels = ["__meta_kubernetes_service_name"]
regex = "(kube-dns|coredns)"
action = "keep"
}
rule {
regex = ".*_uid$|.*_id$|^annotation_.*|^label_.*|^endpoint_.*|^pod_ip$"
action = "drop"
}
rule {
regex = "coredns_cache_.*|coredns_forward_.*"
action = "drop"
}
rule {
source_labels = ["__meta_kubernetes_endpoint_node_name"]
target_label = "node"
}
rule {
action = "replace"
target_label = "__address__"
replacement = "$__meta_kubernetes_endpoint_address:9153"
}
rule {
target_label = "cluster"
replacement = sys.env("CLUSTER_NAME")
}
rule {
target_label = "zone"
replacement = sys.env("ZONE")
}
}
// ============================================
// CoreDNS scrape
// ============================================
prometheus.scrape "coredns" {
job_name = "integrations/kubernetes/coredns"
targets = discovery.relabel.coredns.output
scheme = "http"
metrics_path = "/metrics"
forward_to = [prometheus.remote_write.prometheus_srv.receiver]
}