receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317

processors:
  memory_limiter:
    check_interval: 1s
    limit_percentage: 80
    spike_limit_percentage: 25
  # Drops everything a named service sends: here a load generator and any
  # service whose name starts with synthetic-.
  filter/drop-by-service:
    error_mode: ignore
    logs:
      log_record:
        - resource.attributes["service.name"] == "load-generator"
        - IsMatch(resource.attributes["service.name"], "^synthetic-")
    metrics:
      metric:
        - resource.attributes["service.name"] == "load-generator"
        - IsMatch(resource.attributes["service.name"], "^synthetic-")
    traces:
      span:
        - resource.attributes["service.name"] == "load-generator"
        - IsMatch(resource.attributes["service.name"], "^synthetic-")
  batch:
    timeout: 5s

exporters:
  otlphttp:
    endpoint: https://your-backend:4318

service:
  pipelines:
    logs:
      receivers: [otlp]
      processors: [memory_limiter, filter/drop-by-service, batch]
      exporters: [otlphttp]
    metrics:
      receivers: [otlp]
      processors: [memory_limiter, filter/drop-by-service, batch]
      exporters: [otlphttp]
    traces:
      receivers: [otlp]
      processors: [memory_limiter, filter/drop-by-service, batch]
      exporters: [otlphttp]
