Skip to content

Commit 861ed75

Browse files
committed
Fixing config alloy
1 parent ed83b2f commit 861ed75

File tree

3 files changed

+123
-166
lines changed

3 files changed

+123
-166
lines changed

hack/observability/alloy/alloy-config.yaml

Lines changed: 0 additions & 126 deletions
This file was deleted.

hack/observability/alloy/kustomization.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
resources:
22
- ../namespace.yaml
3-
- alloy-config.yaml
43

54
helmCharts:
65
- name: alloy

hack/observability/alloy/values.yaml

Lines changed: 123 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,128 @@
1-
# # Configuration for alloy - https://github.com/grafana/alloy/blob/main/operations/helm/charts/alloy/values.yaml
2-
# config:
3-
# # publish data to loki
4-
# clients:
5-
# - url: http://loki:3100/loki/api/v1/push
6-
# # We have to set the tenant_id/OrgID to push logs to Loki
7-
# # otherwise we get an auth error.
8-
# tenant_id: 1
9-
10-
# snippets:
11-
# pipelineStages:
12-
# # Parse cluster and machine to make them available as labels.
13-
# - cri: {}
14-
# - json:
15-
# expressions:
16-
# controller:
17-
# Cluster: join('/',[Cluster.namespace,Cluster.name])
18-
# Machine: join('/',[Machine.namespace,Machine.name])
19-
# KubeadmControlPlane: join('/',[KubeadmControlPlane.namespace,KubeadmControlPlane.name])
20-
# MachineDeployment: join('/',[MachineDeployment.namespace,MachineDeployment.name])
21-
# MachineSet: join('/',[MachineSet.namespace,MachineSet.name])
22-
# MachinePool: join('/',[MachinePool.namespace,MachinePool.name])
23-
# - labels:
24-
# controller:
25-
# Cluster:
26-
# Machine:
27-
# KubeadmControlPlane:
28-
# MachineDeployment:
29-
# MachineSet:
30-
# MachinePool:
31-
32-
33-
# Add a yaml file to generate
34-
35-
36-
1+
# Configuration for alloy - https://github.com/grafana/alloy/blob/main/operations/helm/charts/alloy/values.yaml
372
alloy:
383
configMap:
39-
create: false
40-
name: alloy-config
41-
key: config.alloy
4+
create: true
5+
content: |-
6+
discovery.kubernetes "kubernetes_pods" {
7+
role = "pod"
8+
}
9+
10+
discovery.relabel "kubernetes_pods" {
11+
targets = discovery.kubernetes.kubernetes_pods.targets
12+
13+
rule {
14+
source_labels = ["__meta_kubernetes_pod_controller_name"]
15+
regex = "([0-9a-z-.]+?)(-[0-9a-f]{8,10})?"
16+
target_label = "__tmp_controller_name"
17+
}
18+
19+
rule {
20+
source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name", "__meta_kubernetes_pod_label_app", "__tmp_controller_name", "__meta_kubernetes_pod_name"]
21+
regex = "^;*([^;]+)(;.*)?$"
22+
target_label = "app"
23+
}
24+
25+
rule {
26+
source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_instance", "__meta_kubernetes_pod_label_instance"]
27+
regex = "^;*([^;]+)(;.*)?$"
28+
target_label = "instance"
29+
}
30+
31+
rule {
32+
source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_component", "__meta_kubernetes_pod_label_component"]
33+
regex = "^;*([^;]+)(;.*)?$"
34+
target_label = "component"
35+
}
36+
37+
rule {
38+
source_labels = ["__meta_kubernetes_pod_node_name"]
39+
target_label = "node_name"
40+
}
41+
42+
rule {
43+
source_labels = ["__meta_kubernetes_namespace"]
44+
target_label = "namespace"
45+
}
46+
47+
rule {
48+
source_labels = ["namespace", "app"]
49+
separator = "/"
50+
target_label = "job"
51+
}
52+
53+
rule {
54+
source_labels = ["__meta_kubernetes_pod_name"]
55+
target_label = "pod"
56+
}
57+
58+
rule {
59+
source_labels = ["__meta_kubernetes_pod_container_name"]
60+
target_label = "container"
61+
}
62+
63+
rule {
64+
source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
65+
separator = "/"
66+
target_label = "__path__"
67+
replacement = "/var/log/pods/*$1/*.log"
68+
}
69+
70+
rule {
71+
source_labels = ["__meta_kubernetes_pod_annotationpresent_kubernetes_io_config_hash", "__meta_kubernetes_pod_annotation_kubernetes_io_config_hash", "__meta_kubernetes_pod_container_name"]
72+
separator = "/"
73+
regex = "true/(.*)"
74+
target_label = "__path__"
75+
replacement = "/var/log/pods/*$1/*.log"
76+
}
77+
}
78+
79+
local.file_match "kubernetes_pods" {
80+
path_targets = discovery.relabel.kubernetes_pods.output
81+
}
82+
83+
loki.process "kubernetes_pods" {
84+
forward_to = [loki.write.default.receiver]
85+
86+
stage.cri { }
87+
88+
stage.json {
89+
expressions = {
90+
Cluster = "join('/',[Cluster.namespace,Cluster.name])",
91+
KubeadmControlPlane = "join('/',[KubeadmControlPlane.namespace,KubeadmControlPlane.name])",
92+
Machine = "join('/',[Machine.namespace,Machine.name])",
93+
MachineDeployment = "join('/',[MachineDeployment.namespace,MachineDeployment.name])",
94+
MachinePool = "join('/',[MachinePool.namespace,MachinePool.name])",
95+
MachineSet = "join('/',[MachineSet.namespace,MachineSet.name])",
96+
controller = "",
97+
}
98+
}
99+
100+
stage.labels {
101+
values = {
102+
Cluster = null,
103+
KubeadmControlPlane = null,
104+
Machine = null,
105+
MachineDeployment = null,
106+
MachinePool = null,
107+
MachineSet = null,
108+
controller = null,
109+
}
110+
}
111+
}
112+
113+
loki.source.file "kubernetes_pods" {
114+
targets = local.file_match.kubernetes_pods.targets
115+
forward_to = [loki.process.kubernetes_pods.receiver]
116+
legacy_positions_file = "/run/promtail/positions.yaml"
117+
}
118+
119+
loki.write "default" {
120+
endpoint {
121+
url = "http://loki:3100/loki/api/v1/push"
122+
tenant_id = "1"
123+
}
124+
external_labels = {}
125+
}
42126
mounts:
43127
varlog: true
44128
run:

0 commit comments

Comments
 (0)