Referência da tabela de telemetria
Beta
Esse recurso está em Beta. Administradores do Workspace podem controlar o acesso a este recurso na página **Pré-visualizações**. Consulte Gerenciar prévias do Databricks.
Esta página documenta as tabelas que o Lakebase grava em seu esquema do Unity Catalog assim que você configura a observabilidade para um projeto. O Percepções e o Genie leem esses mesmos dados e, como eles chegam ao seu próprio Unity Catalog, você pode consultá-los diretamente com qualquer ferramenta do Databricks.
Este é um recurso Beta. Os nomes de tabelas e colunas podem mudar antes da disponibilidade geral.
O que é capturado
O Lakebase captura os sinais que um DBA experiente procuraria, armazenando-os em algumas tabelas que você pode query diretamente assim que forem exportadas:
O que é capturado | Onde chega |
|---|---|
Sessões ativas e eventos de espera |
|
Planos de query e estatísticas de execução por query |
|
Alterações de esquema: o que mudou, quando e por quem |
|
Estatísticas do banco de dados: tamanho, linhas lidas e modificadas, e contagens de sessão |
|
Uso de recursos de compute: CPU, memória, cache, conexões |
|
Mensagens de log brutas do Postgres, incluindo o erro por trás de uma falha |
|
As percepções e o Genie leem esses dados para basear suas respostas no que realmente aconteceu em seu banco de dados, e as mesmas tabelas alimentam os painéis de observabilidade prontos para uso. O restante desta página documenta cada coluna em cada tabela.
Colunas comuns a cada tabela
Cada tabela abaixo inclui estas colunas, que identificam a origem de uma linha:
Coluna | Tipo | Descrição |
|---|---|---|
| String | O projeto Lakebase de onde a linha veio. |
| String | O branch de onde a linha veio. |
| String | O Endpoint de compute de onde a linha veio. |
| String | A instância de compute específica. Isso muda quando um compute escala para zero e é retomado. |
| Timestamp | Quando a linha foi registrada. |
| String | O modo do compute no momento, por exemplo, leitura-gravação ou somente leitura. |
Tabelas com nomes que terminam em _counters também incluem uma coluna previous_ts, marcando o início do intervalo em que os valores de uma linha se acumularam. Estes são valores cumulativos para esse intervalo, não leituras pontuais. Tabelas que terminam em _gauges são leituras pontuais, em vez disso, e não possuem previous_ts.
As tabelas abaixo listam apenas as colunas além destas comuns.
Atividade da sessão
Um Snapshot de cada back-end ativo, amostrado continuamente. Este é o mesmo padrão que as Percepções de Desempenho da AWS ou o Histórico de Sessão Ativa (ASH) da Oracle: se uma sessão estiver fazendo algo, incluindo esperar, ela aparece aqui.
active_session_history
Coluna | Tipo | Descrição |
|---|---|---|
| Long | Posição ordinal desta amostra dentro de seu lote. |
| Long | O ID do processo do back-end. |
| Long | ID do objeto do banco de dados. |
| Long | O ID do objeto da função de conexão. |
| Long | Identifica a query em execução. Corresponde a |
| Long | Codificação interna do evento de espera. |
| String | A categoria do evento de espera, por exemplo |
| String | O evento de espera específico, por exemplo |
| Long | O estado do backend, por exemplo, ativo ou parado. |
| Long | O tipo de processo de back-end. |
| Long | Há quanto tempo a transação atual está aberta. |
| Long | Por quanto tempo a query atual está em execução. |
| Long | O PID de uma sessão bloqueando esta, se houver. |
| Long | O PID do líder da query paralela, se este backend for um worker paralelo. |
| Long | Sinalizadores de status internos. |
| Long | Links para um formato de plano específico em |
| Long | Um hash do nome do aplicativo de conexão. |
Eventos de espera.
Contagens e tempo de eventos de espera agregados, complementando a view por amostra em active_session_history.
wait_event_counters
Coluna | Tipo | Descrição |
|---|---|---|
| Long | Codificação interna do evento de espera. |
| String | A categoria do evento de espera. |
| String | O evento de espera específico. |
| Long | Quantas vezes este evento de espera ocorreu no intervalo. |
| double | Tempo total gasto neste evento de espera durante o intervalo. |
Planos de query
Um registro por execução de planos de query, incluindo o plano completo e as estatísticas de armazenamento específicas do Neon. Esta é a tabela mais detalhada, e tipicamente onde uma investigação de query lenta termina.
plan_history
Coluna | Tipo | Descrição |
|---|---|---|
| Long | Posição ordinal desta linha dentro de seu lote. |
| Booleana | Se o plano inclui estatísticas reais de execução ( |
| Booleana | Se o plano inclui estatísticas de uso de buffer. |
| String | Hash que identifica o texto da query. |
| Long | Identifica a query. Corresponde a |
| double | Quanto tempo a query levou para ser execução. |
| double | O custo estimado do planejador para a query. |
| Long | A contagem estimada de linhas do planejador. |
| Long | A contagem real de linhas retornadas. |
| Long | Identifica este formato de plano específico. Corresponde a |
| double | Tempo gasto em espera por bloqueios. |
| double | Tempo gasto no planejamento da query, separado da execução. |
| Long | Atividade de cache de buffer compartilhado para esta execução. |
| Long | Atividade de buffer local, para tabelas temporárias. |
| Long | Atividade de arquivo temporário, por exemplo, de uma classificação grande ou hash. |
| Long | Número de solicitações de página enviadas para o pageserver. |
| Long | Número de páginas servidas a partir do cache local de arquivos em vez do pageserver. |
| Long | Tempo gasto esperando solicitações de página do pageserver, em microssegundos. |
| Long | O ID do processo de backend que executou esta query. |
| Long | Número de vezes que esta execução aguardou um bloqueio. |
| Long | Os IDs de objeto da função de conexão e do banco de dados. |
| String | O texto da query. |
| String | O plano de query completo, como JSON. |
| String | Os nomes da função de conexão e da base de dados. |
| String | O nome do aplicativo de conexão e o endereço do cliente. |
| String | Eventos de espera observados durante esta execução. |
| String | Parâmetros vinculados usados na query, se houver. |
| String | PIDs de sessões que bloquearam esta execução, se houver. |
| String | Identificadores internos do Neon para a branch, o endpoint e a linha do tempo. |
| double | Tempo de CPU consumido por esta execução, dividido em tempo de usuário e de sistema. |
| Long | Trocas de contexto durante esta execução. |
| STRING / STRING / LONG / STRING | Identificadores de rastreamento no estilo OpenTelemetry, se a query fazia parte de uma solicitação rastreada. |
| Long | Identificador interno da linha do tempo. |
| Booleana | Se os dados desta linha (por exemplo, um plano grande) foram truncados antes de serem gravados. |
Estatísticas da query
Estatísticas agregadas por query, obtidas da extensão padrão pg_stat_statements.
pg_stat_statements_counters
Coluna | Tipo | Descrição |
|---|---|---|
| Long | Os IDs de objeto da função de conexão e do banco de dados. |
| Long | Identifica a query. Corresponde a |
| Booleana | Se esta linha é para uma instrução de nível superior, em oposição a uma aninhada dentro de uma função ou procedimento PL/pgSQL. Consulte a limitação do PL/pgSQL. |
| String | O texto da query. |
| Long | Número de vezes que esta query foi executada no intervalo. |
| Long | Número de vezes que esta query foi planejada no intervalo. |
| Long | Total de linhas retornadas ou afetadas. |
| double | Tempo total gasto executando e planejando esta query no intervalo. |
| Long | Atividade de cache de buffer compartilhada. |
| Long | Atividade de buffer local, para tabelas temporárias. |
| Long | Atividade de arquivos temporários. |
| Long | Volume do log de transações gerado por esta query. |
| Misto | Estatísticas de compilação JIT (just-in-time), se JIT foi usado para esta query. |
Alterações de esquema
Alterações de esquema: o que mudou, quando e por quem. Isso é o que o Genie lê para rastrear um incidente de volta a uma alteração de esquema, seja de uma implantação ou de uma edição manual.
ddl_history
Coluna | Tipo | Descrição |
|---|---|---|
| Long | Posição ordinal desta linha dentro de seu lote. |
| String | O tipo de comando DDL, por exemplo |
| String | O tipo e o nome do objeto que mudou. |
| String | O esquema do Postgres ao qual o objeto pertence. |
| String | A instrução DDL completa. |
| double | Quanto tempo a instrução DDL levou para ser executada. |
| LONG / STRING | O ID e o nome do objeto da função de conexão. |
| String | O nome do aplicativo de conexão. |
| Long | O ID do processo de backend que executou a instrução. |
| Long | ID do objeto do banco de dados. |
| String | O caminho de busca da sessão na época. |
| String | Uma representação estruturada e analisada da declaração DDL. |
A captura DDL tem uma lacuna real: uma alteração feita no momento em que um compute é retomado de uma escala para zero pode ser perdida. Se uma alteração de esquema não aparecer aqui, mesmo que você saiba que ela aconteceu, essa é a razão mais provável. Consulte Limitações.
Logs do Postgres
Mensagens de log brutas do Postgres, incluindo o erro específico por trás de uma falha.
logs_do_postgres
Coluna | Tipo | Descrição |
|---|---|---|
| Long | Posição ordinal desta linha dentro de seu lote. |
| Long | Codificação de nível de log interno. |
| String | A gravidade do log, por exemplo |
| String | O código de erro SQLSTATE do Postgres, por exemplo |
| Long | O ID do processo de backend e o PID do seu líder de query paralela, se aplicável. |
| LONG / STRING | O ID e o nome do objeto da função de conexão. |
| LONG / STRING | O ID e o nome do objeto do banco de dados. |
| String | O nome do aplicativo de conexão e o endereço do cliente. |
| String | O esquema, tabela, coluna, restrição ou tipo de dados referenciado pelo erro, quando o Postgres tem um. |
| String | A função em que o erro ocorreu, se aplicável. |
| STRING/LONG | O arquivo de origem do Postgres e a linha de onde o erro se originou. |
| String | O texto da mensagem de log. |
| String | Detalhes adicionais, uma correção sugerida e o contexto do erro, quando o Postgres os tiver. |
| String | Uma query gerada internamente relacionada ao erro, se aplicável. |
| String | A instrução que Trigger esta entrada de Logs. |
| Long | Indica quais campos, se houver, foram truncados antes de serem gravados. |
Os campos estruturados schema_name, table_name e column_name não são preenchidos para cada tipo de erro. Um erro de análise simples de "coluna não existe" (SQLSTATE 42703), por exemplo, os deixa vazios, mesmo que message nomeie a coluna diretamente. Não confie que esses campos sejam preenchidos. Verifique message primeiro.
Métricas de compute
Uso de recurso em nível de compute: CPU, memória, disco e E/S de rede, e o cache de arquivo local (LFC), o cache do Lakebase do lado do compute na frente do pageserver.
compute_counters
Coluna | Tipo | Descrição |
|---|---|---|
| double | Tempo que a camada de armazenamento levou para limitar as gravações neste intervalo. Um valor diferente de zero significa que o volume de gravação ultrapassou a capacidade de absorção do armazenamento. |
| double | Tempo de CPU consumido, para o núcleo mais ocupado e no total. |
| double | Volume de E/S de disco. |
| double | Volume de E/S de rede. |
| Long | Atividade do cache de arquivo local para este intervalo. |
| Long | Evicções de cache de arquivo local causadas pela repetição de réplica, se este compute for uma réplica de leitura. |
compute_gauges
Coluna | Tipo | Descrição |
|---|---|---|
| Long | A posição atual do log write-ahead. |
| Long | Replay de WAL e posições de recebimento, se este compute for uma réplica de leitura. |
| Long | O limite de conexão configurado. |
| Long | Tamanho estimado do conjunto de trabalho nos últimos 5, 15 e 60 minutos. |
| Long | Capacidade e uso atual do cache de arquivo local. |
| Long | Capacidade geral de armazenamento e uso atual. |
| long / double | Atraso de replicação, se este compute for uma réplica de leitura. |
| double | A CPU e a memória provisionadas do compute. |
Métricas de banco de dados
Atividade por banco de dados: linhas alteradas, transações, sessões e integridade do vacuum. É aqui que residem o inchaço da tabela e os sinais de autovacuum.
database_counters
Coluna | Tipo | Descrição |
|---|---|---|
| LONG / STRING | O ID e o nome do objeto do banco de dados. |
| double | Tempo gasto ativo, parado em uma transação aberta, e conectado em geral. |
| Long | Número de impasses detectados. |
| Long | Atividade em nível de linha para o intervalo. |
| Long | Contagens do ciclo de vida da sessão. |
| Long | Atividade de cache de buffer compartilhada. |
| Long | Transações confirmadas e revertidas. |
database_gauges
Coluna | Tipo | Descrição |
|---|---|---|
| LONG / STRING | O ID e o nome do objeto do banco de dados. |
| Long | Número atual de conexões para esta base de dados. |
| Long | O tamanho da base de dados em disco. |
| Long | ID da transação e idade do ID de multixact da linha mais antiga não congelada. Valores crescentes são o primeiro sinal de atraso do vacuum, muito antes que o inchaço se torne visível no tamanho da tabela. |
Limitações
Se você criar funções para conectar aplicativos, uma senha digitada em uma instrução SQL CREATE ROLE ... PASSWORD '...' pode acabar no histórico de query ou de instrução. Em vez disso, crie a função por meio da interface do usuário, SDK, API ou CLI, que geram a senha no lado do servidor para que você nunca a digite como texto sem formatação. A interface do usuário exibe a senha gerada apenas uma vez. O SDK, a API e a CLI não a retornam, portanto, obtenha uma senha posteriormente. Consulte Como obter uma senha.
Durante a versão beta, aplicam-se as seguintes limitações:
-
COPYas operações não são capturadas atualmente no histórico de planos de query. -
Uma query executada dentro de uma função ou procedimento PL/pgSQL não é capturada na telemetria de nível de query, a menos que também seja executada como uma instrução de nível superior. O acompanhamento de instruções do próprio Postgres conta apenas instruções de nível superior por default.
-
Branch e Endpoint aparecem na telemetria e nas percepções exportadas pelo ID interno (por exemplo,
br-odd-mud-y2icrn1h), não por um nome de exibição como "production". Faça a referência cruzada do ID na interface do Lakebase se precisar confirmar a qual branch ou endpoint uma percepção ou linha de tabela se refere. -
Os GUCs que habilitam a captura de telemetria podem não ser propagados automaticamente para um compute existente. Se a telemetria não aparecer após você configurar a observabilidade, conecte-se ao projeto e verifique:
SQLSHOW neon_monitor.log_capture_enabled;
SHOW databricks.o11y_exporter_enabled;Ambos devem retornar
on. Se qualquer um deles retornaroff, reinicie o endpoint de compute.
Próximos passos
- Encontrar e resolver problemas com percepções : veja estes dados apresentados como um diagnóstico, não como linhas brutas.
- Investigar com o Genie : faça perguntas sobre esta telemetria com suas próprias palavras.