view config/scrape_main.yaml @ 64:def1aa2bfa3f

more targets polish. reorg code into next/
author drewp@bigasterisk.com
date Thu, 02 May 2024 23:06:31 -0700
parents 8199713c9294
children
line wrap: on
line source

  # some based on https://github.com/prometheus/prometheus/blob/main/documentation/examples/prometheus-kubernetes.yml

  - job_name: "k8services"
    kubernetes_sd_configs: [{ role: endpoints }]
    relabel_configs:
      # To omit a service, add this at pod-level (Deployment.spec.template.metadata.annotations):
      #   annotations: { prometheus.io/scrape: "false" }
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "false"
        action: drop

      # - source_labels: [__meta_kubernetes_namespace]
      #   regex: default
      #   action: keep

      # promote these to display
      - source_labels: [__meta_kubernetes_service_name]
        target_label: job

      - source_labels: [__meta_kubernetes_pod_node_name]
        target_label: node

      # for convenience in this config
      - source_labels: [__meta_kubernetes_pod_container_port_number]
        target_label: __port_number

      # path tweaks
      - if: '{job="victoriametrics",__port_number="8428"}'
        action: replace
        target_label: "__metrics_path__"
        replacement: "/m/metrics"
      - if: '{job="victorialogs",__port_number="9428"}'
        action: replace
        target_label: "__metrics_path__"
        replacement: "/logs/metrics"
      - if: '{job="video-files",__port_number="8004"}'
        action: replace
        target_label: "__metrics_path__"
        replacement: "/video/api/metrics"

      # discovery is matching extra ports that don't serve metrics- remove these targets
      - {if: '{job="cert-manager-webhook"}',                     action: drop}
      - {if: '{job="cert-manager",      __port_number="9403"}',  action: drop}
      - {if: '{job="filesync-syncthing",__port_number="21027"}', action: drop}
      - {if: '{job="filesync-syncthing",__port_number="22000"}', action: drop}
      - {if: '{job="filesync-syncthing",__port_number="8384"}',  action: drop}
      - {if: '{job="jsregistry",        __port_number="4873"}',  action: drop}
      - {if: '{job="kube-dns",          __port_number="53"}',    action: drop}
      - {if: '{job="kubernetes"}',                               action: drop}
      - {if: '{job="mongodb",           __port_number="27017"}', action: drop}
      - {if: '{job="mosquitto-ext",     __port_number="1883"}',  action: drop}
      - {if: '{job="net-route-input",   __port_number="80"}',    action: drop}
      - {if: '{job="photoprism",        __port_number="2342"}',  action: drop}
      - {if: '{job="pomerium-metrics",  __port_number="8080"}',  action: drop}
      - {if: '{job="pomerium-metrics",  __port_number="8443"}',  action: drop}
      - {if: '{job="pomerium-proxy",    __port_number="8080"}',  action: drop}
      - {if: '{job="pomerium-proxy",    __port_number="8443"}',  action: drop}
      - {if: '{job="video-files",       __port_number="8003"}',  action: drop}
      - {if: '{job=~"cm-acme-.*"}',                              action: drop}
      - {if: '{job="nvidiagpu-node-feature-discovery-master", __port_number="8080"}',  action: drop}
      
      # already have this with a job="pomerium-proxy"
      - {if: '{job="pomerium-metrics"}',                         action: drop}



      # Assume all 8001/8002 port discoveries are redundant with an nginx proxy
      - {if: '{__port_number="8001"}', action: drop}
      - {if: '{__port_number="8002"}', action: drop}
      
      # Needs https. Used by `kubectl top`
      - {if: '{job="metrics-server",    __port_number="443"}', action: drop}
      # Something doesn't work with the scrape, and I don't see why I should care:
      - {if: '{job="metrics-server"                        }', action: drop}