Automate everything! #2.5

 

Im vergangenen Teil dieser Blogserie habe ich euch über diverse Tools sowie wichtige Arbeitsmethoden berichtet. In diesem kurzen Beitrag erzähle ich euch von unserer neuen Errungenschaft «Pint». 

Pint

Die neueste Errungenschaft für unsere Pipeline ist Pint, ein Prometheus Linter und Regelvalidator von Cloudflare.

pint kann einerseits direkt in der Pipeline verwendet werden:

prometheus_lint:
  stage: lint
  image: ghcr.io/cloudflare/pint:0.42.2
  script:
    - pint lint roles/prometheus/files/rules/*/*
  only:
    - merge_requests

Andererseits kann man pint im Watch-Mode gegen eine laufende Prometheus Instanz laufen lassen und erhält Metriken mit Problemen in dessen Konfiguration zurück. Diese Pint-Instanz wird im Prometheus als Target hinterlegt und schon kann man in Prometheus Alerts erstellen. Wir haben uns entschieden, die Probleme in einem Grafana Dashboard anzuzeigen.

Unsere Learnings

  • Eine Error Metrik sollte auch existieren, wenn kein Error besteht und dann den Wert 0 enthält: https://prometheus.io/docs/practices/instrumentation/#avoid-missing-metrics

  • Expressions in einem Alert sollten immer mit einem Wert verglichen werden.

  • Labels, welche in Annotationen verwendet werden, müssen auch im Querry enthalten sein und sollten nicht weg aggregiert werden.

  • Prometheus regexp matchers are automatically fully anchored so match for mountpoint!~“^/run(/|)“ will result in mountpoint!~“^^/run(/|)$”, remove regexp anchors ^ and/or $

  • Wir hatten alte Files herumliegen, welche wir nicht mehr brauchen und wegräumen sollten (pint fand duplicates)

Hat dir dieser Artikel gefallen? Sei gespannt auf die nächsten Teile.

Kommentare sind geschlossen.