Skip to content

Commit bfdcc7a

Browse files
committed
Fixing alloy config
1 parent 3adb4cb commit bfdcc7a

File tree

3 files changed

+180
-31
lines changed

3 files changed

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

hack/observability/alloy/kustomization.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
resources:
22
- ../namespace.yaml
3+
- alloy-config.yaml
34

45
helmCharts:
56
- name: alloy
67
repo: https://grafana.github.io/helm-charts
78
releaseName: alloy
8-
namespace: observability
9+
version: 0.12.5
910
valuesFile: values.yaml
10-
version: 0.12.3
11+
namespace: observability
12+
13+
1114

1215
helmGlobals:
1316
# Store chart in ".charts" folder instead of "charts".

hack/observability/alloy/values.yaml

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,50 @@
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
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
99

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:
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+
37+
alloy:
38+
configMap:
39+
create: false
40+
name: alloy-config
41+
key: config.alloy
42+
mounts:
43+
varlog: true
44+
run:
45+
enabled: true
46+
path: /run
47+
podSecurityContext:
48+
runAsUser: 0
49+
runAsGroup: 0
50+
fsGroup: 0

0 commit comments

Comments
 (0)