receivers:
  prometheus/annotated-pods:
    config:
      scrape_configs:
        - job_name: annotated-pods
          scrape_interval: 30s
          kubernetes_sd_configs:
            - role: pod
              selectors:
                # Each DaemonSet pod discovers only the pods on its own node.
                - role: pod
                  field: spec.nodeName=${env:K8S_NODE_NAME}
          relabel_configs:
            - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
              action: keep
              regex: "true"
            - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
              action: replace
              target_label: __metrics_path__
              regex: (.+)
            - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
              action: replace
              regex: ([^:]+)(?::\d+)?;(\d+)
              replacement: $$1:$$2
              target_label: __address__
            - source_labels: [__meta_kubernetes_namespace]
              target_label: k8s_namespace_name
            - source_labels: [__meta_kubernetes_pod_name]
              target_label: k8s_pod_name

processors:
  memory_limiter:
    check_interval: 1s
    limit_percentage: 80
    spike_limit_percentage: 25
  batch:
    timeout: 5s

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

service:
  pipelines:
    metrics:
      receivers: [prometheus/annotated-pods]
      processors: [memory_limiter, batch]
      exporters: [otlphttp]
