kubectlport-forward-nmonitoringsvc/kube-prometheus-stack-prometheus9090:9090&# Then open: http://localhost:9090/targets# Or via CLI:curl-shttp://localhost:9090/api/v1/targets|python3-c"import sys,json; data=json.load(sys.stdin); [print(t['labels'].get('job','?'), t['health']) for t in data['data']['activeTargets']]"
Access at http://localhost:3000. Default credentials for kube-prometheus-stack: admin/prom-operator (change in production via grafana.adminPassword Helm value).
# Get ServiceMonitor selectorkubectlgetservicemonitor-nmonitoring-ojsonpath='{range .items[*]}{.metadata.name}: {.spec.selector.matchLabels}{"\n"}{end}'# Get service labelskubectlgetsvcgrokdevops-ngrokdevops--show-labels
The ServiceMonitor matchLabels must appear in the service's labels.
kubectlport-forward-nmonitoringsvc/kube-prometheus-stack-grafana3000:80&curl-s-uadmin:prom-operatorhttp://localhost:3000/api/datasources|python3-c"import sys,json; [print(d['name'],d['type']) for d in json.load(sys.stdin)]"
# 1. Get the ServiceMonitor's selectorkubectlgetservicemonitorgrokdevops-nmonitoring-ojsonpath='{.spec.selector.matchLabels}'# 2. Get the service's labelskubectlgetsvcgrokdevops-ngrokdevops--show-labels
# 3. Compare: do the matchLabels appear in the service labels?
kubectlport-forward-nmonitoringsvc/kube-prometheus-stack-grafana3000:80&curl-s-uadmin:prom-operatorhttp://localhost:3000/api/search|python3-c"import sys,json; [print(d.get('title','?')) for d in json.load(sys.stdin)]"