Zum Inhalt springen

AlertLint · Observability

Testen Sie Ihre Loki-Alerting-Regeln, bevor sie in der Produktion auslösen.

Mit AlertLint können Sie Loki-Alerting-Regeln vor der Produktion testen — fügen Sie Ihre Regeln und synthetischen Logs ein, stellen Sie fest, welche Alerts auslösen sollen, und erhalten Sie ein Bestanden oder Fehlgeschlagen, alles online ohne Installation oder Registrierung.

Läuft in Ihrem Browser Keine Registrierung Kostenlos & offen Aktualisiert am 19.07.2026

AlertLint-Playground

rules.yaml

Runs in your browser — nothing is uploaded.

Tip: press Esc to release focus.

test.yaml
Results

Load an example or paste your own rules, then run to see pass/fail results here.

Die Lücke

Loki hat kein promtool.

Prometheus-Ingenieure liefern seit Jahren getestete Alerting-Regeln aus mit promtool test rules — synthetische Samples rein, ein Bestanden oder Fehlgeschlagen raus. Loki übernahm das gleiche Regelformat, lieferte aber nie den Test-Runner aus, sodass LogQL-Alerts ungetestet ausgeliefert wurden: Die einzige Möglichkeit zu wissen, ob eine Regel auslöste, bestand darin, auf Produktions-Traffic zu warten.

Die Community fordert dies seit Jahren — siehe Loki Issue #7655 und Issue #16659. AlertLint schließt diese Lücke schon heute: ein kostenloser browserbasierter Loki-Alerting-Regel-Unit-Tester, der die vertraute promtool-artige Testdatei verwendet und vollständig clientseitig läuft.

Neu beim Format? Springen Sie zu den zwei Dateien oder probieren Sie das Live-Playground oben aus.

Die Pipeline

So funktioniert es.

Fünf deterministische Schritte laufen bei jedem Druck auf Run end-to-end durch — jedes Mal vollständig in Ihrem Browser-Tab.

  1. Die Regeln parsen.

    Ihr Loki-Ruler-YAML wird in Alerting- und Recording-Regelgruppen geparst — dieselbe Form, die der Loki-Ruler lädt.

  2. Die Testdatei parsen.

    Die promtool-modellierte Testdatei wird für ihre Input-Log-Series, das Auswertungsintervall und die von Ihnen erwarteten Alerts eingelesen.

  3. Einen In-Memory-Store aufbauen.

    Synthetische Log-Zeilen werden in einen flüchtigen In-Browser-Log-Store geladen, damit Abfragen etwas zum Lesen haben.

  4. Die LogQL auswerten.

    Jeder Regelausdruck läuft zum Auswertungszeitpunkt des Tests gegen den Store und erzeugt die Alerts, die auslösen würden.

  5. Gegen die Erwartung abgleichen.

    Tatsächliche Alerts werden gegen Ihre exp_alerts abgeglichen. Jede Abweichung ist ein fehlgeschlagener Fall und wird inline gemeldet.

Dateiformate

Zwei Dateien, beide vertraut.

AlertLint liest genau zwei Eingaben: Ihr Loki-Ruler-YAML und eine promtool-modellierte Testdatei. Wenn Sie zuvor schon eine davon für Prometheus oder Loki geschrieben haben, werden sich diese wie Zuhause anfühlen.

Die Regeldatei

Standardmäßiges Loki-Ruler-YAML — groups von Alerting- und Recording-Regeln, jeweils mit einer LogQL-expr, einer optionalen for-Dauer und labels / annotations. Dies ist dieselbe Datei, die Ihr Ruler bereits lädt.

rules.yaml
groups:
  - name: app-errors
    rules:
      - alert: HighErrorRate
        expr: |
          sum(rate({app="checkout"} |= "error" [5m])) > 0.2
        for: 2m
        labels:
          severity: page
        annotations:
          summary: "Checkout error rate is high"

Die Testdatei

Nach dem Vorbild von promtool: input_series von synthetischen Log-Streams, ein Auswertungs-interval und ein alert_rule_test, das die von Ihnen erwarteten Alerts auflistet. Ein leeres exp_alerts: [] stellt fest, dass kein Alert auslöst.

tests.yaml
tests:
  - interval: 1m
    input_series:
      - stream: '{app="checkout"}'
        # 5 error lines/min for 6 minutes
        values: '{level="error"}x6'
    alert_rule_test:
      - eval_time: 6m
        alertname: HighErrorRate
        exp_alerts:
          - exp_labels:
              severity: page
              app: checkout
            exp_annotations:
              summary: "Checkout error rate is high"

  # Negative case — empty exp_alerts asserts NO alert fires.
  - interval: 1m
    input_series:
      - stream: '{app="checkout"}'
        values: '{level="info"}x6'
    alert_rule_test:
      - eval_time: 6m
        alertname: HighErrorRate
        exp_alerts: []

Demnächst verfügbar

Führen Sie dieselben Prüfungen in CI aus.

Die Browser-Engine ist Schritt eins. Eine Drop-in-CLI wird die identischen Assertions über einen Glob von Testdateien in Ihrer Pipeline ausführen, sodass ein kaputter Alert den Build zum Fehlschlagen bringt, statt Sie um 3 Uhr morgens zu paging.

Eine First-Party-GitHub-Action, die die CLI umschließt, ist parallel dazu geplant. Beides ist demnächst verfügbar — der In-Browser-Tester oben funktioniert schon heute.

