Referência da tabela de telemetria

Important

Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.

Esta página documenta as tabelas que o Lakebase escreve no seu esquema do Unity Catalog assim que configura a observabilidade para um projeto. O Insights e o Genie leem estes mesmos dados e, como ficam no seu próprio Catálogo Unity, pode consultá-los diretamente com qualquer ferramenta do Azure Databricks.

Note

Isto é uma funcionalidade Beta. Os nomes das tabelas e colunas podem mudar antes da disponibilidade geral.

O que é capturado

O Lakebase capta os sinais que um DBA experiente procuraria, aparecendo em algumas tabelas que pode consultar diretamente depois de exportados:

O que foi captado Onde cai
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 da base de dados: tamanho, linhas lidas e modificadas, e contagem de sessões database_counters, database_gauges
Utilização de recursos computacionais: CPU, memória, cache, ligações compute_counters, compute_gauges
Mensagens brutas do registo Postgres, incluindo o erro por detrás de uma falha postgres_logs

A Insights e a Genie leem estes dados para fundamentar as suas respostas no que realmente aconteceu na sua base de dados, e as mesmas tabelas alimentam os painéis de observabilidade prontos. O resto desta página documenta cada coluna de cada tabela.

Colunas comuns a todas as tabelas

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

Coluna Tipo Description
project_id STRING O projeto Lakebase de onde veio a polícia.
branch_id STRING O ramo de onde veio a fila.
endpoint_id STRING O endpoint de cálculo de onde a linha veio.
compute_id STRING A instância de computação específica. Isto muda quando um cálculo escala para zero e recomeça.
ts TIMESTAMP Quando a discussão foi gravada.
compute_mode STRING O modo de computação na altura, por exemplo, leitura-escrita ou só leitura.

Tabelas com nomes que terminam em _counters incluem também uma previous_ts coluna, marcando o início do intervalo sobre o qual os valores de uma linha acumulados. Estes são valores cumulativos para esse intervalo, não leituras em ponto no tempo. As tabelas que terminam em _gauges são leituras em ponto no tempo, e não previous_tstêm .

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

Atividade da sessão

Um snapshot de cada backend ativo, amostrado continuamente. Este é o mesmo padrão do AWS Performance Insights ou do Histórico Ativo de Sessões (ASH) da Oracle: se uma sessão estiver a fazer algo, incluindo esperar, aparece aqui.

active_session_history

Coluna Tipo Description
sample_seq LONG Posição ordinal desta amostra dentro do seu lote.
pid LONG O ID do processo do backend.
datid LONG O ID do objeto da base de dados.
userid LONG O ID do objeto do papel de ligação.
queryid LONG Identifica a consulta que está a ser executada. Coincide 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 específico de espera, por PgSleepexemplo.
backend_state LONG O estado do backend, por exemplo, ativo ou inativo.
backend_type LONG O tipo de processo backend.
xact_age_ms LONG Há quanto tempo a transação atual está aberta.
query_age_ms LONG Há quanto tempo a consulta atual está a funcionar.
blocking_pid LONG O PID de uma sessão a bloquear esta, se é que existe.
leader_pid LONG O PID do líder da consulta paralela, se este backend for um trabalhador paralelo.
flags LONG Bandeiras de estado internas.
plan_fingerprint LONG Ligações para uma forma de planta específica em plan_history.
appname_hash LONG Um hash do nome da aplicação ligada.

Eventos de espera

Contagens agregadas de eventos de espera e tempo, complementando a vista por amostra 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 específico de espera.
wait_event_count LONG Quantas vezes este evento de espera ocorreu nesse intervalo.
wait_event_time DUPLO Tempo total passado neste evento de espera durante o intervalo.

Planos de consulta

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

plan_history

