values.yaml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573
  1. # Default values for opentelemetry-collector.
  2. # This is a YAML-formatted file.
  3. # Declare variables to be passed into your templates.
  4. nameOverride: ""
  5. fullnameOverride: ""
  6. # Valid values are "daemonset", "deployment", and "statefulset".
  7. mode: ""
  8. # Specify which namespace should be used to deploy the resources into
  9. namespaceOverride: ""
  10. # Handles basic configuration of components that
  11. # also require k8s modifications to work correctly.
  12. # .Values.config can be used to modify/add to a preset
  13. # component configuration, but CANNOT be used to remove
  14. # preset configuration. If you require removal of any
  15. # sections of a preset configuration, you cannot use
  16. # the preset. Instead, configure the component manually in
  17. # .Values.config and use the other fields supplied in the
  18. # values.yaml to configure k8s as necessary.
  19. presets:
  20. # Configures the collector to collect logs.
  21. # Adds the filelog receiver to the logs pipeline
  22. # and adds the necessary volumes and volume mounts.
  23. # Best used with mode = daemonset.
  24. # See https://opentelemetry.io/docs/kubernetes/collector/components/#filelog-receiver for details on the receiver.
  25. logsCollection:
  26. enabled: false
  27. includeCollectorLogs: false
  28. # Enabling this writes checkpoints in /var/lib/otelcol/ host directory.
  29. # Note this changes collector's user to root, so that it can write to host directory.
  30. storeCheckpoints: false
  31. # The maximum bytes size of the recombined field.
  32. # Once the size exceeds the limit, all received entries of the source will be combined and flushed.
  33. maxRecombineLogSize: 102400
  34. # Configures the collector to collect host metrics.
  35. # Adds the hostmetrics receiver to the metrics pipeline
  36. # and adds the necessary volumes and volume mounts.
  37. # Best used with mode = daemonset.
  38. # See https://opentelemetry.io/docs/kubernetes/collector/components/#host-metrics-receiver for details on the receiver.
  39. hostMetrics:
  40. enabled: false
  41. # Configures the Kubernetes Processor to add Kubernetes metadata.
  42. # Adds the k8sattributes processor to all the pipelines
  43. # and adds the necessary rules to ClusteRole.
  44. # Best used with mode = daemonset.
  45. # See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor for details on the receiver.
  46. kubernetesAttributes:
  47. enabled: false
  48. # When enabled the processor will extra all labels for an associated pod and add them as resource attributes.
  49. # The label's exact name will be the key.
  50. extractAllPodLabels: false
  51. # When enabled the processor will extra all annotations for an associated pod and add them as resource attributes.
  52. # The annotation's exact name will be the key.
  53. extractAllPodAnnotations: false
  54. # Configures the collector to collect node, pod, and container metrics from the API server on a kubelet..
  55. # Adds the kubeletstats receiver to the metrics pipeline
  56. # and adds the necessary rules to ClusteRole.
  57. # Best used with mode = daemonset.
  58. # See https://opentelemetry.io/docs/kubernetes/collector/components/#kubeletstats-receiver for details on the receiver.
  59. kubeletMetrics:
  60. enabled: false
  61. # Configures the collector to collect kubernetes events.
  62. # Adds the k8sobject receiver to the logs pipeline
  63. # and collects kubernetes events by default.
  64. # Best used with mode = deployment or statefulset.
  65. # See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-objects-receiver for details on the receiver.
  66. kubernetesEvents:
  67. enabled: false
  68. # Configures the Kubernetes Cluster Receiver to collect cluster-level metrics.
  69. # Adds the k8s_cluster receiver to the metrics pipeline
  70. # and adds the necessary rules to ClusteRole.
  71. # Best used with mode = deployment or statefulset.
  72. # See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-cluster-receiver for details on the receiver.
  73. clusterMetrics:
  74. enabled: false
  75. configMap:
  76. # Specifies whether a configMap should be created (true by default)
  77. create: true
  78. # Base collector configuration.
  79. # Supports templating. To escape existing instances of {{ }}, use {{` <original content> `}}.
  80. # For example, {{ REDACTED_EMAIL }} becomes {{` {{ REDACTED_EMAIL }} `}}.
  81. config:
  82. exporters:
  83. debug: {}
  84. # Will be removed in a future release.
  85. # Use the debug exporter instead.
  86. logging: {}
  87. extensions:
  88. # The health_check extension is mandatory for this chart.
  89. # Without the health_check extension the collector will fail the readiness and liveliness probes.
  90. # The health_check extension can be modified, but should never be removed.
  91. health_check: {}
  92. memory_ballast: {}
  93. processors:
  94. batch: {}
  95. # If set to null, will be overridden with values based on k8s resource limits
  96. memory_limiter: null
  97. receivers:
  98. jaeger:
  99. protocols:
  100. grpc:
  101. endpoint: ${env:MY_POD_IP}:14250
  102. thrift_http:
  103. endpoint: ${env:MY_POD_IP}:14268
  104. thrift_compact:
  105. endpoint: ${env:MY_POD_IP}:6831
  106. otlp:
  107. protocols:
  108. grpc:
  109. endpoint: ${env:MY_POD_IP}:4317
  110. http:
  111. endpoint: ${env:MY_POD_IP}:4318
  112. prometheus:
  113. config:
  114. scrape_configs:
  115. - job_name: opentelemetry-collector
  116. scrape_interval: 10s
  117. static_configs:
  118. - targets:
  119. - ${env:MY_POD_IP}:8888
  120. zipkin:
  121. endpoint: ${env:MY_POD_IP}:9411
  122. service:
  123. telemetry:
  124. metrics:
  125. address: ${env:MY_POD_IP}:8888
  126. extensions:
  127. - health_check
  128. - memory_ballast
  129. pipelines:
  130. logs:
  131. exporters:
  132. - debug
  133. processors:
  134. - memory_limiter
  135. - batch
  136. receivers:
  137. - otlp
  138. metrics:
  139. exporters:
  140. - debug
  141. processors:
  142. - memory_limiter
  143. - batch
  144. receivers:
  145. - otlp
  146. - prometheus
  147. traces:
  148. exporters:
  149. - debug
  150. processors:
  151. - memory_limiter
  152. - batch
  153. receivers:
  154. - otlp
  155. - jaeger
  156. - zipkin
  157. image:
  158. # If you want to use the core image `otel/opentelemetry-collector`, you also need to change `command.name` value to `otelcol`.
  159. repository: otel/opentelemetry-collector-contrib
  160. pullPolicy: IfNotPresent
  161. # Overrides the image tag whose default is the chart appVersion.
  162. tag: ""
  163. # When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
  164. digest: ""
  165. imagePullSecrets: []
  166. # OpenTelemetry Collector executable
  167. command:
  168. name: otelcol-contrib
  169. extraArgs: []
  170. serviceAccount:
  171. # Specifies whether a service account should be created
  172. create: true
  173. # Annotations to add to the service account
  174. annotations: {}
  175. # The name of the service account to use.
  176. # If not set and create is true, a name is generated using the fullname template
  177. name: ""
  178. clusterRole:
  179. # Specifies whether a clusterRole should be created
  180. # Some presets also trigger the creation of a cluster role and cluster role binding.
  181. # If using one of those presets, this field is no-op.
  182. create: false
  183. # Annotations to add to the clusterRole
  184. # Can be used in combination with presets that create a cluster role.
  185. annotations: {}
  186. # The name of the clusterRole to use.
  187. # If not set a name is generated using the fullname template
  188. # Can be used in combination with presets that create a cluster role.
  189. name: ""
  190. # A set of rules as documented here : https://kubernetes.io/docs/reference/access-authn-authz/rbac/
  191. # Can be used in combination with presets that create a cluster role to add additional rules.
  192. rules: []
  193. # - apiGroups:
  194. # - ''
  195. # resources:
  196. # - 'pods'
  197. # - 'nodes'
  198. # verbs:
  199. # - 'get'
  200. # - 'list'
  201. # - 'watch'
  202. clusterRoleBinding:
  203. # Annotations to add to the clusterRoleBinding
  204. # Can be used in combination with presets that create a cluster role binding.
  205. annotations: {}
  206. # The name of the clusterRoleBinding to use.
  207. # If not set a name is generated using the fullname template
  208. # Can be used in combination with presets that create a cluster role binding.
  209. name: ""
  210. podSecurityContext: {}
  211. securityContext: {}
  212. nodeSelector: {}
  213. tolerations: []
  214. affinity: {}
  215. topologySpreadConstraints: []
  216. # Allows for pod scheduler prioritisation
  217. priorityClassName: ""
  218. extraEnvs: []
  219. extraEnvsFrom: []
  220. extraVolumes: []
  221. extraVolumeMounts: []
  222. # Configuration for ports
  223. # nodePort is also allowed
  224. ports:
  225. otlp:
  226. enabled: true
  227. containerPort: 4317
  228. servicePort: 4317
  229. hostPort: 4317
  230. protocol: TCP
  231. # nodePort: 30317
  232. appProtocol: grpc
  233. otlp-http:
  234. enabled: true
  235. containerPort: 4318
  236. servicePort: 4318
  237. hostPort: 4318
  238. protocol: TCP
  239. jaeger-compact:
  240. enabled: true
  241. containerPort: 6831
  242. servicePort: 6831
  243. hostPort: 6831
  244. protocol: UDP
  245. jaeger-thrift:
  246. enabled: true
  247. containerPort: 14268
  248. servicePort: 14268
  249. hostPort: 14268
  250. protocol: TCP
  251. jaeger-grpc:
  252. enabled: true
  253. containerPort: 14250
  254. servicePort: 14250
  255. hostPort: 14250
  256. protocol: TCP
  257. zipkin:
  258. enabled: true
  259. containerPort: 9411
  260. servicePort: 9411
  261. hostPort: 9411
  262. protocol: TCP
  263. metrics:
  264. # The metrics port is disabled by default. However you need to enable the port
  265. # in order to use the ServiceMonitor (serviceMonitor.enabled) or PodMonitor (podMonitor.enabled).
  266. enabled: false
  267. containerPort: 8888
  268. servicePort: 8888
  269. protocol: TCP
  270. # Resource limits & requests. Update according to your own use case as these values might be too low for a typical deployment.
  271. resources: {}
  272. # resources:
  273. # limits:
  274. # cpu: 250m
  275. # memory: 512Mi
  276. podAnnotations: {}
  277. podLabels: {}
  278. # Host networking requested for this pod. Use the host's network namespace.
  279. hostNetwork: false
  280. # Pod DNS policy ClusterFirst, ClusterFirstWithHostNet, None, Default, None
  281. dnsPolicy: ""
  282. # Custom DNS config. Required when DNS policy is None.
  283. dnsConfig: {}
  284. # only used with deployment mode
  285. replicaCount: 1
  286. # only used with deployment mode
  287. revisionHistoryLimit: 10
  288. annotations: {}
  289. # List of extra sidecars to add
  290. extraContainers: []
  291. # extraContainers:
  292. # - name: test
  293. # command:
  294. # - cp
  295. # args:
  296. # - /bin/sleep
  297. # - /test/sleep
  298. # image: busybox:latest
  299. # volumeMounts:
  300. # - name: test
  301. # mountPath: /test
  302. # List of init container specs, e.g. for copying a binary to be executed as a lifecycle hook.
  303. # Another usage of init containers is e.g. initializing filesystem permissions to the OTLP Collector user `10001` in case you are using persistence and the volume is producing a permission denied error for the OTLP Collector container.
  304. initContainers: []
  305. # initContainers:
  306. # - name: test
  307. # image: busybox:latest
  308. # command:
  309. # - cp
  310. # args:
  311. # - /bin/sleep
  312. # - /test/sleep
  313. # volumeMounts:
  314. # - name: test
  315. # mountPath: /test
  316. # - name: init-fs
  317. # image: busybox:latest
  318. # command:
  319. # - sh
  320. # - '-c'
  321. # - 'chown -R 10001: /var/lib/storage/otc' # use the path given as per `extensions.file_storage.directory` & `extraVolumeMounts[x].mountPath`
  322. # volumeMounts:
  323. # - name: opentelemetry-collector-data # use the name of the volume used for persistence
  324. # mountPath: /var/lib/storage/otc # use the path given as per `extensions.file_storage.directory` & `extraVolumeMounts[x].mountPath`
  325. # Pod lifecycle policies.
  326. lifecycleHooks: {}
  327. # lifecycleHooks:
  328. # preStop:
  329. # exec:
  330. # command:
  331. # - /test/sleep
  332. # - "5"
  333. # liveness probe configuration
  334. # Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
  335. ##
  336. livenessProbe:
  337. # Number of seconds after the container has started before startup, liveness or readiness probes are initiated.
  338. # initialDelaySeconds: 1
  339. # How often in seconds to perform the probe.
  340. # periodSeconds: 10
  341. # Number of seconds after which the probe times out.
  342. # timeoutSeconds: 1
  343. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  344. # failureThreshold: 1
  345. # Duration in seconds the pod needs to terminate gracefully upon probe failure.
  346. # terminationGracePeriodSeconds: 10
  347. httpGet:
  348. port: 13133
  349. path: /
  350. # readiness probe configuration
  351. # Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
  352. ##
  353. readinessProbe:
  354. # Number of seconds after the container has started before startup, liveness or readiness probes are initiated.
  355. # initialDelaySeconds: 1
  356. # How often (in seconds) to perform the probe.
  357. # periodSeconds: 10
  358. # Number of seconds after which the probe times out.
  359. # timeoutSeconds: 1
  360. # Minimum consecutive successes for the probe to be considered successful after having failed.
  361. # successThreshold: 1
  362. # Minimum consecutive failures for the probe to be considered failed after having succeeded.
  363. # failureThreshold: 1
  364. httpGet:
  365. port: 13133
  366. path: /
  367. service:
  368. # Enable the creation of a Service.
  369. # By default, it's enabled on mode != daemonset.
  370. # However, to enable it on mode = daemonset, its creation must be explicitly enabled
  371. # enabled: true
  372. type: ClusterIP
  373. # type: LoadBalancer
  374. # loadBalancerIP: 1.2.3.4
  375. # loadBalancerSourceRanges: []
  376. # By default, Service of type 'LoadBalancer' will be created setting 'externalTrafficPolicy: Cluster'
  377. # unless other value is explicitly set.
  378. # Possible values are Cluster or Local (https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip)
  379. # externalTrafficPolicy: Cluster
  380. annotations: {}
  381. # By default, Service will be created setting 'internalTrafficPolicy: Local' on mode = daemonset
  382. # unless other value is explicitly set.
  383. # Setting 'internalTrafficPolicy: Cluster' on a daemonset is not recommended
  384. # internalTrafficPolicy: Cluster
  385. ingress:
  386. enabled: false
  387. # annotations: {}
  388. # ingressClassName: nginx
  389. # hosts:
  390. # - host: collector.example.com
  391. # paths:
  392. # - path: /
  393. # pathType: Prefix
  394. # port: 4318
  395. # tls:
  396. # - secretName: collector-tls
  397. # hosts:
  398. # - collector.example.com
  399. # Additional ingresses - only created if ingress.enabled is true
  400. # Useful for when differently annotated ingress services are required
  401. # Each additional ingress needs key "name" set to something unique
  402. additionalIngresses: []
  403. # - name: cloudwatch
  404. # ingressClassName: nginx
  405. # annotations: {}
  406. # hosts:
  407. # - host: collector.example.com
  408. # paths:
  409. # - path: /
  410. # pathType: Prefix
  411. # port: 4318
  412. # tls:
  413. # - secretName: collector-tls
  414. # hosts:
  415. # - collector.example.com
  416. podMonitor:
  417. # The pod monitor by default scrapes the metrics port.
  418. # The metrics port needs to be enabled as well.
  419. enabled: false
  420. metricsEndpoints:
  421. - port: metrics
  422. # interval: 15s
  423. # additional labels for the PodMonitor
  424. extraLabels: {}
  425. # release: kube-prometheus-stack
  426. serviceMonitor:
  427. # The service monitor by default scrapes the metrics port.
  428. # The metrics port needs to be enabled as well.
  429. enabled: false
  430. metricsEndpoints:
  431. - port: metrics
  432. # interval: 15s
  433. # additional labels for the ServiceMonitor
  434. extraLabels: {}
  435. # release: kube-prometheus-stack
  436. # PodDisruptionBudget is used only if deployment enabled
  437. podDisruptionBudget:
  438. enabled: false
  439. # minAvailable: 2
  440. # maxUnavailable: 1
  441. # autoscaling is used only if deployment enabled
  442. autoscaling:
  443. enabled: false
  444. minReplicas: 1
  445. maxReplicas: 10
  446. behavior: {}
  447. targetCPUUtilizationPercentage: 80
  448. # targetMemoryUtilizationPercentage: 80
  449. rollout:
  450. rollingUpdate: {}
  451. # When 'mode: daemonset', maxSurge cannot be used when hostPort is set for any of the ports
  452. # maxSurge: 25%
  453. # maxUnavailable: 0
  454. strategy: RollingUpdate
  455. prometheusRule:
  456. enabled: false
  457. groups: []
  458. # Create default rules for monitoring the collector
  459. defaultRules:
  460. enabled: false
  461. # additional labels for the PrometheusRule
  462. extraLabels: {}
  463. statefulset:
  464. # volumeClaimTemplates for a statefulset
  465. volumeClaimTemplates: []
  466. podManagementPolicy: "Parallel"
  467. networkPolicy:
  468. enabled: false
  469. # Annotations to add to the NetworkPolicy
  470. annotations: {}
  471. # Configure the 'from' clause of the NetworkPolicy.
  472. # By default this will restrict traffic to ports enabled for the Collector. If
  473. # you wish to further restrict traffic to other hosts or specific namespaces,
  474. # see the standard NetworkPolicy 'spec.ingress.from' definition for more info:
  475. # https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
  476. allowIngressFrom: []
  477. # # Allow traffic from any pod in any namespace, but not external hosts
  478. # - namespaceSelector: {}
  479. # # Allow external access from a specific cidr block
  480. # - ipBlock:
  481. # cidr: 192.168.1.64/32
  482. # # Allow access from pods in specific namespaces
  483. # - namespaceSelector:
  484. # matchExpressions:
  485. # - key: kubernetes.io/metadata.name
  486. # operator: In
  487. # values:
  488. # - "cats"
  489. # - "dogs"
  490. # Add additional ingress rules to specific ports
  491. # Useful to allow external hosts/services to access specific ports
  492. # An example is allowing an external prometheus server to scrape metrics
  493. #
  494. # See the standard NetworkPolicy 'spec.ingress' definition for more info:
  495. # https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
  496. extraIngressRules: []
  497. # - ports:
  498. # - port: metrics
  499. # protocol: TCP
  500. # from:
  501. # - ipBlock:
  502. # cidr: 192.168.1.64/32
  503. # Restrict egress traffic from the OpenTelemetry collector pod
  504. # See the standard NetworkPolicy 'spec.egress' definition for more info:
  505. # https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
  506. egressRules: []
  507. # - to:
  508. # - namespaceSelector: {}
  509. # - ipBlock:
  510. # cidr: 192.168.10.10/24
  511. # ports:
  512. # - port: 1234
  513. # protocol: TCP
  514. # When enabled, the chart will set the GOMEMLIMIT env var to 80% of the configured
  515. # resources.limits.memory and remove the memory ballast extension.
  516. # If no resources.limits.memory are defined enabling does nothing.
  517. # In a future release this setting will be enabled by default.
  518. # See https://github.com/open-telemetry/opentelemetry-helm-charts/issues/891
  519. # for more details.
  520. useGOMEMLIMIT: false