# 1. Prometheus Alert Rule Configuration ## 1.1. Add `prometheusrule.yaml` to `/templates`. Example: > Update metrics to your service name, see freeleaps-ops/freeleaps/helm-pkg/metrics ```yaml {{- /* Copyright Broadcom, Inc. All Rights Reserved. SPDX-License-Identifier: APACHE-2.0 */}} {{- if .Values.metrics.prometheusRule.enabled }} apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: {{ .Values.metrics.prometheusRule.name }} namespace: {{ .Values.metrics.prometheusRule.namespace | quote }} {{- with .Values.metrics.prometheusRule.labels }} labels: {{- toYaml . | nindent 4 }} {{- end }} spec: groups: {{- with .Values.metrics.prometheusRule.rules }} - name: {{ $.Values.metrics.prometheusRule.name }} rules: {{- range . }} - alert: {{ .alert }} expr: {{ .expr | quote }} {{- if .for }} for: {{ .for }} {{- end }} {{- if .labels }} labels: {{- toYaml .labels | nindent 12 }} {{- end }} {{- if .annotations }} annotations: {{- toYaml .annotations | nindent 12 }} {{- end }} {{- end }} {{- end }} {{- end }} ``` ## 1.2. Add prometheusrule configuration to values.{alpha/prod}.yaml Example: > See freeleaps-ops/freeleaps/helm-pkg/metrics ```yaml prometheusRule: name: freepeals-metrics enabled: true namespace: "freeleaps-monitoring-system" labels: release: kube-prometheus-stack rules: - alert: FreeleapsMetricsServiceDown expr: up{job="metrics-service"} == 0 for: 1m labels: severity: critical service: metrics-service annotations: summary: "Freeleaps Metrics service is down (instance {{ $labels.instance }})" description: "Freeleaps Metrics service has been down for more than 1 minutes." runbook_url: "https://netorgft10898514.sharepoint.com/:w:/s/FreeleapsEngineeringTeam/EUlvzumTsPxCpPAzI3gm9OIB0DCLTjQzzYVL6VsHYZFjxg?e=0dxVr7" - alert: FreeleapsMetricsServiceHighErrorRate expr: rate(http_requests_total{job="metrics-service",status=~"5.."}[5m]) > 0.1 for: 5m labels: severity: warning service: metrics-service annotations: summary: "High error rate in freeleaps metrics service (instance {{ $labels.instance }})" description: "Freeleaps Metrics service error rate is {{ $value }} errors per second." runbook_url: "https://netorgft10898514.sharepoint.com/:w:/s/FreeleapsEngineeringTeam/EUlvzumTsPxCpPAzI3gm9OIB0DCLTjQzzYVL6VsHYZFjxg?e=0dxVr7" ``` ## 1.3. Verify Alert Rule Configuration is Effective > Redirect to local ![alt text](asserts/image4.png) > You can see the newly added rules indicating they are effective ![alt text](asserts/image5.png)