service:
  extensions: [ jaeger_storage, jaeger_query, remote_sampling, healthcheckv2 ]
  pipelines:
    traces:
      receivers: [ otlp, jaeger, zipkin ]
      processors: [ batch, adaptive_sampling ]
      exporters: [ jaeger_storage_exporter ]
  telemetry:
    resource:
      service.name: jaeger
    metrics:
      level: detailed
      readers:
        - pull:
            exporter:
              prometheus:
                host: 0.0.0.0
                port: 8888
    logs:
      level: debug
    # TODO Initialize telemetry tracer once OTEL released new feature.
    # https://github.com/open-telemetry/opentelemetry-collector/issues/10663

extensions:
  healthcheckv2:
    use_v2: true
    http:

  # pprof:
  #   endpoint: 0.0.0.0:1777
  # zpages:
  #   endpoint: 0.0.0.0:55679

  jaeger_query:
    storage:
      traces: some_store
      traces_archive: another_store
    ui:
      config_file: ./cmd/jaeger/config-ui.json
      log_access: true
    # The maximum duration that is considered for clock skew adjustments.
    # Defaults to 0 seconds, which means it's disabled.
    max_clock_skew_adjust: 0s
    grpc:
      endpoint: 0.0.0.0:16685
    http:
      endpoint: 0.0.0.0:16686

  jaeger_storage:
    backends:
      some_store:
        memory:
          max_traces: 100000
      another_store:
        memory:
          max_traces: 100000
    metric_backends:
      some_metrics_storage:
        prometheus:
          endpoint: http://prometheus:9090
          normalize_calls: true
          normalize_duration: true

  remote_sampling:
    # You can either use file or adaptive sampling strategy in remote_sampling
    # file:
    #   path: ./cmd/jaeger/sampling-strategies.json
    adaptive:
      sampling_store: some_store
      initial_sampling_probability: 0.1
    http:
    grpc:

receivers:
  otlp:
    protocols:
      grpc:
      http:

  jaeger:
    protocols:
      grpc:
      thrift_binary:
      thrift_compact:
      thrift_http:

  zipkin:

processors:
  batch:
  # Adaptive Sampling Processor is required to support adaptive sampling.
  # It expects remote_sampling extension with `adaptive:` config to be enabled.
  adaptive_sampling:

exporters:
  jaeger_storage_exporter:
    trace_storage: some_store

