apiVersion: v1
kind: ConfigMap
metadata:
  name: otel-collector-config
  namespace: metrics
  annotations:
    use-subpath: "true"
  labels:
    app.kubernetes.io/name: otel-collector
data:
  config.yaml: |
    extensions:
      health_check:
      # pprof:
      zpages:

    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
          http:
            endpoint: 0.0.0.0:4318
      prometheus/self:
        config:
          scrape_configs:
            - job_name: otel-collector-metrics
              scrape_interval: 10s
              static_configs:
                - targets: ["localhost:8888"]
                  labels: { "instance": "bigserver-otel-collector" }

    processors:
      batch:

    exporters:
      otlp/tempo:
        endpoint: tempo:4317
        tls:
          insecure: true
      otlphttp/prometheus-server:
        endpoint: http://prometheus-server:9090/api/v1/otlp
      otlphttp/loki:
        endpoint: http://loki:3100/otlp

    connectors:
      spanmetrics:
        namespace: span.metrics
        histogram:
          explicit:
            buckets: [100us, 1ms, 2ms, 6ms, 10ms, 100ms, 250ms, 1s, 5s, 30s, 1m, 5m]
        exemplars:
          enabled: true

    service:
      extensions:
        - health_check
        - zpages

      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlp/tempo, spanmetrics]
        metrics:
          receivers: [otlp, prometheus/self, spanmetrics]
          processors: [batch]
          exporters: [otlphttp/prometheus-server]
        logs:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlphttp/loki]
      telemetry:
        metrics:
          address: 0.0.0.0:8888
          level: detailed