pg_stat_ch,
a extensão de código aberto do Postgres que envia contadores por instrução para o
ClickHouse Cloud. A telemetria é normalizada no Postgres antes de sair
do banco de dados — os literais são removidos e substituídos por marcadores, para que os
valores exatos consultados por você nunca entrem no fluxo de telemetria.
Abrir o Query insights
- Uma Visão geral que reúne, em uma única tela, uma verificação da integridade do banco de dados.
- Uma tabela Padrões lentos que classifica cada padrão de consulta executado pelo seu banco de dados, ordenada pelo critério que você quiser investigar.
- Um painel Consultas recentes que lista execuções individuais em ordem cronológica inversa.
- Um painel lateral de detalhes que agrega todos os contadores de um único padrão.
Visão geral
| Painel | O que ele mostra |
|---|---|
| Consultas / s | Volume de consultas normalizado como uma taxa na janela selecionada. |
| Latência da consulta | Média, p50, p95 e p99 em um único gráfico, para que você veja quando a cauda se distancia da mediana. |
| Detalhamento das operações | Um gráfico de rosca com a composição real da sua carga de trabalho entre SELECT, INSERT, UPDATE e outras operações. |
| Linhas retornadas / afetadas | Total de linhas movimentadas pela carga de trabalho na janela. |
| Taxa de acerto do buffer | Um gráfico de rosca comparando blocos compartilhados atendidos pelo buffer com blocos compartilhados lidos, com o tempo total de CPU na legenda. |
| Erros | Contagem total de erros, discriminada ao longo do tempo. |
Padrões lentos
Ordene pelo que você suspeita
- Tempo total de execução — onde o banco de dados gastou mais tempo decorrido.
- Tempo de CPU — padrões com uso intensivo de computação.
- Chamadas — padrões de alta frequência.
- Erros — falhas recorrentes.
- Latência média / P50 / P95 / P99 / Máx — outliers, por percentil.
- Linhas retornadas, Blocos lidos, Blocos em cache, Bytes de WAL — padrões que movimentaram mais dados pelo engine, pelo cache ou pelo log de gravação antecipada.
Restrinja a tabela
- Banco de dados
- Usuário
- Operação (
SELECT,INSERT,UPDATE,DELETE, …) - Aplicação — o
application_nameda string de conexão
sales”
vira dois menus suspensos. Os valores de filtro são preenchidos automaticamente com base no que sua
instância realmente executou.
Consultas recentes
Painel lateral de detalhes
- Padrão de consulta — o SQL normalizado com literais substituídos por
$1,$2, … e um botão para copiar para a área de transferência. - Uso agregado de recursos — uma grade de 13 cartões de estatísticas com total de chamadas, latência média/P95/P99/máxima, tempo total de execução, linhas retornadas, taxa de acerto de cache, blocos lidos, blocos atendidos pelo cache, tempo de CPU, bytes de WAL e erros.
- Contexto da consulta — o banco de dados, usuário, operação e aplicação de onde esse padrão se originou.
- Execuções notáveis — erros, execuções excepcionalmente lentas e execuções com grande volume de resultados, exibidas antes da lista completa das recentes.
- Execuções recentes — as execuções individuais do mesmo padrão, com contadores por execução.
Contadores por execução
- Blocos compartilhados — leituras e acertos sempre exibidos; escritas e blocos alterados exibidos quando diferentes de zero.
- Operações de blocos locais e temporários — valores diferentes de zero nas operações de blocos temporários indicam que uma operação de sort ou hash fez spill para disco.
- Tempo de leitura / gravação — tempo de E/S, separado do tempo de CPU.
- Tempo de CPU — em modo usuário e sistema, separadamente.
- Workers paralelos — planejados vs. efetivamente iniciados.
- JIT — tempo total de compilação JIT e número de funções.
- WAL — bytes e número de registros.
API do Query Insights
Como funciona
Normalizado no Postgres, antes de sair pela rede
pg_stat_ch intercepta a fase de parse/análise, substitui cada literal por um
placeholder ($1, $2, …) e armazena em cache o padrão resultante em uma
LRU por backend indexada por queryid. Quando o executor conclui a
instrução, é esse padrão em cache que é associado ao evento. A
instrução exata com valores nunca sai do banco de dados.
Sem atrapalhar o banco de dados
Eventos brutos, não agregados
pg_stat_ch emite um evento bruto para cada instrução executada (de nível superior e
aninhada), sujeito à amostragem. Cada percentil, classificação e detalhamento
na UI é uma consulta ao ClickHouse sobre o mesmo fluxo de eventos.
O mesmo engine que nossos clientes usam
Código aberto
pg_stat_ch é licenciado sob a Apache 2.0. Execute-o em qualquer Postgres e envie para qualquer
ClickHouse. O código-fonte e as issues estão em
github.com/clickhouse/pg_stat_ch.
- Dashboard de monitoramento — gráficos integrados de recursos e atividade
- endpoint do Prometheus — colete métricas no nível do host na sua própria stack de observabilidade
- OpenAPI do Managed Postgres — consulte Padrões lentos e execuções recentes de forma programática
- Extensões — as extensões disponíveis nas instâncias do Managed Postgres
pg_stat_chno GitHub — a extensão de código aberto que dá suporte ao Query Insights