|
| 1 | +{{/* |
| 2 | +Expand the name of the chart. |
| 3 | +*/}} |
| 4 | +{{- define "opentelemetry-collector.name" -}} |
| 5 | +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} |
| 6 | +{{- end }} |
| 7 | + |
| 8 | +{{/* |
| 9 | +Create a default fully qualified app name. |
| 10 | +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). |
| 11 | +If release name contains chart name it will be used as a full name. |
| 12 | +*/}} |
| 13 | +{{- define "opentelemetry-collector.fullname" -}} |
| 14 | +{{- if .Values.fullnameOverride }} |
| 15 | +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} |
| 16 | +{{- else }} |
| 17 | +{{- $name := default .Chart.Name .Values.nameOverride }} |
| 18 | +{{- if contains $name .Release.Name }} |
| 19 | +{{- .Release.Name | trunc 63 | trimSuffix "-" }} |
| 20 | +{{- else }} |
| 21 | +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} |
| 22 | +{{- end }} |
| 23 | +{{- end }} |
| 24 | +{{- end }} |
| 25 | + |
| 26 | +{{/* |
| 27 | +Create chart name and version as used by the chart label. |
| 28 | +*/}} |
| 29 | +{{- define "opentelemetry-collector.chart" -}} |
| 30 | +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} |
| 31 | +{{- end }} |
| 32 | + |
| 33 | +{{/* |
| 34 | +Common labels |
| 35 | +*/}} |
| 36 | +{{- define "opentelemetry-collector.labels" -}} |
| 37 | +helm.sh/chart: {{ include "opentelemetry-collector.chart" . }} |
| 38 | +{{ include "opentelemetry-collector.selectorLabels" . }} |
| 39 | +{{- if .Chart.AppVersion }} |
| 40 | +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} |
| 41 | +{{- end }} |
| 42 | +app.kubernetes.io/managed-by: {{ .Release.Service }} |
| 43 | +{{- end }} |
| 44 | + |
| 45 | +{{/* |
| 46 | +Selector labels |
| 47 | +*/}} |
| 48 | +{{- define "opentelemetry-collector.selectorLabels" -}} |
| 49 | +app.kubernetes.io/name: {{ include "opentelemetry-collector.name" . }} |
| 50 | +app.kubernetes.io/instance: {{ .Release.Name }} |
| 51 | +{{- end }} |
| 52 | + |
| 53 | +{{/* |
| 54 | +Create the name of the service account to use |
| 55 | +*/}} |
| 56 | +{{- define "opentelemetry-collector.serviceAccountName" -}} |
| 57 | +{{- if .Values.serviceAccount.create }} |
| 58 | +{{- default (include "opentelemetry-collector.fullname" .) .Values.serviceAccount.name }} |
| 59 | +{{- else }} |
| 60 | +{{- default "default" .Values.serviceAccount.name }} |
| 61 | +{{- end }} |
| 62 | +{{- end }} |
| 63 | + |
| 64 | +{{/* |
| 65 | +Build base config file with pipelines |
| 66 | +*/}} |
| 67 | +{{- define "opentelemetry-collector.pipelinesConfig" -}} |
| 68 | +{{- $config := include "opentelemetry-collector.baseConfig" . | fromYaml -}} |
| 69 | +{{- range $telemetryName, $telemetryParams := .Values.telemetry }} |
| 70 | + {{- if index $telemetryParams "enabled" }} |
| 71 | + {{- $config := include (printf "opentelemetry-collector.%sPipelineConfig" $telemetryName) $ | fromYaml | mustMergeOverwrite $config }} |
| 72 | + {{- end }} |
| 73 | +{{- end }} |
| 74 | +{{- $config | toYaml }} |
| 75 | +{{- end }} |
| 76 | + |
| 77 | +{{/* |
| 78 | +Build config file for agent OpenTelemetry Collector |
| 79 | +*/}} |
| 80 | +{{- define "opentelemetry-collector.agentCollectorConfig" -}} |
| 81 | +{{- $values := deepCopy .Values.agentCollector | mustMergeOverwrite (deepCopy .Values) }} |
| 82 | +{{- $data := dict "Values" $values | mustMergeOverwrite (deepCopy .) }} |
| 83 | +{{- $config := include "opentelemetry-collector.pipelinesConfig" $data | fromYaml }} |
| 84 | +{{- $config := include "opentelemetry-collector.agentConfigOverride" $data | fromYaml | mustMergeOverwrite $config }} |
| 85 | +{{- .Values.agentCollector.configOverride | mustMergeOverwrite $config | toYaml }} |
| 86 | +{{- end }} |
| 87 | + |
| 88 | +{{/* |
| 89 | +Build config file for standalone OpenTelemetry Collector |
| 90 | +*/}} |
| 91 | +{{- define "opentelemetry-collector.standaloneCollectorConfig" -}} |
| 92 | +{{- $values := deepCopy .Values.standaloneCollector | mustMergeOverwrite (deepCopy .Values) }} |
| 93 | +{{- $data := dict "Values" $values | mustMergeOverwrite (deepCopy .) }} |
| 94 | +{{- $config := include "opentelemetry-collector.pipelinesConfig" $data | fromYaml }} |
| 95 | +{{- .Values.standaloneCollector.configOverride | mustMergeOverwrite $config | toYaml }} |
| 96 | +{{- end }} |
| 97 | + |
| 98 | +{{/* |
| 99 | +Convert memory value from resources.limit to numeric value in MiB to be used by otel memory_limiter processor. |
| 100 | +*/}} |
| 101 | +{{- define "opentelemetry-collector.convertMemToMib" -}} |
| 102 | +{{- $mem := lower . -}} |
| 103 | +{{- if hasSuffix "e" $mem -}} |
| 104 | +{{- trimSuffix "e" $mem | atoi | mul 1000 | mul 1000 | mul 1000 | mul 1000 -}} |
| 105 | +{{- else if hasSuffix "ei" $mem -}} |
| 106 | +{{- trimSuffix "ei" $mem | atoi | mul 1024 | mul 1024 | mul 1024 | mul 1024 -}} |
| 107 | +{{- else if hasSuffix "p" $mem -}} |
| 108 | +{{- trimSuffix "p" $mem | atoi | mul 1000 | mul 1000 | mul 1000 -}} |
| 109 | +{{- else if hasSuffix "pi" $mem -}} |
| 110 | +{{- trimSuffix "pi" $mem | atoi | mul 1024 | mul 1024 | mul 1024 -}} |
| 111 | +{{- else if hasSuffix "t" $mem -}} |
| 112 | +{{- trimSuffix "t" $mem | atoi | mul 1000 | mul 1000 -}} |
| 113 | +{{- else if hasSuffix "ti" $mem -}} |
| 114 | +{{- trimSuffix "ti" $mem | atoi | mul 1024 | mul 1024 -}} |
| 115 | +{{- else if hasSuffix "g" $mem -}} |
| 116 | +{{- trimSuffix "g" $mem | atoi | mul 1000 -}} |
| 117 | +{{- else if hasSuffix "gi" $mem -}} |
| 118 | +{{- trimSuffix "gi" $mem | atoi | mul 1024 -}} |
| 119 | +{{- else if hasSuffix "m" $mem -}} |
| 120 | +{{- div (trimSuffix "m" $mem | atoi | mul 1000) 1024 -}} |
| 121 | +{{- else if hasSuffix "mi" $mem -}} |
| 122 | +{{- trimSuffix "mi" $mem | atoi -}} |
| 123 | +{{- else if hasSuffix "k" $mem -}} |
| 124 | +{{- div (trimSuffix "k" $mem | atoi) 1000 -}} |
| 125 | +{{- else if hasSuffix "ki" $mem -}} |
| 126 | +{{- div (trimSuffix "ki" $mem | atoi) 1024 -}} |
| 127 | +{{- else -}} |
| 128 | +{{- div (div ($mem | atoi) 1024) 1024 -}} |
| 129 | +{{- end -}} |
| 130 | +{{- end -}} |
| 131 | + |
| 132 | +{{/* |
| 133 | +Get otel memory_limiter limit_mib value based on 80% of resources.memory.limit. |
| 134 | +*/}} |
| 135 | +{{- define "opentelemetry-collector.getMemLimitMib" -}} |
| 136 | +{{- div (mul (include "opentelemetry-collector.convertMemToMib" .) 80) 100 }} |
| 137 | +{{- end -}} |
| 138 | + |
| 139 | +{{/* |
| 140 | +Get otel memory_limiter spike_limit_mib value based on 25% of resources.memory.limit. |
| 141 | +*/}} |
| 142 | +{{- define "opentelemetry-collector.getMemSpikeLimitMib" -}} |
| 143 | +{{- div (mul (include "opentelemetry-collector.convertMemToMib" .) 25) 100 }} |
| 144 | +{{- end -}} |
| 145 | + |
| 146 | +{{/* |
| 147 | +Get otel memory_limiter ballast_size_mib value based on 40% of resources.memory.limit. |
| 148 | +*/}} |
| 149 | +{{- define "opentelemetry-collector.getMemBallastSizeMib" }} |
| 150 | +{{- div (mul (include "opentelemetry-collector.convertMemToMib" .) 40) 100 }} |
| 151 | +{{- end -}} |
0 commit comments