Coluna Tipo Description
row_position LONG Posição ordinal desta linha dentro do seu lote.
analyze_enabled BOOLEAN Se o plano inclui estatísticas reais de execução (EXPLAIN ANALYZE), e não apenas estimativas.
buffers_enabled BOOLEAN Se o plano inclui estatísticas de utilização do buffer.
query_hash STRING Hash que identifica o texto da consulta.
queryid LONG Identifica a consulta. Corresponde queryid em pg_stat_statements_counters e active_session_history.
duration_ms DUPLO Quanto tempo demorou a ser executada a consulta.
total_cost DUPLO O custo estimado pelo planeador para a consulta.
plan_rows LONG A estimativa da contagem de linhas do planeador.
actual_rows LONG A contagem real das linhas foi devoluída.
plan_fingerprint LONG Identifica esta forma específica do plano. Coincide plan_fingerprint em active_session_history.
lock_wait_time_ms DUPLO Tempo passado à espera das fechaduras.
planning_time_ms DUPLO Tempo gasto a planear a consulta, separado da execução.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Atividade de cache de buffer partilhada para esta 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 temporária de ficheiros, por exemplo, a partir de uma ordenação ou hash grande.
neon_getpage_count LONG Número de pedidos de página enviados ao servidor de páginas.
neon_file_cache_hits LONG Número de páginas servidas a partir da cache local de ficheiros em vez do servidor de páginas.
neon_getpage_wait_us LONG Tempo gasto à espera de pedidos de página do pageserver, em microssegundos.
backend_pid LONG O ID do processo backend que executou esta consulta.
lock_wait_count LONG Várias vezes esta execução esperou numa fechadura.
userid / dbid LONG Os IDs dos objetos do papel de ligação e da base de dados.
query_text STRING O texto da consulta.
plan_json STRING O plano completo da consulta, em JSON.
usename / datname STRING Os nomes dos papéis ligados e da base de dados.
application_name / client_addr STRING O nome da aplicação de ligação e o endereço do cliente.
wait_events STRING Aguarde os eventos observados durante esta execução.
parameters STRING Atribuir parâmetros usados na consulta, se existirem.
blocking_pids STRING PIDs de sessões que bloquearam esta execução, se é que houve alguma.
neon_branch_id / neon_endpoint_id / neon_timeline_id STRING Identificadores internos de Neon para o ramo, ponto final e linha temporal.
cpu_user_time_ms / cpu_sys_time_ms DUPLO O tempo de CPU consumido por esta execução, dividido em tempo de utilizador e de sistema.
voluntary_csw / involuntary_csw LONG O contexto muda durante esta execução.
trace_id / span_id / trace_flags / service_name CORDA / CORDA / LONGA / CORDA Identificadores de rastreamento ao estilo OpenTelemetry, se a consulta fizesse parte de um pedido rastreado.
timeline_id LONG Identificador interno da linha temporal.
truncated BOOLEAN Se os dados desta linha (por exemplo, um plano grande) foram truncados antes de serem escritos.

Estatísticas de consultas

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

pg_stat_statements_counters

Coluna Tipo Description
userid / dbid LONG Os IDs dos objetos do papel de ligação e da base de dados.
queryid LONG Identifica a consulta. Corresponde queryid em plan_history e active_session_history.
toplevel BOOLEAN Se esta linha é para uma instrução de topo, em vez de uma aninhada dentro de uma função ou procedimento PL/pgSQL. Veja a limitação PL/pgSQL.
query STRING O texto da consulta.
calls LONG Número de vezes que esta consulta foi executada no intervalo.
plans LONG Número de vezes que esta consulta foi planeada nesse intervalo.
rows LONG Total de linhas retornadas ou afetadas.
total_exec_time / total_plan_time DUPLO Tempo total gasto a executar e planear esta consulta nesse intervalo.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Atividade do buffer partilhado.
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 ficheiros.
wal_bytes / wal_fpi / wal_records LONG Volume de registo de write-ahead gerado por esta consulta.
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time Mixed Estatísticas de compilação JIT (just-in-time), se JIT foi usado para esta consulta.

Alterações de esquema

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

ddl_history

Coluna Tipo Description
row_position LONG Posição ordinal desta linha dentro do seu lote.
command_tag STRING O tipo de comando DDL, por ALTER TABLEexemplo .
object_type / object_name STRING O tipo e o nome do objeto que mudou.
schema_name STRING O esquema Postgres a que o objeto pertence.
query_text STRING A declaração completa do DDL.
duration_ms DUPLO Quanto tempo demorou a ser publicada a declaração DDL.
userid / usename LONGO / CORDA O ID do objeto e o nome do papel de ligação.
application_name STRING O nome da aplicação de ligação.
backend_pid LONG O ID do processo backend que executava a instrução.
dbid LONG O ID do objeto da base de dados.
search_path STRING O percurso de pesquisa da sessão na altura.
ddl_json STRING Uma representação estruturada e analisada da instrução DDL.

Note

A captura DDL tem uma lacuna real: uma alteração feita mesmo à volta de um cálculo que retoma da escala para zero pode passar despercebida. Se uma alteração no esquema não aparecer aqui, mesmo sabendo que aconteceu, essa é a razão mais provável. Consulte Limitações.

Registos Postgres

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

postgres_logs

Coluna Tipo Description
sample_seq LONG Posição ordinal desta linha dentro do seu lote.
elevel LONG Codificação interna ao nível do log.
severity STRING A gravidade logarítmica, por exemplo ERROR ou LOG.
sqlstate STRING O código de erro Postgres SQLSTATE, por exemplo 42703 , para uma coluna indefinida.
backend_pid / leader_backend_pid LONG O ID do processo backend e o PID do líder da consulta paralela, se aplicável.
userid / usename LONGO / CORDA O ID do objeto e o nome do papel de ligação.
datid / datname LONGO / CORDA O ID do objeto e o nome da base de dados.
application_name / client_addr STRING O nome da aplicação de ligação e o endereço do cliente.
schema_name / table_name / column_name / constraint_name / datatype_name STRING O esquema, tabela, coluna, restrição ou tipo de dado referenciado pelo erro, quando o Postgres tem um.
funcname STRING A função em que o erro ocorreu, se aplicável.
filename / lineno CORDA / LONGO O ficheiro fonte e a linha do Postgres de onde o erro se originou.
message STRING O texto da mensagem do registo.
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 com o erro, se aplicável.
statement STRING A afirmação que desencadeou esta entrada no registo.
truncated_mask LONG Indica quais os campos, se algum, foram truncados antes de serem escritos.

