Criando uma visualização baseada em SQL
- Selecione uma conexão do ClickHouse para executar a consulta.
- Opcionalmente, selecione uma Source — isso permite aplicar filtros no nível do dashboard ao seu gráfico por meio da macro
$__filters. - Escreva sua consulta SQL no editor, usando parâmetros de consulta e macros para integrá-la ao intervalo de tempo e aos filtros do dashboard.
- Clique no botão play para visualizar os resultados e depois em Save.
Parâmetros de consulta
{paramName:Type}.
Parâmetros disponíveis
| Parâmetro | Tipo | Descrição |
|---|---|---|
{startDateMilliseconds:Int64} | Int64 | Início do intervalo de datas do dashboard (milissegundos desde epoch) |
{endDateMilliseconds:Int64} | Int64 | Fim do intervalo de datas do dashboard (milissegundos desde epoch) |
{intervalSeconds:Int64} | Int64 | Tamanho do bucket de tempo em segundos (com base na granularidade) |
{intervalMilliseconds:Int64} | Int64 | Tamanho do bucket de tempo em milissegundos (com base na granularidade) |
| Parâmetro | Tipo | Descrição |
|---|---|---|
{startDateMilliseconds:Int64} | Int64 | Início do intervalo de datas do dashboard (milissegundos desde epoch) |
{endDateMilliseconds:Int64} | Int64 | Fim do intervalo de datas do dashboard (milissegundos desde epoch) |
Macros
$__ e substituídas antes de a consulta ser enviada ao ClickHouse.
Macros de limite de tempo
| Macro | Expande para | Tipo da coluna |
|---|---|---|
$__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 tempo
WHERE que filtra uma coluna com base no intervalo de tempo do dashboard.
| Macro | Description |
|---|---|
$__timeFilter(column) | Filtra uma coluna DateTime com base no intervalo do dashboard |
$__timeFilter_ms(column) | Filtra uma coluna DateTime64 (milissegundos) com base no intervalo do dashboard |
$__dateFilter(column) | Filtra uma coluna Date com base no intervalo do dashboard |
$__dateTimeFilter(dateCol, timeCol) | Filtra usando colunas Date e DateTime separadas |
$__dt(dateCol, timeCol) | Alias de $__dateTimeFilter |
$__timeFilter(TimestampTime):
Macros de intervalo de tempo
timestamp em intervalos que correspondem à granularidade do dashboard. Elas geralmente são usadas nas cláusulas SELECT e GROUP BY para gráficos de séries temporais. Estão disponíveis apenas para visualizações de linha e de barras empilhadas.
| Macro | Descrição |
|---|---|
$__timeInterval(column) | Agrupa uma coluna DateTime em intervalos de intervalSeconds |
$__timeInterval_ms(column) | Agrupa uma coluna DateTime64 em intervalos de intervalMilliseconds |
$__timeInterval(TimestampTime):
Macro de filtro do dashboard
| Macro | Descrição |
|---|---|
$__filters | Substituído pelas condições de filtro no nível do dashboard (requer que uma Source esteja selecionada) |
$__filters se expande para as condições SQL WHERE correspondentes. Quando nenhuma Source é selecionada ou nenhum filtro é aplicado, ele se expande para (1=1), portanto é sempre seguro incluí-lo em uma cláusula WHERE.
Como os resultados da consulta são exibidos nos gráficos
Gráficos de linha e de barras empilhadas
| Papel | Tipo de coluna | Descrição |
|---|---|---|
| Timestamp | Primeira coluna Date ou DateTime | Usada como eixo x. |
| Valor da série | Todas as colunas numéricas | Cada coluna numérica é plotada como uma série separada. Normalmente, são valores agregados. |
| Nomes de grupo | Colunas String, Map ou Array | Opcional. Linhas com valores de grupo diferentes são plotadas como séries separadas. |
Gráfico de pizza
| Função | Tipo de coluna | Descrição |
|---|---|---|
| Valor da fatia | Primeira coluna numérica | Determina o tamanho de cada fatia. |
| Rótulo da fatia | colunas String, map ou Array | Opcional. Cada valor distinto se torna o rótulo de uma fatia. |
Gráfico numérico
| Função | Tipo de coluna | Descrição |
|---|---|---|
| Número | Primeira coluna numérica | É exibido o valor da primeira linha da primeira coluna numérica. |
Tabela
Exemplos
Acesso obrigatório à tabela do sistemaVocê precisará especificar
otel_v2.otel_logs ou otel_v2.otel_traces se executar os exemplos a seguir em play-clickstack.clickhouse.com.Gráfico de linhas — contagem de logs ao longo do tempo por serviço
ts(DateTime) é usado como timestamp do eixo X.count(numérico) é exibido como o valor da série.ServiceName(string) cria uma linha separada para cada serviço.
Gráfico de linhas — usando macros
Gráfico de barras empilhadas — contagem de erros por nível de severidade
Gráfico de tabela — 10 endpoints mais lentos
gráfico de pizza — distribuição de solicitações por serviço
request_count(numérico) determina o tamanho de cada segmento.ServiceName(string) identifica cada segmento.
Gráfico numérico — contagem total de erros
total_errors da primeira linha é exibido.
Observações
- As visualizações baseadas em SQL são executadas com o modo
readonlyativado — somente consultasSELECTsão permitidas. - As visualizações baseadas em SQL devem conter exatamente uma única consulta SQL - várias consultas não são compatíveis.
- O editor SQL fornece sugestões de preenchimento automático tanto para parâmetros de consulta quanto para macros.
- É necessário selecionar uma source para aplicar os filtros do dashboard às visualizações baseadas em SQL. A source deve corresponder à tabela consultada, para garantir uma filtragem precisa.