Skip to content

Commit a84daec

Browse files
[FEATURE] adding annotation discovery preset
Signed-off-by: Nicolas Takashi <nicolas.takashi@coralogix.com>
1 parent b262e81 commit a84daec

4 files changed

Lines changed: 66 additions & 4 deletions

File tree

charts/opentelemetry-collector/templates/_config.tpl

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ Build config file for daemonset OpenTelemetry Collector
4646
{{- if .Values.presets.logsCollection.enabled }}
4747
{{- $config = (include "opentelemetry-collector.applyLogsCollectionConfig" (dict "Values" $data "config" $config) | fromYaml) }}
4848
{{- end }}
49+
{{- if or .Values.presets.annotationDiscovery.logs.enabled .Values.presets.annotationDiscovery.metrics.enabled }}
50+
{{- $config = (include "opentelemetry-collector.applyAnnotationDiscoveryConfig" (dict "Values" $data "config" $config) | fromYaml) }}
51+
{{- end }}
4952
{{- if .Values.presets.profilesCollection.enabled }}
5053
{{- $config = (include "opentelemetry-collector.applyProfilesConfig" (dict "Values" $data "config" $config) | fromYaml) }}
5154
{{- end }}
@@ -151,6 +154,9 @@ Build config file for deployment OpenTelemetry Collector
151154
{{- if .Values.presets.logsCollection.enabled }}
152155
{{- $config = (include "opentelemetry-collector.applyLogsCollectionConfig" (dict "Values" $data "config" $config) | fromYaml) }}
153156
{{- end }}
157+
{{- if or .Values.presets.annotationDiscovery.logs.enabled .Values.presets.annotationDiscovery.metrics.enabled }}
158+
{{- $config = (include "opentelemetry-collector.applyAnnotationDiscoveryConfig" (dict "Values" $data "config" $config) | fromYaml) }}
159+
{{- end }}
154160
{{- if .Values.presets.mysql.metrics.enabled }}
155161
{{- $config = (include "opentelemetry-collector.applyMysqlConfig" (dict "Values" $data "config" $config) | fromYaml) }}
156162
{{- end }}
@@ -578,6 +584,44 @@ processors:
578584
{{- $config | toYaml }}
579585
{{- end }}
580586
587+
{{- define "opentelemetry-collector.applyAnnotationDiscoveryConfig" -}}
588+
{{- $config := mustMergeOverwrite (include "opentelemetry-collector.annotationDiscoveryConfig" .Values | fromYaml) .config }}
589+
{{- $_ := set $config.service "extensions" (append $config.service.extensions "k8s_observer" | uniq) }}
590+
{{- if .Values.presets.annotationDiscovery.logs.enabled }}
591+
{{- $_ := set $config.service.pipelines "logs/discovery" (dict "receivers" (list "receiver_creator/logs") "processors" (list "memory_limiter") "exporters" (list)) }}
592+
{{- end }}
593+
{{- if .Values.presets.annotationDiscovery.metrics.enabled }}
594+
{{- $_ := set $config.service.pipelines.metrics "receivers" (append $config.service.pipelines.metrics.receivers "receiver_creator/metrics" | uniq) }}
595+
{{- end }}
596+
{{- $config | toYaml }}
597+
{{- end }}
598+
599+
{{- define "opentelemetry-collector.annotationDiscoveryConfig" -}}
600+
601+
extensions:
602+
k8s_observer:
603+
auth_type: serviceAccount
604+
node: ${env:K8S_NODE_NAME}
605+
606+
receivers:
607+
{{- if .Values.presets.annotationDiscovery.logs.enabled }}
608+
receiver_creator/logs:
609+
watch_observers:
610+
- k8s_observer
611+
discovery:
612+
enabled: true
613+
default_annotations:
614+
io.opentelemetry.discovery.logs/enabled: true
615+
{{- end }}
616+
{{- if .Values.presets.annotationDiscovery.metrics.enabled }}
617+
receiver_creator/metrics:
618+
watch_observers:
619+
- k8s_observer
620+
discovery:
621+
enabled: true
622+
{{- end }}
623+
{{- end }}
624+
581625
{{- define "opentelemetry-collector.applyProfilesConfig" -}}
582626
{{- $config := mustMergeOverwrite (include "opentelemetry-collector.profilesCollectionConfig" .Values | fromYaml) .config }}
583627
{{- $config | toYaml }}
@@ -748,7 +792,6 @@ receivers:
748792
{{- end }}
749793
{{- end }}
750794

751-
752795
{{- define "opentelemetry-collector.profilesCollectionConfig" -}}
753796
exporters:
754797
coralogix/profiles:

charts/opentelemetry-collector/templates/_pod.tpl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ containers:
3939
fieldRef:
4040
fieldPath: metadata.name
4141
{{- end }}
42-
{{- if or .Values.presets.k8sResourceAttributes.enabled (and .Values.presets.kubernetesAttributes.enabled (or (eq .Values.mode "daemonset") .Values.presets.kubernetesAttributes.nodeFilter.enabled)) }}
42+
{{- if or .Values.presets.annotationDiscovery.logs.enabled .Values.presets.annotationDiscovery.metrics.enabled .Values.presets.k8sResourceAttributes.enabled (and .Values.presets.kubernetesAttributes.enabled (or (eq .Values.mode "daemonset") .Values.presets.kubernetesAttributes.nodeFilter.enabled)) }}
4343
- name: K8S_NODE_NAME
4444
valueFrom:
4545
fieldRef:
@@ -206,7 +206,7 @@ containers:
206206
subPath: {{ .subPath }}
207207
{{- end }}
208208
{{- end }}
209-
{{- if .Values.presets.logsCollection.enabled }}
209+
{{- if or .Values.presets.logsCollection.enabled .Values.presets.annotationDiscovery.logs.enabled }}
210210
{{- if .Values.isWindows }}
211211
- name: varlogpods
212212
mountPath: C:\var\log\pods
@@ -313,7 +313,7 @@ volumes:
313313
secret:
314314
secretName: {{ .secretName }}
315315
{{- end }}
316-
{{- if .Values.presets.logsCollection.enabled }}
316+
{{- if or .Values.presets.logsCollection.enabled .Values.presets.annotationDiscovery.logs.enabled }}
317317
{{- if .Values.isWindows }}
318318
- name: varlogpods
319319
hostPath:

charts/opentelemetry-collector/templates/clusterrole.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,17 @@ rules:
110110
- roles
111111
verbs: ["get", "list", "watch"]
112112
{{- end }}
113+
{{- if or .Values.presets.annotationDiscovery.logs.enabled .Values.presets.annotationDiscovery.metrics.enabled }}
114+
- apiGroups: [""]
115+
resources: ["pods", "nodes"]
116+
verbs: ["get", "list", "watch"]
117+
- apiGroups: [""]
118+
resources: ["nodes/proxy"]
119+
verbs: ["get"]
120+
- apiGroups: [""]
121+
resources: ["nodes/stats"]
122+
verbs: ["get"]
123+
- nonResourceURLs: ["/metrics"]
124+
verbs: ["get"]
125+
{{- end }}
113126
{{- end }}

charts/opentelemetry-collector/values.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,12 @@ presets:
475475
k8sNodeName:
476476
enabled: true
477477

478+
annotationDiscovery:
479+
logs:
480+
enabled: false
481+
metrics:
482+
enabled: false
483+
478484
configMap:
479485
# Specifies whether a configMap should be created (true by default)
480486
create: true

0 commit comments

Comments
 (0)