Note

Os campos estruturados schema_name, table_name, e column_name não estão preenchidos para todos os tipos de erro. Um erro simples de análise "coluna não existe" (SQLSTATE 42703), por exemplo, deixa-os vazios mesmo que message nomeie diretamente a coluna. Não confie que estes campos estejam povoados. Confirma message primeiro.

Métricas de computação

Utilização de recursos ao nível de computação: CPU, memória, I/O de disco e rede, e a cache local de ficheiros (LFC), a cache do lado de computação do Lakebase em frente ao pageserver.

compute_counters

Coluna Tipo Description
backpressure_throttling_seconds DUPLO O tempo que a camada de armazenamento passa a limitar a escrita neste intervalo. Um valor diferente de zero significa que o volume de escrita excedeu o que o armazenamento pode absorver.
host_busiest_cpu_seconds / host_cpu_seconds DUPLO Tempo consumido pela CPU, para o núcleo mais ocupado e no total.
host_disk_read_bytes / host_disk_written_bytes DUPLO Volume de E/S do disco.
host_network_receive_bytes / host_network_transmit_bytes DUPLO Volume de E/S de rede.
lfc_evictions / lfc_hits / lfc_misses / lfc_writes LONG Atividade local da cache de ficheiros para este intervalo.
replica_lfc_redo_evictions LONG Despejos da cache local de ficheiros causados por refazer réplicas, se este cálculo for uma réplica de leitura.

compute_gauges

Coluna Tipo Description
current_lsn LONG A posição atual do registo de escrita antecipada.
replica_wal_replay_lsn / replica_wal_receive_lsn LONG WAL replay e posição de receção, se este cálculo for uma réplica de leitura.
max_connections LONG O limite de ligaçã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 da cache local de ficheiros e utilização atual.
total_size_limit / total_size LONG Capacidade total de armazenamento e uso atual.
replication_lag_bytes / replication_lag_time_ms LONGO / DUPLO Atraso de replicação, se este cálculo for uma réplica de leitura.
host_logical_cpus / host_memory_total_bytes DUPLO A CPU e a memória provisionadas do computo.

Métricas de base de dados

Atividade por base de dados: linhas alteradas, transações, sessões e saúde do vácuo. É aqui que vivem os sinais de inchaço da mesa e autovácuo.

database_counters

Coluna Tipo Description
datid / datname LONGO / CORDA O ID do objeto e o nome da base de dados.
active_time_ms / idle_in_transaction_time_ms / session_time_ms DUPLO Tempo passado ativo, ocioso numa transação aberta e ligado no geral.
deadlocks LONG Número de bloqueios detetados.
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated LONG Atividade ao nível da linha para o intervalo.
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed LONG O ciclo de vida da sessão conta.
shared_blks_hit / shared_blks_read LONG Atividade do buffer partilhado.
xact_commit / xact_rollback LONG Transações comprometidas e revertidas.

database_gauges

Coluna Tipo Description
datid / datname LONGO / CORDA O ID do objeto e o nome da base de dados.
numbackends LONG Número atual de ligações a esta base de dados.
size LONG O tamanho do disco da base de dados.
oldest_frozen_xid_age / oldest_mxid_age LONG ID de transação e multixact ID idade da linha mais antiga descongelada. Valores crescentes são o primeiro sinal de que o vácuo está a ficar para trás, muito antes de o inchaço se tornar visível no tamanho da mesa.

Limitações

Warning

Se criares funções para ligar aplicações, uma palavra-passe introduzida numa CREATE ROLE ... PASSWORD '...' instrução SQL pode acabar no histórico de consultas ou de instruções. Cria o papel através da interface, SDK, API ou CLI, que geram a palavra-passe do lado do servidor para nunca a escreveres em texto claro. A interface mostra a palavra-passe gerada uma vez. O SDK, a API e a CLI não o devolvem, por isso obtém uma palavra-passe depois. Veja Como obter uma palavra-passe.

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

  • COPY As operações não estão atualmente registadas no histórico do plano de consulta.

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

  • As ramificações e os endpoints aparecem na telemetria exportada e nas informações analíticas pelo ID interno (por exemplo, br-odd-mud-y2icrn1h), e não por um nome de apresentação como "produção". Consulte a correspondência do ID na interface do Lakebase, se precisar de confirmar a que ramificação ou endpoint se refere uma informação analítica ou uma linha da tabela.

  • Os GUCs que permitem a captura de telemetria poderão não ser propagados automaticamente para uma instância de computação existente. Se a telemetria não aparecer depois de configurar a observabilidade, ligue-se ao projeto e verifique:

    SHOW neon_monitor.log_capture_enabled;
    SHOW databricks.o11y_exporter_enabled;
    

    Ambos devem regressar on. Se algum deles devolver off, reinicie o endpoint de computação.

Passos seguintes