Zum Inhalt springen

LogQL ↔ PromQL · Observability

Übersetzen Sie zwischen LogQL und PromQL.

Ein kostenloser LogQL zu PromQL Konverter, der online und vollständig in Ihrem Browser arbeitet. Fügen Sie eine Abfrage ein, wählen Sie eine Richtung und erhalten Sie ein sauberes Umschreiben der Teile, die sich abbilden lassen, plus ehrliche Hinweise zu den Teilen, die das nicht tun.

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

LogQL ↔ PromQL Helper Playground

Direction
Loading…
query.logql

Tip: press Esc to release focus.

query.promql
read-only
Notes

Pick a direction, paste or load a query, then convert to see the translated query and notes on what does and does not map here.

Die Lücke

Gleiche Grammatik, verschiedene Welten.

LogQL wurde bewusst nach dem Vorbild von PromQL gestaltet: die Matcher-Syntax, die Range-Vector-Funktionen und die Aggregationsoperatoren sehen nahezu identisch aus. Daher möchten Engineers, die sowohl Loki als auch Prometheus betreiben, ständig eine Abfrage vom einen in das andere übertragen — und greifen zu Suchen-und-Ersetzen, das bei den Teilen, die nicht zusammenpassen, klammheimlich versagt.

Der Haken ist, dass PromQL immer nur vor-aggregierte Samples sieht, während LogQL rohe Log-Zeilen auch filtern und umformen kann. Zeilenfilter, Parser und line_format haben überhaupt kein PromQL-Äquivalent. Dieser Loki-Abfrage-Konverter erledigt die langweilige Metrik-Abbildung für Sie und sagt Ihnen — was ebenso wichtig ist — genau, welche Teile er nicht übersetzen konnte, sodass Sie diese bewusst korrigieren statt durch Überraschung.

Neu bei den Unterschieden? Springen Sie zu was sich abbilden lässt und was nicht oder probieren Sie das Live-Playground oben aus.

Die Pipeline

So funktioniert es.

Fünf deterministische Schritte laufen bei jedem Druck auf Convert von Anfang bis Ende durch — jedes Mal vollständig in Ihrem Browser-Tab.

  1. Die Abfrage parsen.

    Ihre Ausgangsabfrage wird in ihre strukturellen Bestandteile zerlegt — Selektoren, Range-Funktionen, Aggregationen und Vergleiche — in der von Ihnen gewählten Sprache.

  2. Die Metrik-Form abbilden.

    Konstrukte mit gemeinsamer Grammatik — Matcher, rate/over_time, sum by (…), Schwellenwerte — werden eins zu eins in die Zielsprache übertragen.

  3. Isolieren, was sich nicht abbilden lässt.

    Reine Log-LogQL-Teile — Zeilenfilter, Parser, line_format — werden herausgelöst, da PromQL kein Äquivalent dafür hat.

  4. Die Übersetzung ausgeben.

    Die umgeschriebene Abfrage wird in der Zielsprache dargestellt, bereit zum Kopieren in Grafana, eine Rule-Datei oder einen Alert.

  5. Die Hinweise melden.

    Alles, was verlustbehaftet oder nicht abbildbar ist, wird als Hinweis in klarer Sprache sichtbar gemacht, sodass Sie genau wissen, was Sie von Hand prüfen müssen.

Was sich abbilden lässt

Was sich übersetzen lässt und was nicht.

Metric-Abfragen teilen sich die Grammatik und lassen sich sauber abbilden. Log-Abfragen — der Teil, der rohe Zeilen liest — sind der Punkt, an dem sich die beiden Sprachen trennen. Hier ist die ehrliche Aufteilung.

Lässt sich sauber abbilden

Label-Matcher, Range-Vector-Funktionen (rate, increase, count_over_time), Aggregations- operatoren mit by / without-Gruppierung und Schwellenwert- vergleiche verwenden alle eine nahezu identische Syntax. Dieselbe Form in LogQL wird zur selben Form in PromQL.

