Saltar al contenido principal
Cualquier consulta puede ejecutarse con el plugin de ClickHouse. El constructor de consultas es una opción práctica para las consultas más simples, pero para las más complejas tendrás que usar el SQL Editor. Todas las consultas del constructor de consultas tienen un tipo de consulta y requieren seleccionar al menos una columna. Los tipos de consulta disponibles son:
  • Tabla: el tipo de consulta más sencillo para mostrar datos en formato de tabla. Funciona bien como opción general tanto para consultas simples como para consultas complejas que incluyen funciones de agregación.
  • Logs: optimizado para crear consultas de logs. Funciona mejor en la vista Explore con los valores predeterminados configurados.
  • Series temporales: ideal para crear consultas de series temporales. Permite seleccionar una columna de tiempo específica y añadir funciones de agregación.
  • Trazas: optimizado para buscar y visualizar trazas. Funciona mejor en la vista Explore con los valores predeterminados configurados.
  • SQL Editor: el SQL Editor puede usarse cuando necesitas un control total sobre la consulta. En este modo, se puede ejecutar cualquier consulta SQL.

Tipos de consulta

La configuración Tipo de consulta cambiará el diseño del constructor de consultas para ajustarlo al tipo de consulta que se esté creando. El tipo de consulta también determina qué panel se utiliza al visualizar los datos.

Tabla

El tipo de consulta más flexible es la consulta de tabla. Sirve como opción general para los demás constructores de consultas, diseñados para manejar consultas simples y de agregación.
FieldDescription
Builder ModeLas consultas simples excluyen Aggregates y Group By, mientras que las consultas de agregación incluyen estas opciones.
ColumnsLas columnas seleccionadas. En este campo se puede escribir Raw SQL para permitir funciones y alias de columnas.
AggregatesUna lista de funciones de agregación. Permite definir valores personalizados para la función y la columna. Solo es visible en el modo Aggregate.
Group ByUna lista de expresiones GROUP BY. Solo es visible en el modo Aggregate.
Order ByUna lista de expresiones ORDER BY.
LimitAñade una sentencia LIMIT al final de la consulta. Si se establece en 0, se omitirá. Algunas visualizaciones pueden requerir que se establezca en 0 para mostrar todos los datos.
FiltersUna lista de filtros que se aplicarán en la cláusula WHERE.
Este tipo de consulta mostrará los datos en forma de tabla.

Logs

El tipo de consulta de logs ofrece un constructor de consultas centrado en consultar datos de logs. Los valores predeterminados pueden configurarse en la configuración de logs de la fuente de datos para que el constructor de consultas se cargue previamente con una base de datos/tabla y columnas predeterminadas. OpenTelemetry también puede habilitarse para seleccionar automáticamente las columnas según una versión del esquema. Los filtros de Tiempo y Nivel se agregan de forma predeterminada, junto con un ORDER BY para la columna Tiempo. Estos filtros están vinculados a sus respectivos campos y se actualizarán a medida que cambien las columnas. El filtro de Nivel se excluye del SQL de forma predeterminada; al cambiarlo desde la opción IS ANYTHING, se habilitará. El tipo de consulta de logs admite enlaces de datos.
CampoDescripción
Usar OTelHabilita las columnas de OpenTelemetry. Sobrescribirá las columnas seleccionadas para usar las columnas definidas por la versión del esquema de OTel seleccionada (deshabilita la selección de columnas).
ColumnasColumnas adicionales que se añadirán a las filas de log. En este campo se puede escribir SQL directamente para permitir funciones y alias de columnas.
TiempoLa columna principal de marca de tiempo del log. Mostrará tipos de datos similares a tiempo, pero permite valores/funciones personalizados.
Nivel de logOpcional. El nivel o la severidad del log. Los valores suelen ser INFO, error, Debug, etc.
MensajeEl contenido del mensaje del log.
ORDER BYUna lista de expresiones ORDER BY.
LímiteAñade una sentencia LIMIT al final de la consulta. Si se establece en 0, se excluirá, pero esto no se recomienda para conjuntos de datos de logs grandes.
FiltrosUna lista de filtros que se aplicarán en la cláusula WHERE.
Filtro de mensajeUn campo de texto para filtrar logs cómodamente mediante LIKE %value%. Se excluye cuando el campo está vacío.

Este tipo de consulta mostrará los datos en el panel de logs, junto con un panel de histograma de logs en la parte superior. Las columnas adicionales seleccionadas en la consulta pueden verse en la fila de log expandida:

Series temporales

El tipo de consulta de series temporales es similar a tabla, pero se centra en datos de series temporales. Ambas vistas son prácticamente iguales, con estas diferencias principales:
  • Un campo Time específico.
  • En Aggregate mode, se aplica automáticamente una macro de intervalo de tiempo junto con un Group By para el campo Time.
  • En Aggregate mode, el campo “Columns” se oculta.
  • Se añaden automáticamente un filtro de rango temporal y Order By para el campo Time.
