Collect logs from Gerrit in Kubernetes
This adds a service discovery configuration for promtail to also
collect logs for Gerrit installations in Kubernetes. The installations
will be discovered by namespace and a given label.
Change-Id: I894e47f37428add9b44df6596950d314ee2a3ed0
diff --git a/charts/promtail/promtail.yaml b/charts/promtail/promtail.yaml
index 3f50f93..731cac1 100644
--- a/charts/promtail/promtail.yaml
+++ b/charts/promtail/promtail.yaml
@@ -130,6 +130,62 @@
- __meta_kubernetes_pod_uid
- __meta_kubernetes_pod_container_name
target_label: __path__
+ #@ for gerrit in data.values.gerritServers.kubernetes:
+ - job_name: #@ "kubernetes-pods-gerrit-{}".format(gerrit.namespace)
+ pipeline_stages:
+ - docker: {}
+ kubernetes_sd_configs:
+ - role: pod
+ relabel_configs:
+ - action: labeldrop
+ regex: '__meta_kubernetes_pod_label_pod_template_.*'
+ - source_labels:
+ - __meta_kubernetes_pod_label_name
+ target_label: __service__
+ - source_labels:
+ - __meta_kubernetes_pod_node_name
+ target_label: __host__
+ - action: labelmap
+ regex: __meta_kubernetes_pod_label_(.+)
+ - action: replace
+ replacement: $1
+ separator: /
+ source_labels:
+ - __meta_kubernetes_namespace
+ - __meta_kubernetes_pod_label_app
+ - __service__
+ target_label: job
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: namespace
+ - action: keep
+ regex: #@ gerrit.namespace
+ source_labels:
+ - namespace
+ - source_labels:
+ - #@ "__meta_kubernetes_pod_label_{}".format(gerrit.label.name)
+ regex: #@ gerrit.label.value
+ action: keep
+ - action: replace
+ source_labels:
+ - release
+ target_label: chart_release
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_name
+ target_label: instance
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_container_name
+ target_label: container_name
+ - replacement: /var/log/pods/*$1/*.log
+ separator: /
+ source_labels:
+ - __meta_kubernetes_pod_uid
+ - __meta_kubernetes_pod_container_name
+ target_label: __path__
+ #@ end
# Custom scrape_configs together with the default ones in the configmap
extraScrapeConfigs: []