source.logql
# LogQL metric query — error rate from a log stream
sum by (app) (
  rate({app="checkout", env="prod"} |= "error" [5m])
) > 0.2
result.promql
# PromQL — the same aggregation shape over a counter metric
sum by (app) (
  rate(app_request_errors_total{app="checkout", env="prod"}[5m])
) > 0.2

Hat kein Äquivalent

PromQL sieht nur numerische Samples, daher existieren die Teile von LogQL, die auf rohem Log-Text arbeiten, auf der anderen Seite schlicht nicht. Zeilenfilter (|= "error"), Parser (| json, | logfmt), line_format und label_format werden als Hinweise gemeldet, niemals stillschweigend verworfen.

log-only.logql
# These LogQL pieces have NO PromQL equivalent:
{app="checkout"} |= "error"            # line filter — PromQL sees samples, not lines
| json | line_format "{{.msg}}"        # parsers + line_format reshape log text
| label_format level=`{{.severity}}`   # label_format rewrites labels at query time

Preview Engine

Ein Hinweis zur Genauigkeit: Der Übersetzer im Browser ist eine Preview Engine, die die gängigen Formen von Metrik-Abfragen abbildet — Label-Matcher, Range-Vector-Funktionen wie rate / count_over_time, Aggregationen mit by / without und Schwellenwertvergleiche. Sie führt keinen vollständigen LogQL- oder PromQL-Parser aus und kann keinen Metrik-Namen für eine aus Logs abgeleitete Serie erfinden. Behandeln Sie ihre Ausgabe als soliden ersten Entwurf zur Prüfung — nicht als garantierten Drop-in für produktive Rules.

FAQ

Fragen, beantwortet.

Tippen Sie auf eine Frage, um die Antwort aufzuklappen.

Er übersetzt gängige Formen von Metrik-Abfragen zwischen LogQL von Grafana Loki und PromQL von Prometheus, in beide Richtungen. Fügen Sie eine Abfrage ein, wählen Sie eine Richtung, und der Helper schreibt die Selektoren, Range-Funktionen und Aggregationen in die jeweils andere Sprache um — und kennzeichnet anschließend alles, was sich nicht sauber abbilden lässt. Er läuft vollständig in Ihrem Browser, ohne Konto und ohne Upload.

Nein. Der Helper arbeitet zu 100 % clientseitig. Ihre Abfragen werden innerhalb Ihres Browser-Tabs geparst und umgeschrieben — nichts wird an einen Server gesendet, und es gibt keine Registrierung. Sie können interne Label-Namen, Namespaces und Service-Bezeichner bedenkenlos einfügen.

Nein, und der Helper macht das transparent. LogQL und PromQL teilen sich dieselbe Matcher- und Aggregationsgrammatik für Metrik-Abfragen, sodass sich Formen wie rate(), count_over_time(), sum by (…) und Schwellenwertvergleiche gut übersetzen lassen. LogQL-Log-Abfragen hingegen — Zeilenfilter wie |= "error", label_format, line_format sowie Pattern-/Regexp-Parser — haben kein PromQL-Äquivalent, weil PromQL nur vor-aggregierte Samples sieht. Diese Teile werden als Hinweise gemeldet, statt stillschweigend verworfen zu werden.

Label-Matcher ({app="checkout", env=~"prod|stage"}), Range-Vector-Funktionen (rate, irate, increase, *_over_time), Aggregationsoperatoren (sum, avg, max, min, count, topk) mit by/without-Gruppierung sowie binäre Vergleiche und Schwellenwertvergleiche verwenden eine nahezu identische Syntax. Der Helper bildet diese direkt ab und lässt Ihre Label-Namen und Zeitdauern unverändert.

