ally: kube and node scrapers, all dashboards working on grafana
This commit is contained in:
@@ -7,6 +7,10 @@ alloy:
|
||||
# https://grafana.com/docs/alloy/latest/collect/logs-in-kubernetes/
|
||||
configMap:
|
||||
content: |
|
||||
logging {
|
||||
level = "warn"
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// Discovery: Kubernetes - Nodes
|
||||
// used by:
|
||||
@@ -46,15 +50,15 @@ alloy:
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// Metrics: Prometheus Remote Write (CORREÇÃO: Bloco adicionado)
|
||||
// Metrics: Prometheus Remote Write
|
||||
// ============================================
|
||||
prometheus.remote_write "prometheus_srv" {
|
||||
endpoint {
|
||||
url = env("PROMETHEUS_URL")
|
||||
url = sys.env("PROMETHEUS_URL")
|
||||
}
|
||||
external_labels = {
|
||||
cluster = env("CLUSTER_NAME"),
|
||||
zone = env("ZONE"),
|
||||
cluster = sys.env("CLUSTER_NAME"),
|
||||
zone = sys.env("ZONE"),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,15 +68,15 @@ alloy:
|
||||
|
||||
loki.write "loki_srv" {
|
||||
endpoint {
|
||||
url = env("LOKI_URL")
|
||||
url = sys.env("LOKI_URL")
|
||||
}
|
||||
}
|
||||
|
||||
loki.process "loki_srv" {
|
||||
stage.static_labels {
|
||||
values = {
|
||||
cluster = env("CLUSTER_NAME"),
|
||||
zone = env("ZONE"),
|
||||
cluster = sys.env("CLUSTER_NAME"),
|
||||
zone = sys.env("ZONE"),
|
||||
}
|
||||
}
|
||||
forward_to = [loki.write.loki_srv.receiver]
|
||||
@@ -168,6 +172,79 @@ alloy:
|
||||
}
|
||||
}
|
||||
|
||||
discovery.relabel "kubelet" {
|
||||
targets = discovery.kubernetes.kube_nodes.targets
|
||||
|
||||
rule {
|
||||
regex = ".*_uid$|.*_id$|^annotation_.*|^label_.*|^endpoint_.*|^pod_ip$"
|
||||
action = "drop"
|
||||
}
|
||||
|
||||
rule {
|
||||
regex = "container_fs_.*|container_network_.*|container_hugetlb_.*|container_blkio_.*|container_tasks_state_.*"
|
||||
action = "drop"
|
||||
}
|
||||
|
||||
|
||||
// duplicate metrics from cAdviser
|
||||
rule {
|
||||
regex = "container_cpu_usage_seconds_total|container_memory_working_set_bytes|container_memory_rss|container_memory_cache"
|
||||
action = "drop"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_kubernetes_node_address_InternalIP"]
|
||||
target_label = "__address__"
|
||||
replacement = "$1:10250"
|
||||
}
|
||||
|
||||
rule {
|
||||
action = "replace"
|
||||
source_labels = ["__meta_kubernetes_node_name"]
|
||||
regex = "(.+)"
|
||||
target_label = "node"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["node"]
|
||||
target_label = "host"
|
||||
}
|
||||
|
||||
|
||||
rule {
|
||||
target_label = "__metrics_path__"
|
||||
replacement = "/metrics"
|
||||
}
|
||||
|
||||
rule {
|
||||
target_label = "cluster"
|
||||
replacement = sys.env("CLUSTER_NAME")
|
||||
}
|
||||
|
||||
rule {
|
||||
target_label = "zone"
|
||||
replacement = sys.env("ZONE")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
prometheus.scrape "kubelet" {
|
||||
job_name = "integrations/kubernetes/kubelet"
|
||||
targets = discovery.relabel.kubelet.output
|
||||
|
||||
scheme = "https"
|
||||
metrics_path = "/metrics"
|
||||
|
||||
tls_config {
|
||||
server_name = "kubernetes"
|
||||
ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
|
||||
insecure_skip_verify = true
|
||||
}
|
||||
|
||||
bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token"
|
||||
|
||||
forward_to = [prometheus.remote_write.prometheus_srv.receiver]
|
||||
}
|
||||
|
||||
// ===============================================================================
|
||||
// prometheus / Metrics - Scrape kube_state_metrics
|
||||
@@ -192,14 +269,19 @@ alloy:
|
||||
action = "keep"
|
||||
}
|
||||
|
||||
rule {
|
||||
regex = ".*_uid$|.*_id$|^annotation_.*|^label_.*|^endpoint_.*|^pod_ip$"
|
||||
action = "drop"
|
||||
}
|
||||
|
||||
rule {
|
||||
target_label = "cluster"
|
||||
replacement = env("CLUSTER_NAME")
|
||||
replacement = sys.env("CLUSTER_NAME")
|
||||
}
|
||||
|
||||
rule {
|
||||
target_label = "zone"
|
||||
replacement = env("ZONE")
|
||||
replacement = sys.env("ZONE")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,6 +317,12 @@ alloy:
|
||||
|
||||
discovery.relabel "kube_node_metrics" {
|
||||
targets = discovery.kubernetes.kube_nodes.targets
|
||||
|
||||
rule {
|
||||
regex = ".*_uid$|.*_id$|^annotation_.*|^label_.*|^endpoint_.*|^pod_ip$"
|
||||
action = "drop"
|
||||
}
|
||||
|
||||
rule {
|
||||
action = "replace"
|
||||
source_labels = ["__meta_kubernetes_node_name"]
|
||||
@@ -254,12 +342,12 @@ alloy:
|
||||
|
||||
rule {
|
||||
target_label = "cluster"
|
||||
replacement = env("CLUSTER_NAME")
|
||||
replacement = sys.env("CLUSTER_NAME")
|
||||
}
|
||||
|
||||
rule {
|
||||
target_label = "zone"
|
||||
replacement = env("ZONE")
|
||||
replacement = sys.env("ZONE")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,15 +363,25 @@ alloy:
|
||||
regex = "kubernetes"
|
||||
action = "keep"
|
||||
}
|
||||
|
||||
rule {
|
||||
regex = ".*_uid$|.*_id$|^annotation_.*|^label_.*|^endpoint_.*|^pod_ip$"
|
||||
action = "drop"
|
||||
}
|
||||
|
||||
rule {
|
||||
regex = "apiserver_flowcontrol_.*|apiserver_envelope_.*"
|
||||
action = "drop"
|
||||
}
|
||||
|
||||
rule {
|
||||
target_label = "cluster"
|
||||
replacement = env("CLUSTER_NAME")
|
||||
replacement = sys.env("CLUSTER_NAME")
|
||||
}
|
||||
|
||||
rule {
|
||||
target_label = "zone"
|
||||
replacement = env("ZONE")
|
||||
replacement = sys.env("ZONE")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -318,6 +416,16 @@ alloy:
|
||||
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"
|
||||
@@ -331,12 +439,12 @@ alloy:
|
||||
|
||||
rule {
|
||||
target_label = "cluster"
|
||||
replacement = env("CLUSTER_NAME")
|
||||
replacement = sys.env("CLUSTER_NAME")
|
||||
}
|
||||
|
||||
rule {
|
||||
target_label = "zone"
|
||||
replacement = env("ZONE")
|
||||
replacement = sys.env("ZONE")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -58,13 +58,16 @@ alloy:
|
||||
# https://grafana.com/docs/alloy/latest/collect/logs-in-kubernetes/
|
||||
configMap:
|
||||
content: |
|
||||
|
||||
logging {
|
||||
level = "warn"
|
||||
}
|
||||
|
||||
// ============================================
|
||||
// LOKI WRITE TARGET
|
||||
// ============================================
|
||||
loki.write "loki_srv" {
|
||||
endpoint {
|
||||
url = env("LOKI_URL")
|
||||
url = sys.env("LOKI_URL")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,9 +117,9 @@ alloy:
|
||||
loki.process "host_journal" {
|
||||
stage.static_labels {
|
||||
values = {
|
||||
cluster = env("CLUSTER_NAME"),
|
||||
host = env("HOSTNAME"),
|
||||
zone = env("ZONE"),
|
||||
cluster = sys.env("CLUSTER_NAME"),
|
||||
host = sys.env("HOSTNAME"),
|
||||
zone = sys.env("ZONE"),
|
||||
job = "journald",
|
||||
service_name = "journald",
|
||||
}
|
||||
@@ -132,13 +135,13 @@ alloy:
|
||||
|
||||
prometheus.remote_write "metrics_service" {
|
||||
endpoint {
|
||||
url = env("PROMETHEUS_URL")
|
||||
url = sys.env("PROMETHEUS_URL")
|
||||
}
|
||||
|
||||
// global labels
|
||||
external_labels = {
|
||||
cluster = env("CLUSTER_NAME"),
|
||||
zone = env("ZONE"),
|
||||
cluster = sys.env("CLUSTER_NAME"),
|
||||
zone = sys.env("ZONE"),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,8 +164,8 @@ alloy:
|
||||
]
|
||||
|
||||
filesystem {
|
||||
mount_points_exclude = "^/(dev|proc|sys|run/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)"
|
||||
fs_types_exclude = "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs|erofs)$"
|
||||
mount_points_exclude = "^(/host|/)(etc/resolv.conf|etc/hosts|etc/hostname|etc/machine-id|dataDisks/nvme01-ephemeral/.+|proc|sys|run/containerd/.+|run/k3s/containerd/.+|var/lib/docker/.+|var/lib/kubelet/.+)($|/)"
|
||||
fs_types_exclude = "^(tmpfs|shm|autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs|erofs)$"
|
||||
mount_timeout = "5s"
|
||||
}
|
||||
|
||||
@@ -187,13 +190,13 @@ alloy:
|
||||
|
||||
rule {
|
||||
action = "replace"
|
||||
replacement = env("HOSTNAME")
|
||||
replacement = sys.env("HOSTNAME")
|
||||
target_label = "nodename"
|
||||
}
|
||||
|
||||
rule {
|
||||
action = "replace"
|
||||
replacement = env("HOSTNAME")
|
||||
replacement = sys.env("HOSTNAME")
|
||||
target_label = "node"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user