LogQL ↔ PromQL · Observabilidad
Traduce entre LogQL y PromQL.
Un conversor gratuito de LogQL a PromQL que funciona en línea, enteramente en tu navegador. Pega una consulta, elige una dirección y obtén una reescritura limpia de las partes que se convierten más notas honestas sobre las partes que no.
Entorno de pruebas del LogQL ↔ PromQL Helper
Tip: press Esc to release focus.
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.
La brecha
La misma gramática, mundos distintos.
LogQL se modeló deliberadamente sobre PromQL: la sintaxis de los selectores, las funciones de vector de rango y los operadores de agregación parecen casi idénticos. Por eso, los ingenieros que usan a la vez Loki y Prometheus quieren constantemente llevar una consulta de uno al otro, y recurren a buscar y reemplazar, que se rompe en silencio en las partes que no encajan.
El problema es que PromQL solo llega a ver muestras ya agregadas, mientras que LogQL también puede filtrar y reestructurar líneas de log en bruto. Los filtros de línea, los analizadores y line_format no tienen ningún equivalente en PromQL. Este conversor de consultas de Loki hace por ti la tediosa conversión de métricas y, lo que es igual de importante, te dice exactamente qué piezas no pudo traducir, para que las arregles a propósito en lugar de por sorpresa.
¿Nuevo en estas diferencias? Salta a qué se convierte y qué no o prueba el entorno de pruebas en vivo de arriba.
La canalización
Cómo funciona.
Cinco pasos deterministas se ejecutan de principio a fin cada vez que pulsas Convertir, todos dentro de la pestaña de tu navegador, siempre.
-
Analiza la consulta.
Tu consulta de origen se descompone en sus partes estructurales —selectores, funciones de rango, agregaciones y comparaciones— en el lenguaje que hayas elegido.
-
Convierte la forma de la métrica.
Las construcciones que comparten gramática —selectores, rate/over_time, sum by (…), umbrales— se convierten una a una al lenguaje de destino.
-
Aísla lo que no se puede convertir.
Las piezas de LogQL solo para logs —filtros de línea, analizadores, line_format— se separan, ya que PromQL no tiene equivalente para ellas.
-
Genera la traducción.
La consulta reescrita se muestra en el lenguaje de destino, lista para copiarla en Grafana, en un archivo de reglas o en una alerta.
-
Informa de las notas.
Todo lo que sea con pérdidas o no convertible aparece como una nota en lenguaje claro, para que sepas exactamente qué verificar a mano.
Qué se convierte
Qué se traduce y qué no.
Las consultas de métricas comparten gramática y se convierten de forma limpia. Las consultas de logs —la parte que lee líneas en bruto— son donde los dos lenguajes se separan. Aquí tienes la distinción honesta.
Se convierte de forma limpia
Los selectores de etiquetas, las funciones de vector de rango (rate, increase, count_over_time), los operadores de agregación con agrupación by / without y las comparaciones de umbral comparten una sintaxis casi idéntica. La misma forma en LogQL se convierte en la misma forma en PromQL.
# LogQL metric query — error rate from a log stream
sum by (app) (
rate({app="checkout", env="prod"} |= "error" [5m])
) > 0.2 # PromQL — the same aggregation shape over a counter metric
sum by (app) (
rate(app_request_errors_total{app="checkout", env="prod"}[5m])
) > 0.2 No tiene equivalente
PromQL solo ve muestras numéricas, así que las partes de LogQL que operan sobre el texto de log en bruto simplemente no existen del otro lado. Los filtros de línea (|= "error"), los analizadores (| json, | logfmt), line_format y label_format se informan como notas, nunca se descartan en silencio.
# 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 Motor de vista previa
Una nota sobre la precisión: el traductor en el navegador es un motor de vista previa que convierte las formas habituales de consultas de métricas: selectores de etiquetas, funciones de vector de rango como rate / count_over_time, agregaciones con by / without y comparaciones de umbral. No ejecuta un analizador completo de LogQL ni de PromQL, y no puede inventar un nombre de métrica para una serie derivada de logs. Trata su resultado como un buen primer borrador para revisar, no como un reemplazo garantizado para reglas de producción.
FAQ
Tus preguntas, respondidas.
Toca una pregunta para desplegar la respuesta.
¿Qué hace el LogQL ↔ PromQL Helper?
Traduce las formas habituales de consultas de métricas entre el LogQL de Grafana Loki y el PromQL de Prometheus, en ambos sentidos. Pega una consulta, elige una dirección y el ayudante reescribe los selectores, las funciones de rango y las agregaciones al otro lenguaje, y luego marca todo aquello que no se puede convertir de forma limpia. Funciona enteramente en tu navegador, sin cuenta y sin subidas.
¿Mi consulta sale en algún momento de mi navegador?
No. El ayudante es 100 % del lado del cliente. Tus consultas se analizan y se reescriben dentro de la pestaña de tu navegador: no se envía nada a ningún servidor y no hay registro. Puedes pegar con total seguridad nombres de etiquetas internas, namespaces e identificadores de servicios.
¿Puede cualquier consulta LogQL convertirse en una consulta PromQL (y viceversa)?
No, y el ayudante lo deja claro. LogQL y PromQL comparten la misma gramática de selectores y agregaciones para las consultas de métricas, de modo que formas como rate(), count_over_time(), sum by (…) y las comparaciones de umbral se traducen bien. Pero las consultas de logs de LogQL —filtros de línea como |= "error", label_format, line_format y los analizadores de patrones o expresiones regulares— no tienen equivalente en PromQL, porque PromQL solo ve muestras ya agregadas. Esas partes se informan como notas en lugar de descartarse en silencio.
¿Qué se traslada de forma limpia entre los dos?
Los selectores de etiquetas ({app="checkout", env=~"prod|stage"}), las funciones de vector de rango (rate, irate, increase, *_over_time), los operadores de agregación (sum, avg, max, min, count, topk) con agrupación by/without y las comparaciones binarias o de umbral comparten una sintaxis casi idéntica. El ayudante los convierte directamente y deja intactos tus nombres de etiquetas y tus duraciones.
¿Por qué convertir entre LogQL y PromQL?
A menudo los equipos usan a la vez Loki y Prometheus y quieren que una métrica que han validado en uno exista en el otro; por ejemplo, convertir una tasa de errores derivada de logs en Loki en una forma de regla de grabación con la que puedan razonar frente a las métricas de Prometheus, o portar un umbral de alerta de PromQL a un equivalente en LogQL sobre un flujo de logs. El ayudante te da un primer borrador rápido más una lista clara de lo que conviene revisar dos veces.
¿Cuál es la diferencia entre LogQL y PromQL?
PromQL consulta métricas numéricas ya agregadas almacenadas en Prometheus; LogQL consulta flujos de logs en Grafana Loki y puede derivar métricas de ellos en tiempo de consulta. Ambos comparten una sintaxis de selectores de etiquetas idéntica y los mismos operadores de agregación (sum, avg, max), pero LogQL añade una tubería final de filtros y analizadores —separados por |— que no tiene contrapartida en PromQL. La diferencia es el modelo de datos: muestras numéricas frente a líneas de log en bruto.
¿Cómo convierto una consulta PromQL en LogQL?
Mantén los selectores de etiquetas tal cual: los selectores de flujo de LogQL usan la misma sintaxis {label="value"}. Después envuelve el selector en una agregación de rango como rate(), count_over_time() o sum_over_time() y añade un rango como [5m]. Como Loki no tiene series de métricas preexistentes, también tendrás que apuntar el selector a un flujo de logs real y, a menudo, añadir una etapa de análisis (| json o | logfmt) para extraer las etiquetas por las que quieras agrupar.
¿Qué funciones de PromQL no se convierten de forma limpia a LogQL?
Las funciones que asumen series instrumentadas preexistentes no se traducen directamente. histogram_quantile no tiene contrapartida directa en LogQL (necesitarías quantile_over_time con una etiqueta desempaquetada en su lugar). irate() se aproxima con rate() en LogQL, ya que Loki no tiene una función equivalente de tasa instantánea. La coincidencia binaria de vectores de PromQL sobre pares de métricas también es más limitada en LogQL, que opera sobre flujos de logs en lugar de series numéricas.
¿Está LogQL basado en PromQL?
Sí. LogQL se modeló deliberadamente sobre PromQL: los selectores de flujo usan la misma sintaxis {label="value"} y las consultas de métricas de LogQL reutilizan los mismos operadores de agregación: sum, avg, max, topk, by/without. La adición clave es la tubería de logs para filtrar y analizar líneas de log en bruto, de modo que los ingenieros ya familiarizados con PromQL pueden leer las consultas de métricas de LogQL con un ajuste mínimo.
¿Está afiliado a Grafana Labs o Prometheus?
No. Esta es una herramienta independiente y comunitaria, y no está afiliada ni respaldada por Grafana Labs ni por el proyecto Prometheus. Loki y Grafana son marcas comerciales de Raintank, Inc.; Prometheus es una marca comercial de The Linux Foundation. Los nombres de los proveedores se usan únicamente para describir los lenguajes de consulta que traduce el ayudante.
More free, private DevOps tools.
El LogQL ↔ PromQL Helper se sitúa junto al resto del clúster de observabilidad de OpsCanopy: explica una consulta PromQL o prueba tus reglas de alerta de Loki con AlertLint, todo basado en el navegador y privado de forma predeterminada.
Más en Observabilidad
29 herramientas gratuitas, todas pueden funcionar sin conexión — opscanopy.com funciona sin registro y sin subir nada.
¿Quieres el conjunto completo? Explora el directorio de herramientas completo, o lee por qué todo lo de aquí funciona enteramente del lado del cliente.
No está afiliado ni respaldado por Grafana Labs ni por el proyecto Prometheus. Loki y Grafana son marcas comerciales de Raintank, Inc.; Prometheus es una marca comercial de The Linux Foundation.