apiVersion: apps/v1 kind: Deployment metadata: name: otel-collector namespace: meta spec: replicas: 1 selector: matchLabels: app: otel-collector template: metadata: labels: app: otel-collector spec: containers: - name: otel-collector image: otel/opentelemetry-collector-contrib:0.81.0 args: ["--config=/etc/otel/otel-collector-config.yaml"] volumeMounts: - name: otel-config mountPath: /etc/otel volumes: - name: otel-config configMap: name: otel-collector-config --- apiVersion: v1 kind: ConfigMap metadata: name: otel-collector-config namespace: meta data: otel-collector-config.yaml: | receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 processors: spanmetrics: dimensions: - name: operation default: unknown metrics_exporter: prometheus aggregation_temporality: "AGGREGATION_TEMPORALITY_CUMULATIVE" exporters: otlp: endpoint: tempo:4317 tls: insecure: true prometheus: endpoint: "0.0.0.0:8889" service: pipelines: traces: receivers: [otlp] processors: [spanmetrics] exporters: [otlp] metrics: receivers: [] exporters: [prometheus] processors: [] --- apiVersion: v1 kind: Service metadata: name: otel-collector namespace: meta spec: ports: - name: grpc port: 4317 targetPort: 4317 - name: http port: 4318 targetPort: 4318 selector: app: otel-collector