Referência da tabela de telemetria

Importante

Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.

Esta página documenta as tabelas que o Lakebase grava no esquema do Catálogo do Unity depois de configurar a observabilidade de um projeto. Insights e Genie leem esses mesmos dados e, como eles estão em seu próprio Catálogo do Unity, você pode consultá-los diretamente com qualquer ferramenta Azure Databricks.

Note

Esse é um recurso Beta. Os nomes de tabela e coluna podem ser alterados antes da disponibilidade geral.

O que é capturado

Lakebase captura os sinais que um DBA experiente procuraria, aterrissando em um punhado de tabelas que você pode consultar diretamente depois que elas são exportadas:

O que é capturado Onde ele aterrissa
Sessões ativas e eventos de espera active_session_history, wait_event_counters
Planos de consulta e estatísticas de execução por consulta plan_history, pg_stat_statements_counters
Alterações de esquema: o que mudou, quando e por quem ddl_history
Estatísticas do banco de dados: tamanho, linhas lidas e modificadas e contagens de sessão database_counters, database_gauges
Uso de recursos de computação: CPU, memória, cache, conexões compute_counters, compute_gauges
Mensagens de log brutas do Postgres, incluindo o erro por trás de uma falha postgres_logs

Insights e Genie leem esses dados para fundamentar suas respostas no que realmente aconteceu no seu banco de dados, e as mesmas tabelas alimentam os painéis de observabilidade prontos. O restante desta página documenta cada coluna de cada tabela.

Colunas comuns a cada tabela

Cada tabela abaixo inclui essas colunas, que identificam de onde veio uma linha:

Coluna Tipo Description
project_id STRING O projeto Lakebase do qual a linha veio.
branch_id STRING O branch da qual a linha veio.
endpoint_id STRING O ponto de extremidade de computação do qual a linha veio.
compute_id STRING A instância de computação específica. Isso muda quando uma computação é dimensionada para zero e é retomada.
ts TIMESTAMP Quando a linha foi gravada.
compute_mode STRING O modo da computação no momento, por exemplo, leitura-gravação ou somente leitura.

Tabelas com nomes que terminam _counters também incluem uma previous_ts coluna, marcando o início do intervalo em que os valores de uma linha foram acumulados. Esses são valores cumulativos para esse intervalo, não leituras pontuais. As tabelas que _gauges terminam são leituras pontuais e não têm .previous_ts

As tabelas abaixo listam apenas as colunas além dessas comuns.

Atividade de sessão

Um instantâneo de cada back-end ativo, amostrado continuamente. Esse é o mesmo padrão que o AWS Performance Insights ou o ASH (Histórico de Sessão Ativa) da Oracle: se uma sessão estiver fazendo alguma coisa, incluindo esperar, ela aparecerá aqui.

active_session_history

Coluna Tipo Description
sample_seq LONG Posição ordinal deste exemplo dentro de seu lote.
pid LONG A ID do processo do back-end.
datid LONG A ID do objeto do banco de dados.
userid LONG A ID do objeto da função de conexão.
queryid LONG Identifica a consulta que está sendo executada. Corresponde queryid em pg_stat_statements_counters.
wait_event_info LONG Codificação interna do evento de espera.
wait_event_type STRING A categoria do evento de espera, por exemplo Timeout ou Lock.
wait_event STRING O evento de espera específico, por exemplo PgSleep.
backend_state LONG O estado do back-end, por exemplo, ativo ou ocioso.
backend_type LONG O tipo de processo de back-end.
xact_age_ms LONG Há quanto tempo a transação atual está aberta.
query_age_ms LONG Há quanto tempo a consulta atual está em execução.
blocking_pid LONG O PID de uma sessão bloqueando esta, se houver.
leader_pid LONG O PID do líder de consulta paralela, se esse back-end for um trabalho paralelo.
flags LONG Sinalizadores de status internos.
plan_fingerprint LONG Links para uma forma de plano específica em plan_history.
appname_hash LONG Um hash do nome do aplicativo de conexão.

Eventos de espera

Contagens de eventos de espera e tempo agregados, complementando a exibição por exemplo em active_session_history.

wait_event_counters

Coluna Tipo Description
wait_event_id LONG Codificação interna do evento de espera.
wait_class_name STRING A categoria do evento de espera.
wait_event_name STRING O evento de espera específico.
wait_event_count LONG Quantas vezes esse evento de espera ocorreu no intervalo.
wait_event_time DOUBLE Tempo total gasto nesse evento de espera durante o intervalo.

