apiVersion: v1 kind: ConfigMap metadata: name: otel-collector-conf namespace: opentelemetry-operator-system labels: app: opentelemetry component: otel-collector-conf data: otel-collector-config: | receivers: # Make sure to add the otlp receiver. # This will open up the receiver on port 4317 otlp: protocols: grpc: endpoint: "0.0.0.0:4317" processors: extensions: health_check: {} exporters: jaeger: # ..svc.cluster.local: endpoint: "jaeger-collector.jaeger.svc.cluster.local:14250" insecure: true prometheus: endpoint: 0.0.0.0:8889 namespace: "testapp" logging: service: extensions: [ health_check ] pipelines: traces: receivers: [ otlp ] processors: [] exporters: [ jaeger ] metrics: receivers: [ otlp ] processors: [] exporters: [ prometheus, logging ] --- apiVersion: v1 kind: Service metadata: name: otel-collector namespace: opentelemetry-operator-system labels: app: opentelemetry component: otel-collector spec: ports: - name: otlp # Default endpoint for otlp receiver. port: 4317 protocol: TCP targetPort: 4317 nodePort: 30080 - name: metrics # Default endpoint for metrics. port: 8889 protocol: TCP targetPort: 8889 selector: component: otel-collector type: NodePort --- apiVersion: apps/v1 kind: Deployment metadata: name: otel-collector namespace: opentelemetry-operator-system labels: app: opentelemetry component: otel-collector spec: selector: matchLabels: app: opentelemetry component: otel-collector minReadySeconds: 5 progressDeadlineSeconds: 120 replicas: 1 #TODO - adjust this to your own requirements template: metadata: annotations: prometheus.io/path: "/metrics" prometheus.io/port: "8889" prometheus.io/scrape: "true" labels: app: opentelemetry component: otel-collector spec: containers: - command: - "/otelcol" - "--config=/conf/otel-collector-config.yaml" # Memory Ballast size should be max 1/3 to 1/2 of memory. - "--mem-ballast-size-mib=683" env: - name: GOGC value: "80" image: otel/opentelemetry-collector:0.6.0 name: otel-collector resources: limits: cpu: 1 memory: 2Gi requests: cpu: 200m memory: 400Mi ports: - containerPort: 4317 # Default endpoint for otlp receiver. - containerPort: 8889 # Default endpoint for querying metrics. volumeMounts: - name: otel-collector-config-vol mountPath: /conf # - name: otel-collector-secrets # mountPath: /secrets livenessProbe: httpGet: path: / port: 13133 # Health Check extension default port. readinessProbe: httpGet: path: / port: 13133 # Health Check extension default port. volumes: - configMap: name: otel-collector-conf items: - key: otel-collector-config path: otel-collector-config.yaml name: otel-collector-config-vol