Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
COPYAs 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 devolveroff, reinicie o endpoint de computação.
Passos seguintes
- Encontre e resolva problemas com o Insights: veja estes dados apresentados como diagnóstico, não como linhas brutas.
- Investigue com o Génio: faça perguntas sobre esta telemetria com as suas próprias palavras.