Planos de consultas

Um registro por execução de planos de consulta, incluindo o plano completo e estatísticas de armazenamento específicas de Neon. Esta é a tabela mais detalhada e, normalmente, onde uma investigação de consulta lenta acaba.

plan_history

Coluna Tipo Description
row_position LONG Posição ordinal dessa linha dentro de seu lote.
analyze_enabled BOOLEAN Se o plano inclui estatísticas de execução reais (EXPLAIN ANALYZE), não apenas estimativas.
buffers_enabled BOOLEAN Se o plano inclui estatísticas de uso de buffer.
query_hash STRING Hash identificando o texto da consulta.
queryid LONG Identifica a consulta. Corresponde queryid em pg_stat_statements_counters e active_session_history.
duration_ms DOUBLE Quanto tempo a consulta levou para ser executada.
total_cost DOUBLE O custo estimado do planejador para a consulta.
plan_rows LONG A contagem de linhas estimada do planejador.
actual_rows LONG A contagem real de linhas retornada.
plan_fingerprint LONG Identifica essa forma de plano específica. Corresponde plan_fingerprint em active_session_history.
lock_wait_time_ms DOUBLE Tempo gasto aguardando bloqueios.
planning_time_ms DOUBLE Tempo gasto planejando a consulta, separado da execução.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Atividade de cache de buffer compartilhado para essa execução.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG Atividade de buffer local para tabelas temporárias.
temp_blks_read / temp_blks_written LONG Atividade de arquivo temporário, por exemplo, de uma classificação ou hash grande.
neon_getpage_count LONG Número de solicitações de página enviadas para o pageserver.
neon_file_cache_hits LONG Número de páginas atendidas do cache de arquivos local em vez do pageserver.
neon_getpage_wait_us LONG Tempo gasto aguardando solicitações de páginas, em microssegundos.
backend_pid LONG A ID do processo de back-end que executou essa consulta.
lock_wait_count LONG Número de vezes que essa execução esperou em um bloqueio.
userid / dbid LONG As IDs de objeto da função de conexão e do banco de dados.
query_text STRING O texto da consulta.
plan_json STRING O plano de consulta completo, como JSON.
usename / datname STRING Os nomes da função de conexão e do banco de dados.
application_name / client_addr STRING O nome do aplicativo de conexão e o endereço do cliente.
wait_events STRING Eventos de espera observados durante essa execução.
parameters STRING Associar parâmetros usados na consulta, se houver.
blocking_pids STRING PIDs de sessões que bloquearam essa execução, se houver.
neon_branch_id / neon_endpoint_id / neon_timeline_id STRING Identificadores internos do Neon para o branch, o ponto de extremidade e a linha do tempo.
cpu_user_time_ms / cpu_sys_time_ms DOUBLE Tempo de CPU consumido por essa execução, dividido em tempo de usuário e sistema.
voluntary_csw / involuntary_csw LONG O contexto muda durante essa execução.
trace_id / span_id / trace_flags / service_name CADEIA DE CARACTERES/CADEIA DE CARACTERES/LONGA/CADEIA DE CARACTERES Identificadores de rastreamento no estilo OpenTelemetry, se a consulta fosse parte de uma solicitação rastreada.
timeline_id LONG Identificador de linha do tempo interno.
truncated BOOLEAN Se os dados dessa linha (por exemplo, um plano grande) foram truncados antes de serem gravados.

Estatísticas de consulta

Estatísticas agregadas por consulta, provenientes da extensão padrão pg_stat_statements .

pg_stat_statements_counters

Coluna Tipo Description
userid / dbid LONG As IDs de objeto da função de conexão e do banco de dados.
queryid LONG Identifica a consulta. Corresponde queryid em plan_history e active_session_history.
toplevel BOOLEAN Se essa linha é para uma instrução de nível superior, em vez de uma aninhada dentro de uma função ou procedimento PL/pgSQL. Consulte a limitação de PL/pgSQL.
query STRING O texto da consulta.
calls LONG Número de vezes que essa consulta foi executada no intervalo.
plans LONG Número de vezes que essa consulta foi planejada no intervalo.
rows LONG Total de linhas retornadas ou afetadas.
total_exec_time / total_plan_time DOUBLE Tempo total gasto executando e planejando essa consulta no intervalo.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Atividade de cache de buffer compartilhado.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG Atividade de buffer local para tabelas temporárias.
temp_blks_read / temp_blks_written LONG Atividade temporária de arquivo.
wal_bytes / wal_fpi / wal_records LONG Volume de log de gravação antecipada gerado por essa consulta.
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time Misturado Estatísticas de compilação JIT (just-in-time), se JIT foi usado para essa consulta.