ci.sh
# Coming soon — the same engine as a CLI
$ alertlint test ./tests/**.yaml

  ✓ app-errors › HighErrorRate (fires)
  ✓ app-errors › HighErrorRate (no-fire on info logs)

  2 passed, 0 failed

Preview-Engine

Ein Hinweis zur Genauigkeit: Der In-Browser-Evaluator ist eine Preview-Engine, die die gängigen LogQL-Alerting-Muster abdeckt — Label-Matcher, Line- und Label-Filter, rate / count_over_time-Aggregationen und Schwellenwertvergleiche. Ein Build mit voller Parität, der die vorgelagerte Loki-Query-Engine zu WebAssembly kompiliert, ist demnächst verfügbar. Behandeln Sie bis dahin einen grünen Durchlauf als starke Pre-Flight-Sicherheit und nicht als Byte-für-Byte-Produktions-Replay.

FAQ

Fragen, beantwortet.

Tippen Sie auf eine Frage, um die Antwort aufzuklappen.

AlertLint ist ein kostenloser, browserbasierter Unit-Tester für Alerting- und Recording-Regeln von Grafana Loki. Sie fügen Ihr Loki-Ruler-YAML sowie eine promtool-modellierte Testdatei mit synthetischen Log-Streams ein, klicken auf Run, und AlertLint wertet die LogQL aus und meldet, ob die von Ihnen erwarteten Alerts tatsächlich ausgelöst haben. Es ist das Äquivalent zu promtool „test rules“, das Loki nie ausgeliefert hat.

Nein. AlertLint läuft zu 100 % clientseitig. Ihre Regeln und synthetischen Logs werden in Ihrem Browser-Tab ausgewertet — nichts wird auf einen Server hochgeladen, und es gibt kein Konto und keine Registrierung. Sie können es bedenkenlos für interne oder sensible Regeldefinitionen verwenden.

Prometheus liefert promtool test rules aus, um Alerting-Regeln gegen synthetische Samples zu testen. Loki hat kein eingebautes Äquivalent — es gibt keinen loki test-Befehl. AlertLint schließt diese Lücke für LogQL: Sie legen fest, welche Alerts aus einer bestimmten Menge von Log-Zeilen ausgelöst werden sollen, bevor die Regeln jemals die Produktion erreichen.

Der Preview-Evaluator deckt die gängigen Alerting- und Recording-Muster ab — Log- und Metrik-Abfragen, Stream-Selektoren, Label-Matcher, Line-Filter, rate- und count_over_time-Aggregationen, sum-Aggregationen sowie Schwellenwertvergleiche gegen erwartete Alerts. Vollständige Parität mit der vorgelagerten Loki-Query-Engine (kompiliertes Go zu WebAssembly) ist für ein zukünftiges Release geplant.

Ja. Eine leere exp_alerts-Liste bei einem Testfall stellt fest, dass die Regel zum Auswertungszeitpunkt keine Alerts erzeugt — dieselbe Negativfall-Semantik, die promtool verwendet. Es ist die kanonische Methode, um zu belegen, dass eine Regel bei gutartigem Log-Volumen nicht auslöst.

Nein. AlertLint ist ein unabhängiges Community-Tool und ist nicht mit Grafana Labs verbunden oder von Grafana Labs unterstützt. Loki und Grafana sind Marken von Raintank, Inc. AlertLint bildet das promtool-Testdateiformat zur Vertrautheit nach und verwendet die Herstellernamen nur, um zu beschreiben, was es testet.

Linten Sie vor dem Deployment Ihr Regel-YAML mit lokitool rules lint oder cortextool rules lint --backend=loki und führen Sie Ihre Abfragen probeweise in Grafana Explore oder logcli aus. Für Assertion-basiertes Pre-Flight-Testing — den Schritt, den diese Tools nicht abdecken — fügen Sie Ihre Regeln plus synthetische Log-Streams in AlertLint ein und stellen Sie fest, welche Alerts auslösen sollen, einschließlich Negativfällen. Ein grüner Durchlauf gibt starke Pre-Flight-Sicherheit, auch wenn der In-Browser-Evaluator eher eine Preview-Engine als ein vollständiges Produktions-Replay ist.

lokitool und cortextool bieten rules lint- und sync-Befehle, die die Regelstruktur validieren und Regeln an einen Loki-Ruler pushen — aber keines von beiden führt Alert-Assertions mit synthetischen Logs aus oder sagt Ihnen, ob eine Regel auslöst. AlertLint bringt den promtool-artigen, Assertion-basierten Workflow zu LogQL: Sie liefern synthetische Log-Streams, deklarieren, welche Alerts Sie erwarten, und erhalten ein Bestanden- oder Fehlgeschlagen-Urteil, vollständig im Browser und ohne Installation.

AlertLint parst standardmäßiges Loki-Ruler-YAML — Gruppen von Alerting- und Recording-Regeln, jeweils mit einer LogQL-expr, einer optionalen for-Dauer und labels/annotations — und meldet strukturelle Probleme inline. Für tiefergehende Expression-Policy-Prüfungen gegen Regel-Metadaten ist promruval mit --support-loki eine CLI-Option. AlertLint läuft vollständig im Browser, ohne dass eine Registrierung erforderlich ist.

More free, private DevOps tools.

AlertLint ist eines von vielen Tools in OpsCanopy — ein wachsendes Dach aus browserbasierten Validatoren, Konvertern und Testern, die niemals einen Server berühren.

29 kostenlose Tools, jedes einzelne offlinefähig — opscanopy.com funktioniert ohne Registrierung, und nichts wird hochgeladen.

Kombinieren Sie es mit dem nun verfügbaren CVE-Ignore-Konverter und dem GitHub-Actions-Validator, oder durchstöbern Sie das vollständige Tools-Verzeichnis.

Nicht verbunden mit oder unterstützt von Grafana Labs. Loki und Grafana sind Marken von Raintank, Inc.