563 lines
18 KiB
YAML
563 lines
18 KiB
YAML
# Default values for opentelemetry-collector.
|
|
# This is a YAML-formatted file.
|
|
# Declare variables to be passed into your templates.
|
|
|
|
nameOverride: ""
|
|
fullnameOverride: ""
|
|
|
|
# Valid values are "daemonset", "deployment", and "statefulset".
|
|
mode: ""
|
|
|
|
# Specify which namespace should be used to deploy the resources into
|
|
namespaceOverride: ""
|
|
|
|
# Handles basic configuration of components that
|
|
# also require k8s modifications to work correctly.
|
|
# .Values.config can be used to modify/add to a preset
|
|
# component configuration, but CANNOT be used to remove
|
|
# preset configuration. If you require removal of any
|
|
# sections of a preset configuration, you cannot use
|
|
# the preset. Instead, configure the component manually in
|
|
# .Values.config and use the other fields supplied in the
|
|
# values.yaml to configure k8s as necessary.
|
|
presets:
|
|
# Configures the collector to collect logs.
|
|
# Adds the filelog receiver to the logs pipeline
|
|
# and adds the necessary volumes and volume mounts.
|
|
# Best used with mode = daemonset.
|
|
# See https://opentelemetry.io/docs/kubernetes/collector/components/#filelog-receiver for details on the receiver.
|
|
logsCollection:
|
|
enabled: false
|
|
includeCollectorLogs: false
|
|
# Enabling this writes checkpoints in /var/lib/otelcol/ host directory.
|
|
# Note this changes collector's user to root, so that it can write to host directory.
|
|
storeCheckpoints: false
|
|
# The maximum bytes size of the recombined field.
|
|
# Once the size exceeds the limit, all received entries of the source will be combined and flushed.
|
|
maxRecombineLogSize: 102400
|
|
# Configures the collector to collect host metrics.
|
|
# Adds the hostmetrics receiver to the metrics pipeline
|
|
# and adds the necessary volumes and volume mounts.
|
|
# Best used with mode = daemonset.
|
|
# See https://opentelemetry.io/docs/kubernetes/collector/components/#host-metrics-receiver for details on the receiver.
|
|
hostMetrics:
|
|
enabled: false
|
|
# Configures the Kubernetes Processor to add Kubernetes metadata.
|
|
# Adds the k8sattributes processor to all the pipelines
|
|
# and adds the necessary rules to ClusteRole.
|
|
# Best used with mode = daemonset.
|
|
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor for details on the receiver.
|
|
kubernetesAttributes:
|
|
enabled: false
|
|
# When enabled the processor will extra all labels for an associated pod and add them as resource attributes.
|
|
# The label's exact name will be the key.
|
|
extractAllPodLabels: false
|
|
# When enabled the processor will extra all annotations for an associated pod and add them as resource attributes.
|
|
# The annotation's exact name will be the key.
|
|
extractAllPodAnnotations: false
|
|
# Configures the collector to collect node, pod, and container metrics from the API server on a kubelet..
|
|
# Adds the kubeletstats receiver to the metrics pipeline
|
|
# and adds the necessary rules to ClusteRole.
|
|
# Best used with mode = daemonset.
|
|
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubeletstats-receiver for details on the receiver.
|
|
kubeletMetrics:
|
|
enabled: false
|
|
# Configures the collector to collect kubernetes events.
|
|
# Adds the k8sobject receiver to the logs pipeline
|
|
# and collects kubernetes events by default.
|
|
# Best used with mode = deployment or statefulset.
|
|
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-objects-receiver for details on the receiver.
|
|
kubernetesEvents:
|
|
enabled: false
|
|
# Configures the Kubernetes Cluster Receiver to collect cluster-level metrics.
|
|
# Adds the k8s_cluster receiver to the metrics pipeline
|
|
# and adds the necessary rules to ClusteRole.
|
|
# Best used with mode = deployment or statefulset.
|
|
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-cluster-receiver for details on the receiver.
|
|
clusterMetrics:
|
|
enabled: false
|
|
|
|
configMap:
|
|
# Specifies whether a configMap should be created (true by default)
|
|
create: true
|
|
|
|
# Base collector configuration.
|
|
# Supports templating. To escape existing instances of {{ }}, use {{` <original content> `}}.
|
|
# For example, {{ REDACTED_EMAIL }} becomes {{` {{ REDACTED_EMAIL }} `}}.
|
|
config:
|
|
exporters:
|
|
logging: {}
|
|
extensions:
|
|
# The health_check extension is mandatory for this chart.
|
|
# Without the health_check extension the collector will fail the readiness and liveliness probes.
|
|
# The health_check extension can be modified, but should never be removed.
|
|
health_check: {}
|
|
memory_ballast: {}
|
|
processors:
|
|
batch: {}
|
|
# If set to null, will be overridden with values based on k8s resource limits
|
|
memory_limiter: null
|
|
receivers:
|
|
jaeger:
|
|
protocols:
|
|
grpc:
|
|
endpoint: ${env:MY_POD_IP}:14250
|
|
thrift_http:
|
|
endpoint: ${env:MY_POD_IP}:14268
|
|
thrift_compact:
|
|
endpoint: ${env:MY_POD_IP}:6831
|
|
otlp:
|
|
protocols:
|
|
grpc:
|
|
endpoint: ${env:MY_POD_IP}:4317
|
|
http:
|
|
endpoint: ${env:MY_POD_IP}:4318
|
|
prometheus:
|
|
config:
|
|
scrape_configs:
|
|
- job_name: opentelemetry-collector
|
|
scrape_interval: 10s
|
|
static_configs:
|
|
- targets:
|
|
- ${env:MY_POD_IP}:8888
|
|
zipkin:
|
|
endpoint: ${env:MY_POD_IP}:9411
|
|
service:
|
|
telemetry:
|
|
metrics:
|
|
address: ${env:MY_POD_IP}:8888
|
|
extensions:
|
|
- health_check
|
|
- memory_ballast
|
|
pipelines:
|
|
logs:
|
|
exporters:
|
|
- logging
|
|
processors:
|
|
- memory_limiter
|
|
- batch
|
|
receivers:
|
|
- otlp
|
|
metrics:
|
|
exporters:
|
|
- logging
|
|
processors:
|
|
- memory_limiter
|
|
- batch
|
|
receivers:
|
|
- otlp
|
|
- prometheus
|
|
traces:
|
|
exporters:
|
|
- logging
|
|
processors:
|
|
- memory_limiter
|
|
- batch
|
|
receivers:
|
|
- otlp
|
|
- jaeger
|
|
- zipkin
|
|
|
|
image:
|
|
# If you want to use the core image `otel/opentelemetry-collector`, you also need to change `command.name` value to `otelcol`.
|
|
repository: otel/opentelemetry-collector-contrib
|
|
pullPolicy: IfNotPresent
|
|
# Overrides the image tag whose default is the chart appVersion.
|
|
tag: ""
|
|
# When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
|
|
digest: ""
|
|
imagePullSecrets: []
|
|
|
|
# OpenTelemetry Collector executable
|
|
command:
|
|
name: otelcol-contrib
|
|
extraArgs: []
|
|
|
|
serviceAccount:
|
|
# Specifies whether a service account should be created
|
|
create: true
|
|
# Annotations to add to the service account
|
|
annotations: {}
|
|
# The name of the service account to use.
|
|
# If not set and create is true, a name is generated using the fullname template
|
|
name: ""
|
|
|
|
clusterRole:
|
|
# Specifies whether a clusterRole should be created
|
|
# Some presets also trigger the creation of a cluster role and cluster role binding.
|
|
# If using one of those presets, this field is no-op.
|
|
create: false
|
|
# Annotations to add to the clusterRole
|
|
# Can be used in combination with presets that create a cluster role.
|
|
annotations: {}
|
|
# The name of the clusterRole to use.
|
|
# If not set a name is generated using the fullname template
|
|
# Can be used in combination with presets that create a cluster role.
|
|
name: ""
|
|
# A set of rules as documented here : https://kubernetes.io/docs/reference/access-authn-authz/rbac/
|
|
# Can be used in combination with presets that create a cluster role to add additional rules.
|
|
rules: []
|
|
# - apiGroups:
|
|
# - ''
|
|
# resources:
|
|
# - 'pods'
|
|
# - 'nodes'
|
|
# verbs:
|
|
# - 'get'
|
|
# - 'list'
|
|
# - 'watch'
|
|
|
|
clusterRoleBinding:
|
|
# Annotations to add to the clusterRoleBinding
|
|
# Can be used in combination with presets that create a cluster role binding.
|
|
annotations: {}
|
|
# The name of the clusterRoleBinding to use.
|
|
# If not set a name is generated using the fullname template
|
|
# Can be used in combination with presets that create a cluster role binding.
|
|
name: ""
|
|
|
|
podSecurityContext: {}
|
|
securityContext: {}
|
|
|
|
nodeSelector: {}
|
|
tolerations: []
|
|
affinity: {}
|
|
topologySpreadConstraints: []
|
|
|
|
# Allows for pod scheduler prioritisation
|
|
priorityClassName: ""
|
|
|
|
extraEnvs: []
|
|
extraEnvsFrom: []
|
|
extraVolumes: []
|
|
extraVolumeMounts: []
|
|
|
|
# Configuration for ports
|
|
# nodePort is also allowed
|
|
ports:
|
|
otlp:
|
|
enabled: true
|
|
containerPort: 4317
|
|
servicePort: 4317
|
|
hostPort: 4317
|
|
protocol: TCP
|
|
# nodePort: 30317
|
|
appProtocol: grpc
|
|
otlp-http:
|
|
enabled: true
|
|
containerPort: 4318
|
|
servicePort: 4318
|
|
hostPort: 4318
|
|
protocol: TCP
|
|
jaeger-compact:
|
|
enabled: true
|
|
containerPort: 6831
|
|
servicePort: 6831
|
|
hostPort: 6831
|
|
protocol: UDP
|
|
jaeger-thrift:
|
|
enabled: true
|
|
containerPort: 14268
|
|
servicePort: 14268
|
|
hostPort: 14268
|
|
protocol: TCP
|
|
jaeger-grpc:
|
|
enabled: true
|
|
containerPort: 14250
|
|
servicePort: 14250
|
|
hostPort: 14250
|
|
protocol: TCP
|
|
zipkin:
|
|
enabled: true
|
|
containerPort: 9411
|
|
servicePort: 9411
|
|
hostPort: 9411
|
|
protocol: TCP
|
|
metrics:
|
|
# The metrics port is disabled by default. However you need to enable the port
|
|
# in order to use the ServiceMonitor (serviceMonitor.enabled) or PodMonitor (podMonitor.enabled).
|
|
enabled: false
|
|
containerPort: 8888
|
|
servicePort: 8888
|
|
protocol: TCP
|
|
|
|
# Resource limits & requests. Update according to your own use case as these values might be too low for a typical deployment.
|
|
resources: {}
|
|
# resources:
|
|
# limits:
|
|
# cpu: 250m
|
|
# memory: 512Mi
|
|
|
|
podAnnotations: {}
|
|
|
|
podLabels: {}
|
|
|
|
# Host networking requested for this pod. Use the host's network namespace.
|
|
hostNetwork: false
|
|
|
|
# Pod DNS policy ClusterFirst, ClusterFirstWithHostNet, None, Default, None
|
|
dnsPolicy: ""
|
|
|
|
# Custom DNS config. Required when DNS policy is None.
|
|
dnsConfig: {}
|
|
|
|
# only used with deployment mode
|
|
replicaCount: 1
|
|
|
|
# only used with deployment mode
|
|
revisionHistoryLimit: 10
|
|
|
|
annotations: {}
|
|
|
|
# List of extra sidecars to add
|
|
extraContainers: []
|
|
# extraContainers:
|
|
# - name: test
|
|
# command:
|
|
# - cp
|
|
# args:
|
|
# - /bin/sleep
|
|
# - /test/sleep
|
|
# image: busybox:latest
|
|
# volumeMounts:
|
|
# - name: test
|
|
# mountPath: /test
|
|
|
|
# List of init container specs, e.g. for copying a binary to be executed as a lifecycle hook.
|
|
# 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.
|
|
initContainers: []
|
|
# initContainers:
|
|
# - name: test
|
|
# image: busybox:latest
|
|
# command:
|
|
# - cp
|
|
# args:
|
|
# - /bin/sleep
|
|
# - /test/sleep
|
|
# volumeMounts:
|
|
# - name: test
|
|
# mountPath: /test
|
|
# - name: init-fs
|
|
# image: busybox:latest
|
|
# command:
|
|
# - sh
|
|
# - '-c'
|
|
# - 'chown -R 10001: /var/lib/storage/otc' # use the path given as per `extensions.file_storage.directory` & `extraVolumeMounts[x].mountPath`
|
|
# volumeMounts:
|
|
# - name: opentelemetry-collector-data # use the name of the volume used for persistence
|
|
# mountPath: /var/lib/storage/otc # use the path given as per `extensions.file_storage.directory` & `extraVolumeMounts[x].mountPath`
|
|
|
|
# Pod lifecycle policies.
|
|
lifecycleHooks: {}
|
|
# lifecycleHooks:
|
|
# preStop:
|
|
# exec:
|
|
# command:
|
|
# - /test/sleep
|
|
# - "5"
|
|
|
|
# liveness probe configuration
|
|
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
|
|
##
|
|
livenessProbe:
|
|
# Number of seconds after the container has started before startup, liveness or readiness probes are initiated.
|
|
# initialDelaySeconds: 1
|
|
# How often in seconds to perform the probe.
|
|
# periodSeconds: 10
|
|
# Number of seconds after which the probe times out.
|
|
# timeoutSeconds: 1
|
|
# Minimum consecutive failures for the probe to be considered failed after having succeeded.
|
|
# failureThreshold: 1
|
|
# Duration in seconds the pod needs to terminate gracefully upon probe failure.
|
|
# terminationGracePeriodSeconds: 10
|
|
httpGet:
|
|
port: 13133
|
|
path: /
|
|
|
|
# readiness probe configuration
|
|
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
|
|
##
|
|
readinessProbe:
|
|
# Number of seconds after the container has started before startup, liveness or readiness probes are initiated.
|
|
# initialDelaySeconds: 1
|
|
# How often (in seconds) to perform the probe.
|
|
# periodSeconds: 10
|
|
# Number of seconds after which the probe times out.
|
|
# timeoutSeconds: 1
|
|
# Minimum consecutive successes for the probe to be considered successful after having failed.
|
|
# successThreshold: 1
|
|
# Minimum consecutive failures for the probe to be considered failed after having succeeded.
|
|
# failureThreshold: 1
|
|
httpGet:
|
|
port: 13133
|
|
path: /
|
|
|
|
service:
|
|
# Enable the creation of a Service.
|
|
# By default, it's enabled on mode != daemonset.
|
|
# However, to enable it on mode = daemonset, its creation must be explicitly enabled
|
|
# enabled: true
|
|
|
|
type: ClusterIP
|
|
# type: LoadBalancer
|
|
# loadBalancerIP: 1.2.3.4
|
|
# loadBalancerSourceRanges: []
|
|
|
|
# By default, Service of type 'LoadBalancer' will be created setting 'externalTrafficPolicy: Cluster'
|
|
# unless other value is explicitly set.
|
|
# Possible values are Cluster or Local (https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip)
|
|
# externalTrafficPolicy: Cluster
|
|
|
|
annotations: {}
|
|
|
|
# By default, Service will be created setting 'internalTrafficPolicy: Local' on mode = daemonset
|
|
# unless other value is explicitly set.
|
|
# Setting 'internalTrafficPolicy: Cluster' on a daemonset is not recommended
|
|
# internalTrafficPolicy: Cluster
|
|
|
|
ingress:
|
|
enabled: false
|
|
# annotations: {}
|
|
# ingressClassName: nginx
|
|
# hosts:
|
|
# - host: collector.example.com
|
|
# paths:
|
|
# - path: /
|
|
# pathType: Prefix
|
|
# port: 4318
|
|
# tls:
|
|
# - secretName: collector-tls
|
|
# hosts:
|
|
# - collector.example.com
|
|
|
|
# Additional ingresses - only created if ingress.enabled is true
|
|
# Useful for when differently annotated ingress services are required
|
|
# Each additional ingress needs key "name" set to something unique
|
|
additionalIngresses: []
|
|
# - name: cloudwatch
|
|
# ingressClassName: nginx
|
|
# annotations: {}
|
|
# hosts:
|
|
# - host: collector.example.com
|
|
# paths:
|
|
# - path: /
|
|
# pathType: Prefix
|
|
# port: 4318
|
|
# tls:
|
|
# - secretName: collector-tls
|
|
# hosts:
|
|
# - collector.example.com
|
|
|
|
podMonitor:
|
|
# The pod monitor by default scrapes the metrics port.
|
|
# The metrics port needs to be enabled as well.
|
|
enabled: false
|
|
metricsEndpoints:
|
|
- port: metrics
|
|
# interval: 15s
|
|
|
|
# additional labels for the PodMonitor
|
|
extraLabels: {}
|
|
# release: kube-prometheus-stack
|
|
|
|
serviceMonitor:
|
|
# The service monitor by default scrapes the metrics port.
|
|
# The metrics port needs to be enabled as well.
|
|
enabled: false
|
|
metricsEndpoints:
|
|
- port: metrics
|
|
# interval: 15s
|
|
|
|
# additional labels for the ServiceMonitor
|
|
extraLabels: {}
|
|
# release: kube-prometheus-stack
|
|
|
|
# PodDisruptionBudget is used only if deployment enabled
|
|
podDisruptionBudget:
|
|
enabled: false
|
|
# minAvailable: 2
|
|
# maxUnavailable: 1
|
|
|
|
# autoscaling is used only if deployment enabled
|
|
autoscaling:
|
|
enabled: false
|
|
minReplicas: 1
|
|
maxReplicas: 10
|
|
behavior: {}
|
|
targetCPUUtilizationPercentage: 80
|
|
# targetMemoryUtilizationPercentage: 80
|
|
|
|
rollout:
|
|
rollingUpdate: {}
|
|
# When 'mode: daemonset', maxSurge cannot be used when hostPort is set for any of the ports
|
|
# maxSurge: 25%
|
|
# maxUnavailable: 0
|
|
strategy: RollingUpdate
|
|
|
|
prometheusRule:
|
|
enabled: false
|
|
groups: []
|
|
# Create default rules for monitoring the collector
|
|
defaultRules:
|
|
enabled: false
|
|
|
|
# additional labels for the PrometheusRule
|
|
extraLabels: {}
|
|
|
|
statefulset:
|
|
# volumeClaimTemplates for a statefulset
|
|
volumeClaimTemplates: []
|
|
podManagementPolicy: "Parallel"
|
|
|
|
networkPolicy:
|
|
enabled: false
|
|
|
|
# Annotations to add to the NetworkPolicy
|
|
annotations: {}
|
|
|
|
# Configure the 'from' clause of the NetworkPolicy.
|
|
# By default this will restrict traffic to ports enabled for the Collector. If
|
|
# you wish to further restrict traffic to other hosts or specific namespaces,
|
|
# see the standard NetworkPolicy 'spec.ingress.from' definition for more info:
|
|
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
|
|
allowIngressFrom: []
|
|
# # Allow traffic from any pod in any namespace, but not external hosts
|
|
# - namespaceSelector: {}
|
|
# # Allow external access from a specific cidr block
|
|
# - ipBlock:
|
|
# cidr: 192.168.1.64/32
|
|
# # Allow access from pods in specific namespaces
|
|
# - namespaceSelector:
|
|
# matchExpressions:
|
|
# - key: kubernetes.io/metadata.name
|
|
# operator: In
|
|
# values:
|
|
# - "cats"
|
|
# - "dogs"
|
|
|
|
# Add additional ingress rules to specific ports
|
|
# Useful to allow external hosts/services to access specific ports
|
|
# An example is allowing an external prometheus server to scrape metrics
|
|
#
|
|
# See the standard NetworkPolicy 'spec.ingress' definition for more info:
|
|
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
|
|
extraIngressRules: []
|
|
# - ports:
|
|
# - port: metrics
|
|
# protocol: TCP
|
|
# from:
|
|
# - ipBlock:
|
|
# cidr: 192.168.1.64/32
|
|
|
|
# Restrict egress traffic from the OpenTelemetry collector pod
|
|
# See the standard NetworkPolicy 'spec.egress' definition for more info:
|
|
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
|
|
egressRules: []
|
|
# - to:
|
|
# - namespaceSelector: {}
|
|
# - ipBlock:
|
|
# cidr: 192.168.10.10/24
|
|
# ports:
|
|
# - port: 1234
|
|
# protocol: TCP
|