Alterações feitas no esquema

Alterações de esquema: o que mudou, quando e por quem. É isso que o Genie lê para rastrear um incidente até uma alteração de esquema, seja de uma implantação ou de uma edição manual.

ddl_history

Coluna Tipo Description
row_position LONG Posição ordinal dessa linha dentro de seu lote.
command_tag STRING O tipo de comando DDL, por exemplo ALTER TABLE.
object_type / object_name STRING O tipo e o nome do objeto que foi alterado.
schema_name STRING O esquema Postgres ao qual o objeto pertence.
query_text STRING A instrução DDL completa.
duration_ms DOUBLE Quanto tempo a instrução DDL levou para ser executada.
userid / usename LONG/STRING A ID e o nome do objeto da função de conexão.
application_name STRING O nome do aplicativo de conexão.
backend_pid LONG A ID do processo de back-end que executou a instrução.
dbid LONG A ID do objeto do banco de dados.
search_path STRING O caminho de pesquisa da sessão no momento.
ddl_json STRING Uma representação estruturada e analisada da instrução DDL.

Note

A captura de DDL tem uma lacuna real: uma alteração feita em torno de uma retomada de computação de escala para zero pode ser perdida. Se uma alteração de esquema não aparecer aqui mesmo que você saiba que aconteceu, esse é o motivo mais provável. Confira Limitações.

Logs do Postgres

Mensagens de log brutas do Postgres, incluindo o erro específico por trás de uma falha.

postgres_logs

Coluna Tipo Description
sample_seq LONG Posição ordinal dessa linha dentro de seu lote.
elevel LONG Codificação de nível de log interno.
severity STRING A gravidade do log, por exemplo ERROR ou LOG.
sqlstate STRING O código de erro SQLSTATE do Postgres, por exemplo 42703 , para uma coluna indefinida.
backend_pid / leader_backend_pid LONG A ID do processo de back-end e o PID do líder de consulta paralela, se aplicável.
userid / usename LONG/STRING A ID e o nome do objeto da função de conexão.
datid / datname LONG/STRING A ID e o nome do objeto do banco de dados.
application_name / client_addr STRING O nome do aplicativo de conexão e o endereço do cliente.
schema_name / table_name / column_name / constraint_name / datatype_name STRING O esquema, a tabela, a coluna, a restrição ou o tipo de dados referenciado pelo erro, quando o Postgres tem um.
funcname STRING A função em que o erro ocorreu, se aplicável.
filename / lineno STRING/LONG O arquivo de origem do Postgres e a linha da qual o erro se originou.
message STRING O texto da mensagem de log.
detail / hint / context STRING Detalhes adicionais, uma correção sugerida e o contexto do erro, quando o Postgres os tem.
internalquery STRING Uma consulta gerada internamente relacionada ao erro, se aplicável.
statement STRING A instrução que disparou essa entrada de log.
truncated_mask LONG Indica quais campos, se houver, foram truncados antes de serem gravados.

Note

Os campos estruturados schema_nametable_namee não column_name são preenchidos para cada tipo de erro. Um erro de análise "coluna não existe" simples (SQLSTATE 42703), por exemplo, deixa-os vazios mesmo que message nomeie a coluna diretamente. Não confie nesses campos que estão sendo preenchidos. Verifique message primeiro.

Métricas de computação

Uso de recursos de nível de computação: CPU, memória, E/S de disco e rede e o LFC (cache de arquivos local), o cache do lado da computação do Lakebase na frente do pageserver.

compute_counters

