Skip to content

Commit 3adb4cb

Browse files
committed
Temp-adding alloy.config for review
1 parent e4bdf01 commit 3adb4cb

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
discovery.kubernetes "kubernetes_pods" {
2+
role = "pod"
3+
}
4+
5+
discovery.relabel "kubernetes_pods" {
6+
targets = discovery.kubernetes.kubernetes_pods.targets
7+
8+
rule {
9+
source_labels = ["__meta_kubernetes_pod_controller_name"]
10+
regex = "([0-9a-z-.]+?)(-[0-9a-f]{8,10})?"
11+
target_label = "__tmp_controller_name"
12+
}
13+
14+
rule {
15+
source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name", "__meta_kubernetes_pod_label_app", "__tmp_controller_name", "__meta_kubernetes_pod_name"]
16+
regex = "^;*([^;]+)(;.*)?$"
17+
target_label = "app"
18+
}
19+
20+
rule {
21+
source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_instance", "__meta_kubernetes_pod_label_instance"]
22+
regex = "^;*([^;]+)(;.*)?$"
23+
target_label = "instance"
24+
}
25+
26+
rule {
27+
source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_component", "__meta_kubernetes_pod_label_component"]
28+
regex = "^;*([^;]+)(;.*)?$"
29+
target_label = "component"
30+
}
31+
32+
rule {
33+
source_labels = ["__meta_kubernetes_pod_node_name"]
34+
target_label = "node_name"
35+
}
36+
37+
rule {
38+
source_labels = ["__meta_kubernetes_namespace"]
39+
target_label = "namespace"
40+
}
41+
42+
rule {
43+
source_labels = ["namespace", "app"]
44+
separator = "/"
45+
target_label = "job"
46+
}
47+
48+
rule {
49+
source_labels = ["__meta_kubernetes_pod_name"]
50+
target_label = "pod"
51+
}
52+
53+
rule {
54+
source_labels = ["__meta_kubernetes_pod_container_name"]
55+
target_label = "container"
56+
}
57+
58+
rule {
59+
source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
60+
separator = "/"
61+
target_label = "__path__"
62+
replacement = "/var/log/pods/*$1/*.log"
63+
}
64+
65+
rule {
66+
source_labels = ["__meta_kubernetes_pod_annotationpresent_kubernetes_io_config_hash", "__meta_kubernetes_pod_annotation_kubernetes_io_config_hash", "__meta_kubernetes_pod_container_name"]
67+
separator = "/"
68+
regex = "true/(.*)"
69+
target_label = "__path__"
70+
replacement = "/var/log/pods/*$1/*.log"
71+
}
72+
}
73+
74+
local.file_match "kubernetes_pods" {
75+
path_targets = discovery.relabel.kubernetes_pods.output
76+
}
77+
78+
loki.process "kubernetes_pods" {
79+
forward_to = [loki.write.default.receiver]
80+
81+
stage.cri { }
82+
83+
stage.json {
84+
expressions = {
85+
Cluster = "join('/',[Cluster.namespace,Cluster.name])",
86+
KubeadmControlPlane = "join('/',[KubeadmControlPlane.namespace,KubeadmControlPlane.name])",
87+
Machine = "join('/',[Machine.namespace,Machine.name])",
88+
MachineDeployment = "join('/',[MachineDeployment.namespace,MachineDeployment.name])",
89+
MachinePool = "join('/',[MachinePool.namespace,MachinePool.name])",
90+
MachineSet = "join('/',[MachineSet.namespace,MachineSet.name])",
91+
controller = "",
92+
}
93+
}
94+
95+
stage.labels {
96+
values = {
97+
Cluster = null,
98+
KubeadmControlPlane = null,
99+
Machine = null,
100+
MachineDeployment = null,
101+
MachinePool = null,
102+
MachineSet = null,
103+
controller = null,
104+
}
105+
}
106+
}
107+
108+
loki.source.file "kubernetes_pods" {
109+
targets = local.file_match.kubernetes_pods.targets
110+
forward_to = [loki.process.kubernetes_pods.receiver]
111+
legacy_positions_file = "/run/promtail/positions.yaml"
112+
}
113+
114+
loki.write "default" {
115+
endpoint {
116+
url = "http://loki:3100/loki/api/v1/push"
117+
tenant_id = "1"
118+
}
119+
external_labels = {}
120+
}

0 commit comments

Comments
 (0)