Teams betreiben häufig sowohl Loki als auch Prometheus und möchten, dass eine Metrik, die sie in einem System erprobt haben, auch im anderen existiert — etwa eine aus Logs abgeleitete Fehlerrate in Loki in die Form einer Recording Rule zu überführen, die sie gegen Prometheus-Metriken nachvollziehen können, oder einen PromQL-Alert-Schwellenwert in ein LogQL-Äquivalent über einen Log-Stream zu portieren. Der Helper liefert Ihnen einen schnellen ersten Entwurf plus eine klare Liste dessen, was Sie nochmals prüfen sollten.

PromQL fragt vor-aggregierte numerische Metriken ab, die in Prometheus gespeichert sind; LogQL fragt Log-Streams in Grafana Loki ab und kann zur Abfragezeit Metriken daraus ableiten. Beide teilen sich eine identische Label-Matcher-Syntax und dieselben Aggregationsoperatoren (sum, avg, max), aber LogQL ergänzt eine nachgelagerte Pipeline aus Filtern und Parsern — getrennt durch | —, die in PromQL kein Gegenstück hat. Der Unterschied liegt im Datenmodell: numerische Samples gegenüber rohen Log-Zeilen.

Behalten Sie die Label-Matcher unverändert bei — LogQL-Stream-Selektoren verwenden dieselbe {label="value"}-Syntax. Umschließen Sie den Selektor anschließend mit einer Range-Aggregation wie rate(), count_over_time() oder sum_over_time() und fügen Sie eine Range wie [5m] hinzu. Da Loki keine bereits vorhandenen Metrik-Serien besitzt, müssen Sie den Selektor außerdem auf einen echten Log-Stream richten und häufig eine Parser-Stufe (| json oder | logfmt) ergänzen, um die Labels zu extrahieren, nach denen Sie gruppieren möchten.

Funktionen, die bereits vorhandene instrumentierte Serien voraussetzen, lassen sich nicht direkt übersetzen. histogram_quantile hat kein direktes LogQL-Gegenstück (stattdessen bräuchten Sie quantile_over_time mit einem entpackten Label). irate() wird in LogQL durch rate() angenähert, da Loki keine äquivalente Funktion für die momentane Rate besitzt. Auch das binäre PromQL-Vektor-Matching auf Metrik-Paaren ist in LogQL eingeschränkter, da LogQL auf Log-Streams statt auf numerischen Serien arbeitet.

Ja. LogQL wurde bewusst nach dem Vorbild von PromQL gestaltet: Stream-Selektoren verwenden eine identische {label="value"}-Syntax, und LogQL-Metrik-Abfragen nutzen dieselben Aggregationsoperatoren — sum, avg, max, topk, by/without. Die zentrale Ergänzung ist die Log-Pipeline zum Filtern und Parsen roher Log-Zeilen, sodass Engineers, die bereits mit PromQL vertraut sind, LogQL-Metrik-Abfragen mit minimaler Umstellung lesen können.

Nein. Dies ist ein unabhängiges Community-Tool und steht in keiner Verbindung zu Grafana Labs oder dem Prometheus-Projekt und wird von diesen nicht unterstützt. Loki und Grafana sind Marken von Raintank, Inc.; Prometheus ist eine Marke der The Linux Foundation. Die Anbieternamen werden ausschließlich verwendet, um die Abfragesprachen zu beschreiben, die der Helper übersetzt.

More free, private DevOps tools.

Der LogQLPromQL Helper steht neben dem Rest des OpsCanopy-Observability-Clusters — erklären Sie eine PromQL-Abfrage oder testen Sie Ihre Loki-Alert-Rules mit AlertLint, alles browserbasiert und standardmäßig privat.

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

Möchten Sie die gesamte Sammlung? Durchstöbern Sie das vollständige Tools-Verzeichnis, oder lesen Sie, warum hier alles vollständig clientseitig läuft.

Steht in keiner Verbindung zu Grafana Labs oder dem Prometheus-Projekt und wird von diesen nicht unterstützt. Loki und Grafana sind Marken von Raintank, Inc.; Prometheus ist eine Marke der The Linux Foundation.