Coluna Tipo Description
backpressure_throttling_seconds DOUBLE Tempo em que a camada de armazenamento gastou gravações de limitação nesse intervalo. Um valor diferente de zero significa que o volume de gravação excedeu o que o armazenamento pode absorver.
host_busiest_cpu_seconds / host_cpu_seconds DOUBLE CPU demorada, para o núcleo mais movimentado e no total.
host_disk_read_bytes / host_disk_written_bytes DOUBLE Volume de E/S de disco.
host_network_receive_bytes / host_network_transmit_bytes DOUBLE Volume de E/S de rede.
lfc_evictions / lfc_hits / lfc_misses / lfc_writes LONG Atividade de cache de arquivo local para esse intervalo.
replica_lfc_redo_evictions LONG Remoções de cache de arquivos locais causadas pela restauração da réplica, se essa computação for uma réplica de leitura.

compute_gauges

Coluna Tipo Description
current_lsn LONG A posição atual do log de gravação antecipada.
replica_wal_replay_lsn / replica_wal_receive_lsn LONG Wal reproduzirá e receberá posições, se essa computação for uma réplica de leitura.
max_connections LONG O limite de conexão configurado.
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m LONG Tamanho estimado do conjunto de trabalho nos últimos 5, 15 e 60 minutos.
lfc_size_limit / lfc_allocated / lfc_used LONG Capacidade de cache de arquivos local e uso atual.
total_size_limit / total_size LONG Capacidade de armazenamento geral e uso atual.
replication_lag_bytes / replication_lag_time_ms LONG/DOUBLE Retardo de replicação, se essa computação for uma réplica de leitura.
host_logical_cpus / host_memory_total_bytes DOUBLE A CPU e a memória provisionadas da computação.

Métricas de banco de dados

Atividade por banco de dados: linhas alteradas, transações, sessões e integridade do vácuo. É aqui que os sinais de bloat de tabela e de vácuo automático residem.

database_counters

Coluna Tipo Description
datid / datname LONG/STRING A ID e o nome do objeto do banco de dados.
active_time_ms / idle_in_transaction_time_ms / session_time_ms DOUBLE Tempo gasto ativo, ocioso em uma transação aberta e conectado em geral.
deadlocks LONG Número de deadlocks detectados.
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated LONG Atividade em nível de linha para o intervalo.
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed LONG Contagens do ciclo de vida da sessão.
shared_blks_hit / shared_blks_read LONG Atividade de cache de buffer compartilhado.
xact_commit / xact_rollback LONG Transações confirmadas e revertidas.

database_gauges

Coluna Tipo Description
datid / datname LONG/STRING A ID e o nome do objeto do banco de dados.
numbackends LONG Número atual de conexões com esse banco de dados.
size LONG O tamanho do banco de dados no disco.
oldest_frozen_xid_age / oldest_mxid_age LONG ID da transação e idade de ID multixact da linha descongelada mais antiga. Valores crescentes são o sinal mais antigo de vácuo ficando para trás, bem antes que o bloat se torne visível no tamanho da tabela.

Limitações

Warning

Se você criar funções para conectar aplicativos, uma senha digitada em uma CREATE ROLE ... PASSWORD '...' instrução SQL poderá acabar no histórico de consultas ou instruções. Crie a função pela UI, SDK, API ou CLI, que geram a senha do lado do servidor para que você nunca a digite em texto claro. A interface exibe a senha gerada uma vez. O SDK, a API e a CLI não retornam, então obtenha uma senha depois. Veja Como obter uma senha.

Durante o beta, as seguintes limitações se aplicam:

  • COPY no momento, as operações não são capturadas no histórico do plano de consulta.

  • Uma consulta executada dentro de uma função ou procedimento PL/pgSQL não é capturada na telemetria de nível de consulta, a menos que também seja executada como uma instrução de nível superior. O próprio rastreamento de instruções do Postgres conta apenas instruções de nível superior por padrão.

  • Ramificações e pontos de extremidade aparecem na telemetria e nos insights exportados por ID interno (por exemplo, br-odd-mud-y2icrn1h), não por um nome exibido como "produção". Consulte o ID na interface do Lakebase se precisar confirmar a qual ramificação ou ponto de extremidade um insight ou uma linha da tabela se refere.

  • Os GUCs que habilitam a captura de telemetria podem não se propagar automaticamente para uma computação existente. Se a telemetria não aparecer depois que você configurar a observabilidade, conecte-se ao projeto e verifique:

    SHOW neon_monitor.log_capture_enabled;
    SHOW databricks.o11y_exporter_enabled;
    

    Ambos devem retornar on. Se qualquer uma das opções retornar off, reinicie o endpoint de computação.

Próximas Etapas