Skip to main content

Correção do índice de texto para filtros de disjunção em coluna Map

Demo por @knudtty
Aaron se deparou com isso enquanto ajudava a depurar um relatório cujas consultas sobre um atributo de uma coluna Map estavam inesperadamente lentas. A pessoa já havia contornado o problema por conta própria, adicionando uma coluna materializada e um filtro de Bloom, o que não deveria ser necessário, dadas as otimizações já existentes para atributos de Map. Descobriu-se que filtrar vários valores possíveis para um atributo de Map usava a função hasAny — na prática, uma verificação de disjunção de array. Por exemplo, para corresponder atributos de log, como um ID de usuário, com uma lista de valores. Isso não acionava o índice de texto em versões do ClickHouse anteriores à 26.5. A correção reescreve essa disjunção como um conjunto de verificações de igualdade unidas por OR e agrupadas entre parênteses, o que ativa corretamente o índice. Aaron confirmou via EXPLAIN que a consulta reescrita agora usa o skip index como esperado. A maioria dos usuários já está na 26.5 ou em versões posteriores, mas, para quem ainda não chegou lá, isso mantém essas consultas rápidas enquanto isso. PRs relacionadas: #2643 feat: reformular getAllKeyValues e adicionar filtros preenchidos a partir de índices de texto

Dados de perfilamento no ClickCannon

Demonstração por @SpencerTorres
Recentemente publicamos um post no blog sobre o ClickCannon, a ferramenta para gerar dados sintéticos e fazer benchmarking do ClickHouse. Spencer agora adicionou um sinal de perfilamento ao suporte já existente para logs, métricas e traces. É possível gerar dados de perfilamento com profundidade de pilha configurável, seja simulando-os em tempo real ou lendo-os do disco, e fazer a ingestão deles da mesma forma que os outros sinais: basta apontar o ClickCannon para uma tabela de perfis e ele começa a gerar linhas. Os payloads de perfil se mostraram consideravelmente maiores do que os dos outros sinais, então o ajuste de quantas chaves são adicionadas por amostra e a validação do throughput em relação ao tamanho da instância ainda estão em andamento. Conseguir gerar esses dados em volume permite que a equipe comece a otimizar o schema e estabeleça uma referência inicial, o que se conecta ao esforço mais amplo de dar suporte a dados de perfilamento e à sua visualização em todo o ClickStack. Spencer também deu uma primeira olhada em como renderizar frames de perfil no visualizador de logs do ClickStack.

Gráficos de barras

Demonstração de @pulpdrew
Os gráficos de barras chegaram, inspirados por uma PR que havia sido aberta meses atrás e acabou ficando desatualizada durante um rebase. Agora eles são compatíveis com todos os lugares em que gráficos aparecem no ClickStack: dashboards, o construtor de dashboards do MCP e outros. Como os gráficos de barras agora cobrem o mesmo caso de uso que os gráficos de linhas cobriam para comparações em um dado momento, os gráficos de linhas foram renomeados para séries temporais para deixar essa distinção mais clara. Os gráficos de barras oferecem suporte a um limite de séries, para que você possa controlar quantas barras aparecem quando há um group by de alta cardinalidade, e a um ORDER BY personalizado, para que você possa ordenar pela métrica mais importante em vez da ordenação padrão. PRs relacionadas: #2606 feat: Add categorical bar chart display type, #2618 feat: Allow custom order by on categorical (pie/bar) charts

Contribuições da comunidade

Demo de @vinzee e @zoov-xavier
Nesta semana, recebemos algumas boas contribuições da comunidade durante a revisão de PRs. De @vinzee: um botão de referência de sintaxe ao lado do toggle Lucene/SQL na barra de busca, oferecendo aos usuários exemplos rápidos, no próprio app, da sintaxe da consulta e das opções disponíveis, sem precisar sair da página. De @zoov-xavier: as pílulas de filtro agora aceitam valores inseridos manualmente. Antes, só era possível escolher em uma lista suspensa de valores amostrados, o que significava que você não podia filtrar por um valor que ainda não tivesse sido carregado nessa amostra. Agora, basta digitar o valor desejado e pressionar Enter. PRs relacionados: #2381 Adicionar referência de sintaxe da consulta ao campo de busca, #2471 feat(search): permitir valores de texto livre ao editar uma pílula de filtro

