Skip to content

Commit d94ad60

Browse files
Merge pull request #20 from nextinterfaces/enable-loki-semcache
enable Loki for semcache in Promtail
2 parents f0cbd8c + ecf43ea commit d94ad60

File tree

3 files changed

+62
-35
lines changed

3 files changed

+62
-35
lines changed

apps/semcache-service/internal/util/util.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,8 @@ import (
66

77
func RedactedConfig(cfg *config.Config) *config.Config {
88
copy := *cfg // shallow copy
9-
copy.Database.User = mask(copy.Database.User)
10-
copy.Database.Password = mask(copy.Database.Password)
9+
copy.Database.Database = "***"
10+
copy.Database.User = "***"
11+
copy.Database.Password = "***"
1112
return &copy
1213
}
13-
14-
func mask(s string) string {
15-
if len(s) > 2 {
16-
return s[:2] + "***"
17-
}
18-
return "***"
19-
}

infra/k8s/apps/semcache-service-deployment.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,15 @@ spec:
1010
selector:
1111
matchLabels:
1212
app: semcache-service
13+
app.kubernetes.io/name: semcache-service
1314
template:
1415
metadata:
1516
labels:
1617
app: semcache-service
18+
app.kubernetes.io/name: semcache-service
19+
app.kubernetes.io/component: backend
20+
app.kubernetes.io/part-of: roussev-com
21+
app.kubernetes.io/managed-by: kustomize
1722
spec:
1823
containers:
1924
- name: semcache-service
@@ -85,6 +90,9 @@ metadata:
8590
namespace: default
8691
labels:
8792
app: semcache-service
93+
app.kubernetes.io/name: semcache-service
94+
app.kubernetes.io/component: backend
95+
app.kubernetes.io/part-of: roussev-com
8896
spec:
8997
type: ClusterIP
9098
ports:
@@ -94,6 +102,7 @@ spec:
94102
name: http
95103
selector:
96104
app: semcache-service
105+
app.kubernetes.io/name: semcache-service
97106

98107
---
99108
apiVersion: networking.k8s.io/v1

infra/k8s/observability/promtail-deployment.yaml

Lines changed: 50 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,44 +16,68 @@ data:
1616
1717
clients:
1818
- url: http://loki:3100/loki/api/v1/push
19+
batchwait: 1s
20+
batchsize: 1048576
21+
timeout: 10s
1922
2023
scrape_configs:
2124
- job_name: kubernetes-pods
2225
kubernetes_sd_configs:
2326
- role: pod
2427
pipeline_stages:
2528
- cri: {}
29+
- json:
30+
expressions:
31+
level: level
32+
message: message
33+
time: time
34+
- labels:
35+
level:
36+
- output:
37+
source: message
2638
relabel_configs:
27-
- source_labels:
28-
- __meta_kubernetes_pod_node_name
29-
target_label: __host__
30-
- action: labelmap
31-
regex: __meta_kubernetes_pod_label_(.+)
32-
- action: replace
33-
replacement: $1
34-
separator: /
35-
source_labels:
36-
- __meta_kubernetes_namespace
37-
- __meta_kubernetes_pod_name
38-
target_label: job
39-
- action: replace
40-
source_labels:
41-
- __meta_kubernetes_namespace
39+
# Keep only pods with app or app.kubernetes.io/name label
40+
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
41+
action: keep
42+
regex: .+
43+
# Standardize labels
44+
- source_labels: [__meta_kubernetes_namespace]
4245
target_label: namespace
43-
- action: replace
44-
source_labels:
45-
- __meta_kubernetes_pod_name
46+
- source_labels: [__meta_kubernetes_pod_name]
4647
target_label: pod
47-
- action: replace
48-
source_labels:
49-
- __meta_kubernetes_pod_container_name
48+
- source_labels: [__meta_kubernetes_pod_container_name]
5049
target_label: container
51-
- replacement: /var/log/pods/*$1/*.log
52-
separator: /
53-
source_labels:
54-
- __meta_kubernetes_pod_uid
55-
- __meta_kubernetes_pod_container_name
50+
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
51+
target_label: app
52+
# Set the log path
53+
- source_labels: [__meta_kubernetes_pod_uid, __meta_kubernetes_pod_container_name]
5654
target_label: __path__
55+
replacement: /var/log/pods/*$1/*.log
56+
separator: /
57+
# Add additional metadata
58+
- source_labels: [__meta_kubernetes_pod_node_name]
59+
target_label: node
60+
- source_labels: [__meta_kubernetes_namespace]
61+
target_label: namespace
62+
- action: labelmap
63+
regex: __meta_kubernetes_pod_label_(.+)
64+
# Set the job name to the application name if available, otherwise use pod name
65+
- source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
66+
target_label: job
67+
replacement: ${1}
68+
action: replace
69+
- source_labels: [__meta_kubernetes_pod_name]
70+
target_label: job
71+
action: replace
72+
regex: (.*)
73+
replacement: $1
74+
target_label: job
75+
action: replace
76+
regex: (.*?)-[a-z0-9]+-[a-z0-9]+$
77+
replacement: $1
78+
# Drop __tmp labels
79+
- action: labeldrop
80+
regex: __tmp_.*
5781
5882
---
5983
apiVersion: apps/v1

0 commit comments

Comments
 (0)