Files
homelab/cluster/platform/external-dns/servicemonitor.yaml
Hermes Agent service account 5a99928c6f Add ServiceMonitors and Grafana dashboards for Harbor, External-DNS, and Ingress-NGINX
- Created ServiceMonitor for Harbor (harbor-core, harbor-exporter, harbor-jobservice, harbor-registry)
  - Port: http-metrics (8001)
  - Scrape interval: 30s
  - Verified metrics: harbor_core_http_request_duration_seconds_count

- Created ServiceMonitor for External-DNS
  - Port: http (7979)
  - Scrape interval: 30s
  - Verified metrics: external_dns_registry_endpoints_total

- Created ServiceMonitor for Ingress-NGINX
  - Port: metrics (10254)
  - Scrape interval: 30s
  - Verified metrics: nginx_ingress_controller_requests

- Added Grafana dashboards:
  - Harbor Overview (dashboard 16366)
  - External-DNS (dashboard 15038)
  - Ingress-NGINX Controller (dashboard 9614)

All ServiceMonitors deployed and actively scraping. Prometheus targets confirmed UP.
2026-06-19 18:26:54 -05:00

37 lines
1.0 KiB
YAML

# ------------------------------------------------------------------------------
# External-DNS Metrics - ServiceMonitor
#
# Configures Prometheus Operator to scrape External-DNS metrics
#
# Scrape interval: 30s
# Endpoint: /metrics on port 7979
# Metrics namespace: externaldns_* (externaldns_registry_endpoints_total, etc.)
# ------------------------------------------------------------------------------
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: external-dns-metrics
namespace: external-dns
labels:
app.kubernetes.io/name: external-dns
app.kubernetes.io/component: metrics
# Label selector for kube-prometheus-stack discovery
release: monitoring
spec:
# Select the external-dns service
selector:
matchLabels:
app.kubernetes.io/name: external-dns
# Namespace selector
namespaceSelector:
matchNames:
- external-dns
# Scrape endpoint configuration
endpoints:
- port: http
interval: 30s
scrapeTimeout: 10s
path: /metrics