Creación de una visualización basada en SQL
- Seleccione una conexión de ClickHouse en la que ejecutar la consulta.
- De forma opcional, seleccione una Source; esto permite aplicar filtros del dashboard a su gráfico mediante la macro
$__filters. - Escriba su consulta SQL en el editor, usando parámetros de consulta y macros para integrarla con el intervalo de tiempo y los filtros del dashboard.
- Haga clic en el botón play para obtener una vista previa de los resultados y, a continuación, en Save.
Parámetros de consulta
{paramName:Type}.
Parámetros disponibles
| Parámetro | Tipo | Descripción |
|---|---|---|
{startDateMilliseconds:Int64} | Int64 | Inicio del rango de fechas del dashboard (milisegundos desde la época Unix) |
{endDateMilliseconds:Int64} | Int64 | Fin del rango de fechas del dashboard (milisegundos desde la época Unix) |
{intervalSeconds:Int64} | Int64 | Tamaño del bucket de tiempo en segundos (según la granularidad) |
{intervalMilliseconds:Int64} | Int64 | Tamaño del bucket de tiempo en milisegundos (según la granularidad) |
| Parámetro | Tipo | Descripción |
|---|---|---|
{startDateMilliseconds:Int64} | Int64 | Inicio del rango de fechas del dashboard (milisegundos desde la época Unix) |
{endDateMilliseconds:Int64} | Int64 | Fin del rango de fechas del dashboard (milisegundos desde la época Unix) |
Macros
$__ y se sustituyen antes de enviar la consulta a ClickHouse.
Macros de límites temporales
| Macro | Se expande a | Tipo de columna |
|---|---|---|
$__fromTime | toDateTime(fromUnixTimestamp64Milli({startDateMilliseconds:Int64})) | DateTime |
$__toTime | toDateTime(fromUnixTimestamp64Milli({endDateMilliseconds:Int64})) | DateTime |
$__fromTime_ms | fromUnixTimestamp64Milli({startDateMilliseconds:Int64}) | DateTime64 |
$__toTime_ms | fromUnixTimestamp64Milli({endDateMilliseconds:Int64}) | DateTime64 |
$__interval_s | {intervalSeconds:Int64} | Int64 |
Macros de filtro de tiempo
WHERE que filtra una columna según el intervalo de tiempo del dashboard.
| Macro | Descripción |
|---|---|
$__timeFilter(column) | Filtra una columna DateTime según el intervalo de tiempo del dashboard |
$__timeFilter_ms(column) | Filtra una columna DateTime64 (milisegundos) según el intervalo de tiempo del dashboard |
$__dateFilter(column) | Filtra una columna Date según el intervalo de tiempo del dashboard |
$__dateTimeFilter(dateCol, timeCol) | Filtra usando columnas Date y DateTime separadas |
$__dt(dateCol, timeCol) | Alias de $__dateTimeFilter |
$__timeFilter(TimestampTime):
Macros de intervalos de tiempo
SELECT y GROUP BY para gráficos de series temporales. Solo están disponibles para las visualizaciones Line y Stacked-bar.
| Macro | Descripción |
|---|---|
$__timeInterval(column) | Agrupa una columna DateTime en intervalos de intervalSeconds |
$__timeInterval_ms(column) | Agrupa una columna DateTime64 en intervalos de intervalMilliseconds |
$__timeInterval(TimestampTime):
Macro de filtro del dashboard
| Macro | Descripción |
|---|---|
$__filters | Se sustituye por las condiciones de filtro a nivel de dashboard (requiere que haya una Source seleccionada) |
$__filters se expande a las condiciones WHERE de SQL correspondientes. Cuando no hay ninguna Source seleccionada o no se aplica ningún filtro, se expande a (1=1), por lo que siempre es seguro incluirlo en una cláusula WHERE.
Cómo se representan los resultados de la consulta
Gráficos de líneas y de barras apiladas
| Rol | Tipo de columna | Descripción |
|---|---|---|
| Timestamp | Primera columna Date o DateTime | Se utiliza como eje X. |
| Valor de la serie | Todas las columnas numéricas | Cada columna numérica se representa como una serie independiente. Suelen ser valores agregados. |
| Nombres de grupo | Columnas String, Map o Array | Opcional. Las filas con distintos valores de grupo se representan como series independientes. |
Gráfico circular
| Función | Tipo de columna | Descripción |
|---|---|---|
| Valor del sector | Primera columna numérica | Determina el tamaño de cada sector. |
| Etiqueta del sector | Columnas String, Map o Array | Opcional. Cada valor único pasa a ser una etiqueta de sector. |
Gráfico numérico
| Función | Tipo de columna | Descripción |
|---|---|---|
| Número | Primera columna numérica | Se muestra el valor de la primera fila de la primera columna numérica. |
Gráfico de tabla
Ejemplos
Acceso requerido a las tablas del sistemaDeberá especificar
otel_v2.otel_logs o otel_v2.otel_traces si ejecuta los siguientes ejemplos en play-clickstack.clickhouse.com.Gráfico de líneas — recuento de logs a lo largo del tiempo por servicio
ts(DateTime) se usa como la marca de tiempo del eje X.count(numeric) se representa como el valor de la serie.ServiceName(cadena) crea una línea independiente para cada servicio.
Gráfico de líneas — uso de macros
Gráfico de barras apiladas — recuento de errores por severidad
Gráfico de tabla — los 10 endpoints más lentos
Gráfico circular — distribución de solicitudes por servicio
request_count(numérico) determina el tamaño de cada segmento.ServiceName(cadena) identifica cada segmento.
Gráfico numérico — recuento total de errores
total_errors de la primera fila.
Notas
- Las visualizaciones basadas en SQL se ejecutan con el modo
readonlyactivado; solo se permiten consultasSELECT. - Las visualizaciones basadas en SQL deben consistir en una única consulta SQL; no se admiten varias consultas.
- El editor SQL proporciona sugerencias de autocompletado tanto para los parámetros de consulta como para las macros.
- Se debe seleccionar un source para aplicar los filtros del dashboard a las visualizaciones basadas en SQL. El source debe coincidir con la tabla consultada para que el filtrado sea preciso.