Create alert with Prometheus¶
This guide shows you how to create alerts for your application.
Prerequisites¶
- Your application serves metrics
You can define alerts by using Kubernetes resources (PrometheusRule
), as well as directly in Grafana (GUI based).
You will have a separate Alertmanager for each environment available at https://alertmanager.<MY-ENV>.nav.cloud.nais.io/
.
Create PrometheusRule¶
We use native Prometheus alert rules, and let Alertmanager handle the notifications.
You can define alerts by creating a PrometheusRule
resource in your teams namespace.
.nais/alert.yaml
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: <MY-ALERT>
namespace: <MY-TEAM>
labels:
team: <MY-TEAM>
spec:
groups:
- name: <MY-ALERT>
rules:
- alert: InstanceDown
expr: kube_deployment_status_replicas_available{namespace="<namespace>", deployment="<application name>"} == 0
for: 5m
annotations:
consequence: Application is unavailable
action: "`kubectl describe pod <podname>` -> `kubectl logs <podname>`"
summary: |-
This is a multi-line summary with
linebreaks and everything. Here you can give a more detailed
summary of what this alert is about
labels:
namespace: <MY-TEAM> # required
severity: critical
Activate the alert¶
Add the file to your application repository, alongside nais.yaml
to deploy with NAIS github action.
Verify your alert¶
You can see the alerts in the Alertmanager at https://alertmanager.<MY-ENV>.nav.cloud.nais.io/
and the defined rules in Prometheus at https://prometheus.<MY-ENV>.nav.cloud.nais.io/
Learn more¶
Advanced alerting with Prometheus Prometheus alerts reference