¿Faltan datos en tu visualización?En algunos casos, el panel de series temporales puede parecer recortado porque el límite predeterminado es 1000.Prueba a eliminar la cláusula LIMIT estableciéndola en 0 (si tu conjunto de datos lo permite).
CampoDescripción
Builder ModeLas consultas simples excluyen Aggregates y Group By, mientras que las consultas agregadas incluyen estas opciones.
TimeLa columna de tiempo principal de la consulta. Mostrará tipos de datos temporales, pero también permite valores y funciones personalizados.
ColumnsLas columnas seleccionadas. En este campo se puede escribir Raw SQL para permitir funciones y alias de columna. Solo es visible en Simple mode.
AggregatesUna lista de funciones de agregación. Permite valores personalizados para la función y la columna. Solo es visible en Aggregate mode.
Group ByUna lista de expresiones GROUP BY. Solo es visible en Aggregate mode.
Order ByUna lista de expresiones ORDER BY.
LimitAñade una sentencia LIMIT al final de la consulta. Si se establece en 0, se omitirá; esto se recomienda para algunos conjuntos de datos de series temporales a fin de mostrar la visualización completa.
FiltersUna lista de filtros que se aplicarán en la cláusula WHERE.
Este tipo de consulta mostrará los datos en el panel de series temporales.

Trazas

El tipo de consulta de trazas ofrece un constructor de consultas para buscar y ver trazas fácilmente. Está diseñado para datos de OpenTelemetry, pero se pueden seleccionar columnas para mostrar trazas a partir de un esquema distinto. Los valores predeterminados se pueden configurar en la configuración de trazas de la fuente de datos para permitir que el constructor de consultas se precargue con una base de datos/tabla y columnas predeterminadas. Si se configuran valores predeterminados, la selección de columnas aparecerá contraída de forma predeterminada. OpenTelemetry también se puede habilitar para seleccionar automáticamente las columnas según una versión del esquema. Se agregan filtros predeterminados con el objetivo de mostrar solo spans de nivel superior. También se incluye un ORDER BY para las columnas Time y Duration Time. Estos filtros están vinculados a sus respectivos campos y se actualizarán a medida que cambien las columnas. El filtro Service Name está excluido del SQL de forma predeterminada; si se cambia la opción IS ANYTHING, se habilitará. El tipo de consulta de trazas admite enlaces de datos.
CampoDescripción
Modo de trazaCambia la consulta de Búsqueda de trazas a búsqueda por Trace ID.
Usar OTelHabilita las columnas de OpenTelemetry. Sobrescribirá las columnas seleccionadas para usar las columnas definidas por la versión del esquema OTel seleccionada (deshabilita la selección de columnas).
Columna de Trace IDEl ID de la traza.
Columna de Span IDID del span.
Columna de Parent Span IDID del span padre. Normalmente está vacío para las trazas de nivel superior.
Columna de Service NameNombre del servicio.
Columna de Operation NameNombre de la operación.
Columna de Start TimeLa columna de tiempo principal para el trace span. El momento en que comenzó el span.
Columna de Duration TimeLa duración del span. De forma predeterminada, Grafana espera que sea un valor de coma flotante en milisegundos. Se aplica automáticamente una conversión mediante la lista desplegable Duration Unit.
Duration UnitLa unidad de tiempo utilizada para la duración. Nanosegundos de forma predeterminada. La unidad seleccionada se convertirá a un valor de coma flotante en milisegundos, tal como requiere Grafana.
Columna de TagsTags del span. Exclúyela si no usas un esquema basado en OTel, ya que espera un tipo de columna Map específico.
Columna de Service TagsTags del servicio. Exclúyela si no usas un esquema basado en OTel, ya que espera un tipo de columna Map específico.
Order ByUna lista de expresiones ORDER BY.
LimitAgrega una sentencia LIMIT al final de la consulta. Si se establece en 0, se excluirá, pero esto no se recomienda para conjuntos de datos de trazas grandes.
FiltrosUna lista de filtros que se aplicarán en la cláusula WHERE.
Trace IDEl Trace ID por el que filtrar. Solo se usa en el modo Trace ID y al abrir un enlace de datos de Trace ID.
Este tipo de consulta mostrará los datos con la vista de tabla para el modo Búsqueda de trazas y con el panel de trazas para el modo Trace ID.

SQL Editor

Para las consultas que sean demasiado complejas para el constructor de consultas, puede usar el SQL Editor. Esto le da control total sobre la consulta, ya que le permite escribir y ejecutar ClickHouse SQL directamente. El SQL Editor se puede abrir seleccionando “SQL Editor” en la parte superior del editor de consultas. Las funciones macro también se pueden usar en este modo. Puede cambiar entre tipos de consulta para obtener la visualización que mejor se adapte a su consulta. Este cambio también surte efecto en la vista de dashboard, especialmente con datos de series temporales. Los enlaces de datos de Grafana pueden usarse para enlazar con nuevas consultas. Esta función se ha habilitado en el plugin de ClickHouse para enlazar una traza con los logs y viceversa. Funciona mejor con OpenTelemetry configurado tanto para logs como para trazas en la configuración de la fuente de datos
Ejemplo de enlaces de trazas en una tabla
Ejemplo de enlaces de trazas en logs
Puedes crear un enlace de datos seleccionando una columna llamada traceID en tu consulta. Este nombre no distingue entre mayúsculas y minúsculas y admite añadir un guion bajo antes de “ID”. Por ejemplo, traceId, TraceId, TRACE_ID y tracE_iD serían válidos. Si OpenTelemetry está habilitado en una consulta de logs o traza, se incluirá automáticamente una columna de ID de traza. Al incluir una columna de ID de traza, los enlaces “Ver traza” y “Ver logs” se añadirán a los datos.

