Skip to main content

Prometheus Setup

monitoring prometheus infographic

Bloodraven exposes Prometheus metrics on the operator metrics Service, port 8080 named metrics.

Helm values

metrics:
service:
enabled: true
serviceMonitor:
enabled: true
interval: 30s
scrapeTimeout: 10s
labels:
release: kube-prometheus-stack
helm upgrade --install bloodraven bloodraven/bloodraven \
--namespace bloodraven \
--create-namespace \
--values bloodraven-values.yaml

ServiceMonitor

The chart renders a ServiceMonitor when metrics.serviceMonitor.enabled=true. It selects the operator metrics Service in the release namespace.

If you manage the monitor yourself:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: bloodraven
namespace: bloodraven
labels:
release: kube-prometheus-stack
spec:
namespaceSelector:
matchNames:
- bloodraven
selector:
matchLabels:
app.kubernetes.io/name: bloodraven
endpoints:
- port: metrics
interval: 30s
scrapeTimeout: 10s

Plain Prometheus scrape config

scrape_configs:
- job_name: bloodraven
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- bloodraven
relabel_configs:
- source_labels: [__meta_kubernetes_service_label_app_kubernetes_io_name]
action: keep
regex: bloodraven
- source_labels: [__meta_kubernetes_endpoint_port_name]
action: keep
regex: metrics

Verify targets

kubectl get service -n bloodraven
kubectl get servicemonitor -n bloodraven
kubectl port-forward -n bloodraven deploy/bloodraven 8080:8080
curl http://localhost:8080/metrics | grep '^bloodraven_'

In Prometheus, check Status > Targets for the bloodraven job or ServiceMonitor-generated target.

Alerts

Keep alert rules with your platform monitoring stack. Alert names should link to Alert To Runbook Map, and metric details live in Monitoring Reference.