global: domain: "coralogixsg.com" defaultApplicationName: "default" defaultSubsystemName: "nodes" # Old endpoint based configuration, # please use domain instead. traces: endpoint: "" metrics: endpoint: "" logs: endpoint: "" # set distribution to openshift for openshift clusters distribution: "" # Opentelemetry collector configuration dedicatedValue: false schedulerName: default-scheduler labels: bu: "demand" team: "sre" service: "opentelemetry-demand-prd" env: "prd" priority: "p0" type: "opentelemetry" arch: "any" runpod: "ondemand" externalSecret: enabled: false key: prd/admin/coralogix-keys secretStoreRef: name: vault-backend image: # If you want to use the core image `otel/opentelemetry-collector`, you also need to change `command.name` value to `otelcol`. repository: asia-southeast1-docker.pkg.dev/meesho-devops-admin-0622/admin/sre/opentelemetry-collector-contrib # repository: otel/opentelemetry-collector-contrib pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "0.87.0" # When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value). digest: "" mode: daemonset rollout: rollingUpdate: # When 'mode: daemonset', maxSurge cannot be used when hostPort is set for any of the ports # maxSurge: 25% maxUnavailable: 1 strategy: RollingUpdate 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: "" hostNetwork: true dnsPolicy: "ClusterFirstWithHostNet" fullnameOverride: opentelemetry-demand-prd presets: logsCollection: enabled: false storeCheckpoints: false maxRecombineLogSize: 1048576 extraFilelogOperators: [] # - type: recombine # combine_field: body # source_identifier: attributes["log.file.path"] # is_first_entry: body matches "^(YOUR-LOGS-REGEX)" kubernetesAttributes: enabled: false hostMetrics: enabled: false kubeletMetrics: enabled: false extraEnvs: - name: OTEL_RESOURCE_ATTRIBUTES value: "k8s.node.name=$(K8S_NODE_NAME)" - name: KUBE_NODE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: spec.nodeName config: extensions: {} # zpages: # endpoint: localhost:55679 # pprof: # endpoint: localhost:1777 exporters: loadbalancing: routing_key: "traceID" protocol: otlp: timeout: 4s tls: insecure: true sending_queue: enabled: true queue_size: 6000 num_consumers: 200 resolver: dns: hostname: opentelemetry-admin-prd.opentelemetry.svc.clusterset.local # coralogix: # timeout: "30s" # private_key: "${CORALOGIX_PRIVATE_KEY}" # domain: "{{.Values.global.domain}}" # traces: # endpoint: "{{ .Values.global.traces.endpoint }}" # metrics: # endpoint: "{{ .Values.global.metrics.endpoint }}" # logs: # endpoint: "{{ .Values.global.logs.endpoint }}" # application_name_attributes: # - "k8s.namespace.name" # - "service.namespace" # subsystem_name_attributes: # - "k8s.deployment.name" # - "k8s.statefulset.name" # - "k8s.daemonset.name" # - "k8s.cronjob.name" # - "k8s.job.name" # - "k8s.container.name" # - "k8s.node.name" # - "service.name" # application_name: "{{.Values.global.defaultApplicationName }}" # subsystem_name: "{{.Values.global.defaultSubsystemName }}" processors: k8sattributes: filter: node_from_env_var: KUBE_NODE_NAME extract: metadata: - "k8s.namespace.name" - "k8s.deployment.name" - "k8s.statefulset.name" - "k8s.daemonset.name" - "k8s.cronjob.name" - "k8s.job.name" - "k8s.pod.name" - "k8s.node.name" memory_limiter: null # Will get the k8s resource limits resourcedetection/env: detectors: ["system","env"] timeout: 2s override: false # spanmetrics: # metrics_exporter: coralogix # dimensions: # - name: "k8s.deployment.name" # - name: "k8s.statefulset.name" # - name: "k8s.daemonset.name" # - name: "k8s.cronjob.name" # - name: "k8s.job.name" # - name: "k8s.container.name" # - name: "k8s.node.name" # - name: "k8s.namespace.name" receivers: otlp: protocols: grpc: endpoint: ${MY_POD_IP}:4317 http: endpoint: ${MY_POD_IP}:4318 zipkin: endpoint: ${MY_POD_IP}:9411 jaeger: protocols: grpc: endpoint: ${MY_POD_IP}:14250 thrift_http: endpoint: ${MY_POD_IP}:14268 thrift_compact: endpoint: ${MY_POD_IP}:6831 thrift_binary: endpoint: ${MY_POD_IP}:6832 prometheus: config: scrape_configs: - job_name: opentelemetry-collector scrape_interval: 30s static_configs: - targets: - ${MY_POD_IP}:8888 service: extensions: # - zpages # - pprof - health_check # - memory_ballast telemetry: metrics: address: ${env:MY_POD_IP}:8888 pipelines: traces: exporters: - loadbalancing processors: - memory_limiter # - spanmetrics - batch receivers: - otlp metrics: null logs: null tolerations: - operator: Exists resources: requests: cpu: 100m memory: 200Mi limits: cpu: 1 memory: 2G ports: jaeger-binary: enabled: true containerPort: 6832 servicePort: 6832 hostPort: 6832 protocol: TCP # In order to enable podMonitor, following part must be enabled in order to expose the required port: # metrics: # enabled: true # podMonitor: # enabled: true # prometheusRule: # enabled: true # defaultRules: # enabled: true # Annotations to be added to pod podAnnotations: otel.io/path: "/metrics" otel.io/scrape: "true" otel.io/port: "8888" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: p-demand-contour-ext operator: NotIn values: - dedicated - key: p-demand-contour-int-0 operator: NotIn values: - dedicated - key: p-demand-contour-int-1 operator: NotIn values: - dedicated - key: p-demand-contour-int operator: NotIn values: - dedicated - key: node_pool operator: NotIn values: - np-demand-default-prd-ase1 - key: dedicated operator: NotIn values: - vmstorage - vmselect - vmagent - vminsert