Funciones de enlace

Con los enlaces de datos disponibles, puedes abrir trazas y logs con el ID de traza proporcionado. View Trace” abrirá un panel dividido con la traza, y “View Logs” abrirá una consulta de logs filtrada por el ID de traza. Si se hace clic en el enlace desde un dashboard en lugar de la vista Explore, el enlace se abrirá en una pestaña nueva de la vista Explore. Es necesario tener valores predeterminados configurados tanto para logs como para traces al cambiar entre tipos de consulta (de logs a trazas y de trazas a logs). Los valores predeterminados no son necesarios al abrir un enlace del mismo tipo de consulta, ya que basta con copiar la consulta.
Ejemplo de visualización de una traza (panel derecho) desde una consulta de logs (panel izquierdo)

Macros

Las macros son una forma sencilla de añadir SQL dinámico a la consulta. Antes de que una consulta se envíe al servidor de ClickHouse, el plugin expandirá la macro y la sustituirá por la expresión completa. Las consultas tanto del SQL Editor como del constructor de consultas pueden usar macros.

Uso de macros

Las macros pueden incluirse en cualquier parte de la consulta, varias veces si es necesario. A continuación se muestra un ejemplo de uso de la macro $__timeFilter: Entrada:
SELECT log_time, log_message
FROM logs
WHERE $__timeFilter(log_time)
Resultado final de la consulta:
SELECT log_time, log_message
FROM logs
WHERE log_time >= toDateTime(1415792726) AND log_time <= toDateTime(1447328726)
En este ejemplo, el intervalo de tiempo del dashboard de Grafana se aplica a la columna log_time. El plugin también admite la notación con llaves {}. Use esta notación cuando se necesiten consultas dentro de los parámetros.

Lista de macros

Esta es una lista de todas las macros disponibles en el plugin:
MacroDescripciónEjemplo de salida
$__dateFilter(columnName)Se reemplaza por un filtro de rango de tiempo en la columna proporcionada, usando el intervalo de tiempo del panel de Grafana como Date.columnName >= toDate('2022-10-21') AND columnName <= toDate('2022-10-23')
$__timeFilter(columnName)Se reemplaza por un filtro de rango de tiempo en la columna proporcionada, usando el intervalo de tiempo del panel de Grafana como DateTime.columnName >= toDateTime(1415792726) AND time <= toDateTime(1447328726)
$__timeFilter_ms(columnName)Se reemplaza por un filtro de rango de tiempo en la columna proporcionada, usando el intervalo de tiempo del panel de Grafana como DateTime64.columnName >= fromUnixTimestamp64Milli(1415792726123) AND columnName <= fromUnixTimestamp64Milli(1447328726456)
$__dateTimeFilter(dateColumn, timeColumn)Abreviatura que combina $__dateFilter() y $__timeFilter() usando columnas Date y DateTime independientes. Alias: $__dt()$__dateFilter(dateColumn) AND $__timeFilter(timeColumn)
$__fromTimeSe reemplaza por la hora de inicio del intervalo del panel de Grafana convertida a DateTime.toDateTime(1415792726)
$__fromTime_msSe reemplaza por la hora de inicio del intervalo del panel convertida a DateTime64.fromUnixTimestamp64Milli(1415792726123)
$__toTimeSe reemplaza por la hora de finalización del intervalo del panel de Grafana convertida a DateTime.toDateTime(1447328726)
$__toTime_msSe reemplaza por la hora de finalización del intervalo del panel convertida a DateTime64.fromUnixTimestamp64Milli(1447328726456)
$__timeInterval(columnName)Se reemplaza por una función que calcula el intervalo en función del tamaño de la ventana en segundos.toStartOfInterval(toDateTime(columnName), INTERVAL 20 second)
$__timeInterval_ms(columnName)Se reemplaza por una función que calcula el intervalo en función del tamaño de la ventana en milisegundos.toStartOfInterval(toDateTime64(columnName, 3), INTERVAL 20 millisecond)
$__interval_sSe reemplaza por el intervalo del dashboard en segundos.20
$__conditionalAll(condition, $templateVar)Se reemplaza por el primer parámetro cuando la variable de plantilla del segundo parámetro no selecciona todos los valores. Se reemplaza por 1=1 cuando la variable de plantilla selecciona todos los valores.condition o 1=1
Última modificación el 10 de junio de 2026