Use Prometheus ServiceMonitor from different namespaces


Modify kube-prometheus-stack

Add to your values.yaml

commonLabels:
  prometheus: enabled

prometheus:
  prometheusSpec:
    serviceMonitorNamespaceSelector:
      matchLabels:
        prometheus: enabled
        release: kube-prometheus-stack
    serviceMonitorSelector:
      matchLabels:
        prometheus: enabled

Upgrade kube-prometheus-stack

helm upgrade kube-prometheus-stack  -f values.yaml prometheus-community/kube-prometheus-stack

Modify mysql-exporter

Add to mysql-exporter values.yaml

serviceMonitor:
  additionalLabels:
    prometheus: enabled
helm upgrade mysql-exporter -f mysql-exporter.yaml prometheus-community/prometheus-mysql-exporter

Add label to namespaces which will scraping

kubectl label ns kube-prometheus-stack prometheus=enable

kubectl label ns mysql prometheus=enable