Anotações de alertas em gráficos

Demo de @teeohhem
Isso surgiu a partir de uma solicitação de um cliente para ver anotações nos gráficos quando alertas disparam. Há um novo toggle Show alert annotations, desativado por padrão, que marca exatamente quando um alerta disparou e quando foi resolvido diretamente no gráfico. Se um alerta estava em disparo fora do intervalo de tempo visível no momento, um marcador aparece na borda esquerda do gráfico para indicar que ele já estava ativo antes do início da janela, e as anotações são atualizadas em tempo real à medida que os alertas disparam e são resolvidos. Tom implementou isso com um padrão reutilizável de anotações, então adicionar novos tipos de anotação depois, como lançamentos ou eventos do Kubernetes, deve ser simples usando a mesma abordagem. PRs relacionadas: #2605 feat(dashboards): anotações de disparo/recuperação de alertas em gráficos de tiles, #2616 fix(dashboards): melhora da visibilidade das anotações de alertas em gráficos de tiles

Event patterns, refinamento de tiles e ações para séries de linha

Demo por @brandon-pereira
Event patterns agora são um tipo oficial de tile do dashboard. Você pode criar um tile de padrão e fornecer uma cláusula WHERE ou uma expressão de padrão — por exemplo, filtrando por nome do serviço ou texto de severidade — para destacar padrões recorrentes de imediato. Brandon também melhorou a quebra de texto das visualizações em tiles pequenos, então títulos longos agora se distribuem em várias linhas com reticências, em vez de serem cortados de forma estranha, além de uma apresentação mais limpa dos botões de ação do tile: em tiles pequenos, eles são recolhidos em um menu de contexto usando uma container query de CSS e voltam a aparecer diretamente no tile quando ele é redimensionado para um tamanho maior. Também foi corrigido um caso em que fechar as configurações de exibição de um tile sem salvar podia descartar suas alterações silenciosamente; agora o sistema avisa corretamente antes de perder edições. Por fim, em resposta ao feedback dos usuários, agora você pode clicar em uma série de linha para copiar o valor dela ou focar apenas nessa linha, além da ação de Busca já existente. Brandon também está no meio de um upgrade para o Recharts v3, com o objetivo de corrigir o corte de tooltips em tabelas com muitos grupos. PRs relacionadas: #2604 feat: adicionar Event patterns como um tipo de tile do dashboard, #2596 fix(charts): usar reticências em várias linhas para títulos de tiles do dashboard, #2597 fix: rastrear configurações de exibição/heatmap como alteradas para o modal de alterações não salvas, #2611 feat(charts): ações de drill-down por série, drill-in em nova aba e foco sincronizado com a busca

Estilo do dashboard e do service map

Demo por @elizabetdev
Uma série de melhorias de estilo voltadas à usabilidade — pequenas individualmente, mas que, no conjunto, deixam a experiência visivelmente mais limpa. Nos dashboards, os tiles editáveis tinham cores de cabeçalho inconsistentes no modo claro — alguns cinza, outros brancos — e isso agora foi padronizado com uma linha divisória limpa abaixo do cabeçalho. As ações dos tiles exibidas apenas ao passar o mouse também foram reposicionadas para evitar sobreposição com títulos em cartões pequenos e responsivos, e os gráficos agora permitem redefinir o zoom. O service map recebeu um tratamento semelhante: os controles agora se adaptam ao modo de cores, permanecendo claros no modo claro e escuros no modo escuro, em vez de sempre usarem preto por padrão; as legendas identificam com mais clareza latência, taxa de erro e throughput; e agora você pode clicar em um serviço para focá-lo e clicar novamente para remover o foco e voltar à visualização completa. PRs relacionadas: #2592 Refinamento do estilo dos dashboard tiles e do layout do cabeçalho, #2601 feat(service-map): alternância de cores das métricas e refinamento do popover
Última modificação em 23 de julho de 2026