Skip to content

Monitoring & Alerting

Automatic Blackbox Monitoring

Tip

All ingresses will be automatically scraped by the Blackbox Prober and its metrics visualized in the Blackbox Prober Dashboard. This is done by leveraging the kubernetes_sd_config.

Prometheus

Collecting Prometheus Metrics

If your application exposes Prometheus Metrics, you can use a ServiceMonitor to collect those:

apiVersion: v1
kind: Service
metadata:
  name: radar
spec:
  type: ClusterIP
  ports:
  - port: 80
    name: http
    protocol: TCP
    targetPort: 3001
  - port: 9090
    name: metrics
    protocol: TCP
    targetPort: 9090
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: radar
  namespace: monitoring
  labels:
    release: kube-prometheus-stack # important
spec:
  selector:
    matchLabels:
      app: radar # needs to match the name of your service
  endpoints:
    - port: metrics # needs to match the port of your metrics port
      interval: 30s
      scheme: http

Grafana

How to add a custom Grafana Dashboard?

Simply drop your dashboard json in under argocd/kube-prometheus-stack/dashboards/ and update the argocd/kube-prometheus-stack/kustomization.yaml to include your file (configMapGenerator[0].files):

Tip

The grafana_dashboard label is required!

The grafana_folder annotation tells Grafana in which directory to put the dashboard

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

configMapGenerator:
  - name: dashboard
    files:
      - ./files/dashboard.json
    options:
      disableNameSuffixHash: true
      labels:
        # https://docs.syseleven.de/metakube-accelerator/building-blocks/observability-monitoring/kube-prometheus-stack#adding-grafana-dashboards
        grafana_dashboard: "1"
      annotations:
        # has been specified in sidecar.dashboards.folderAnnotation in helm-values/kube-prometheus-stack-values.yaml
        grafana_folder: ClearRoute