Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
Deze functie bevindt zich in de bètaversie. Om het te gebruiken, moet een werkruimtebeheerder Lakebase Observability in System Tables inschakelen vanaf de pagina Voornemen. Zie Azure Databricks previews beheren.
Met de Lakebase Observability in System Tables preview ingeschakeld, vangt Lakebase observabiliteitstelemetrie in het system.lakebase schema, beginnend met geavanceerde Postgres-signalen. Capture start automatisch terwijl de compute van een project draait. Je hoeft geen configuratie aan te maken, geen bestemming te kiezen of inloggegevens te geven.
Insights en Genie lezen dezelfde tabellen, en je kunt ze met elke Azure Databricks-tool bevragen.
Note
Tabel- en kolomnamen kunnen vóór algemene beschikbaarheid veranderen.
Requirements
- Je werkruimte moet de Lakebase Observability in System Tables preview ingeschakeld hebben. Een workspace-beheerder kan het inschakelen via de pagina Voornemen. Het inschakelen van de Lakebase Insights-preview schakelt het ook in als het nog niet is ingeschakeld.
- Je hebt een Lakebase-project nodig op AWS of Azure. Zie Een Postgres-database ophalen.
Wat wordt vastgelegd
Lakebase registreert de signalen die je nodig hebt om een trage of falende database uit te leggen, via de volgende tabellen:
| Wat is vastgelegd | Tabelnaam |
|---|---|
| Actieve sessies en wachtevenementen |
system.lakebase.active_session_history, system.lakebase.wait_event_counters |
| Queryplannen en uitvoeringsstatistieken per query |
system.lakebase.plan_history, system.lakebase.pg_stat_statements_counters |
| Schemawijzigingen: wat is gewijzigd, wanneer en door wie | system.lakebase.ddl_history |
| Databasestatistieken: grootte, gelezen en gewijzigd rijen en aantal sessies |
system.lakebase.database_counters, system.lakebase.database_gauges |
| Rekenresourcegebruik: CPU, geheugen, cache, verbindingen |
system.lakebase.compute_counters, system.lakebase.compute_gauges |
| Onbewerkte Postgres-logberichten, inclusief de fout die achter een mislukking schuilgaat | system.lakebase.postgres_logs |
Dossiers worden 7 dagen bewaard. De rest van deze pagina documenteert elke kolom in elke tabel. Voor waar deze tabellen tussen de andere systeemtabellen staan, zie Lakebase systeemtabel referentie.
Access
De system.lakebase tabellen worden beheerd door Unity Catalog. Gebruikers met zowel de accountbeheerder als de metastore-beheerder rollen kunnen de telemetrie lezen en de toegang beheren. Zie Beheer van bevoegdheden in Unity Catalog.
Toegang geldt op schema-niveau, zodat een gebruiker die kan lezen system.lakebase telemetrie ziet voor elk project in het account.
Gemaskerde verklaringstekst
Kolommen die de tekst van de verklaring bevatten, komen terug, <REDACTED> tenzij je accountbeheerder bent of lid van de databricks_pii_access account-level groep. Een accountbeheerder maakt die groep aan en beheert ze. Zie Create and manage the databricks_pii_access group en Access masked statement-tekst.
Kolommen die voor elke tabel worden gebruikt
Elke onderstaande tabel bevat deze kolommen, waarmee wordt aangegeven waar een rij vandaan komt:
| Kolom | Type | Description |
|---|---|---|
project_id |
STRING | Het Lakebase-project waar de rij vandaan kwam. |
branch_id |
STRING | De vertakking van de rij kwam vandaan. |
endpoint_id |
STRING | Het rekeneindpunt van de rij is afkomstig. |
compute_id |
STRING | Het specifieke rekenproces. Dit verandert wanneer een berekening wordt geschaald naar nul en wordt hervat. |
ts |
TIMESTAMP | Toen de rij werd vastgelegd. |
compute_mode |
STRING | De rekenmodus op het moment, bijvoorbeeld lezen/schrijven of alleen-lezen. |
Tabellen met namen die eindigen op _counters een kolom, bevatten ook een previous_ts kolom, waarbij het begin van het interval wordt gemarkeerd waarop de waarden van een rij zijn verzameld. Dit zijn cumulatieve waarden voor dat interval, niet voor metingen naar een bepaald tijdstip. Tabellen die eindigen, _gauges zijn in plaats daarvan punt-in-time-leesbewerkingen en hebben geen previous_ts.
In de onderstaande tabellen worden alleen de kolommen vermeld die buiten deze gemeenschappelijke kolommen komen.
Sessieactiviteit
Een momentopname van elke actieve back-end, die continu wordt bemonsterd. Dit is hetzelfde patroon als AWS Performance Insights of De Active Session History (ASH) van Oracle: als een sessie iets doet, inclusief wachten, wordt deze hier weergegeven.
active_session_history
| Kolom | Type | Description |
|---|---|---|
sample_seq |
LONG | Rangschikkpositie van dit voorbeeld in de batch. |
pid |
LONG | De proces-id van de back-end. |
datid |
LONG | De object-id van de database. |
userid |
LONG | De object-id van de verbindingsrol. |
queryid |
LONG | Identificeert de query die wordt uitgevoerd. Komt overeen queryid in pg_stat_statements_counters. |
wait_event_info |
LONG | Interne codering van de wachtgebeurtenis. |
wait_event_type |
STRING | De categorie van de wacht gebeurtenis, bijvoorbeeld Timeout of Lock. |
wait_event |
STRING | De specifieke wachtbeurtenis, bijvoorbeeld PgSleep. |
backend_state |
LONG | De status van de back-end, bijvoorbeeld actief of inactief. |
backend_type |
LONG | Het type back-endproces. |
xact_age_ms |
LONG | Hoe lang de huidige transactie is geopend. |
query_age_ms |
LONG | Hoe lang de huidige query wordt uitgevoerd. |
blocking_pid |
LONG | De PID van een sessie blokkeert deze, indien van toepassing. |
leader_pid |
LONG | De PID van de parallelle queryleider als deze back-end een parallelle werkrol is. |
flags |
LONG | Interne statusvlagmen. |
plan_fingerprint |
LONG | Koppelingen naar een specifieke planshape in plan_history. |
appname_hash |
LONG | Een hash van de naam van de verbindende toepassing. |
Wachtevenementen
Geaggregeerde aantal wachtgebeurtenissen en -tijd, die een aanvulling vormen op de weergave per voorbeeld in active_session_history.
wait_event_counters
| Kolom | Type | Description |
|---|---|---|
wait_event_id |
LONG | Interne codering van de wachtgebeurtenis. |
wait_class_name |
STRING | De categorie van de wacht gebeurtenis. |
wait_event_name |
STRING | De specifieke wacht gebeurtenis. |
wait_event_count |
LONG | Hoe vaak deze wachtgebeurtenis heeft plaatsgevonden in het interval. |
wait_event_time |
Dubbel | Totale tijd die tijdens het interval aan deze wachtbeurt is besteed. |
Queryplannen
Een record per uitvoering van queryplannen, inclusief het volledige plan en neonspecifieke opslagstatistieken. Dit is de meest gedetailleerde tabel en meestal waar een onderzoek naar trage query's eindigt.
plan_history
| Kolom | Type | Description |
|---|---|---|
row_position |
LONG | Rangschikkpositie van deze rij binnen de batch. |
analyze_enabled |
BOOLEAN | Of het plan werkelijke uitvoeringsstatistieken bevat (EXPLAIN ANALYZE), niet alleen schattingen. |
buffers_enabled |
BOOLEAN | Of het plan buffergebruiksstatistieken bevat. |
query_hash |
STRING | Hash die de querytekst identificeert. |
queryid |
LONG | Identificeert de query. Komt queryid overeen in pg_stat_statements_counters en active_session_history. |
duration_ms |
Dubbel | Hoe lang de query duurde om uit te voeren. |
total_cost |
Dubbel | De geschatte kosten van de planner voor de query. |
plan_rows |
LONG | Het geschatte aantal rijen van de planner. |
actual_rows |
LONG | Het werkelijke aantal rijen dat is geretourneerd. |
plan_fingerprint |
LONG | Identificeert deze specifieke planshape. Komt overeen plan_fingerprint in active_session_history. |
lock_wait_time_ms |
Dubbel | Tijd besteed aan het wachten op sloten. |
planning_time_ms |
Dubbel | Tijd die besteed is aan het plannen van de query, los van de uitvoering. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Activiteit in de gedeelde buffercache voor deze uitvoering. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Lokale bufferactiviteit voor tijdelijke tabellen. |
temp_blks_read / temp_blks_written |
LONG | Tijdelijke bestandsactiviteit, bijvoorbeeld van een grote sortering of hash. |
neon_getpage_count |
LONG | Aantal paginaaanvragen dat naar de paginaserver is verzonden. |
neon_file_cache_hits |
LONG | Het aantal pagina's dat wordt geleverd vanuit de lokale bestandscache in plaats van de paginaserver. |
neon_getpage_wait_us |
LONG | Tijd die is besteed aan het wachten op paginaaanvragen van paginaservers, in microseconden. |
backend_pid |
LONG | De back-endproces-id die deze query heeft uitgevoerd. |
lock_wait_count |
LONG | Aantal keren dat deze uitvoering op een vergrendeling wachtte. |
userid / dbid |
LONG | De object-id's van de verbindingsrol en database. |
query_text |
STRING | De querytekst. Gemaskerd. Zie tekst van de Gemaskerde verklaring. |
plan_json |
STRING | Het volledige queryplan, als JSON. Gemaskerd. Zie tekst van de Gemaskerde verklaring. |
usename / datname |
STRING | De namen van de verbindingsrol en database. |
application_name / client_addr |
STRING | De naam en het clientadres van de verbindingstoepassing. |
wait_events |
STRING | Er zijn wachttijden waargenomen tijdens deze uitvoering. |
parameters |
STRING | Bindparameters die in de query worden gebruikt, indien van toepassing. Gemaskerd. Zie tekst van de Gemaskerde verklaring. |
blocking_pids |
STRING | PID's van sessies die deze uitvoering hebben geblokkeerd, indien van toepassing. |
neon_branch_id / neon_endpoint_id / neon_timeline_id |
STRING | Interne Neon-id's voor de vertakking, het eindpunt en de tijdlijn. |
cpu_user_time_ms / cpu_sys_time_ms |
Dubbel | CPU-tijd die door deze uitvoering wordt verbruikt, opgesplitst in gebruikers- en systeemtijd. |
voluntary_csw / involuntary_csw |
LONG | Context schakelt tijdens deze uitvoering over. |
trace_id / span_id / trace_flags / service_name |
TEKENREEKS / TEKENREEKS / LANG / TEKENREEKS | Tracerings-id's in OpenTelemetry-stijl, als de query deel uitmaakte van een traceringsaanvraag. |
timeline_id |
LONG | Interne tijdlijn-id. |
truncated |
BOOLEAN | Of de gegevens van deze rij (bijvoorbeeld een groot plan) zijn afgekapt voordat ze werden geschreven. |
Query-statistieken
Geaggregeerde statistieken per query, afkomstig uit de standaardextensie pg_stat_statements .
pg_stat_statements_counters
| Kolom | Type | Description |
|---|---|---|
userid / dbid |
LONG | De object-id's van de verbindingsrol en database. |
queryid |
LONG | Identificeert de query. Komt queryid overeen in plan_history en active_session_history. |
toplevel |
BOOLEAN | Of deze rij is bedoeld voor een instructie op het hoogste niveau, in plaats van één geneste in een PL/pgSQL-functie of -procedure. Zie de PL/pgSQL-beperking. |
query |
STRING | De querytekst. Gemaskerd. Zie tekst van de Gemaskerde verklaring. |
calls |
LONG | Aantal keren dat deze query in het interval is uitgevoerd. |
plans |
LONG | Aantal keren dat deze query in het interval is gepland. |
rows |
LONG | Totaal aantal rijen dat is geretourneerd of beïnvloed. |
total_exec_time / total_plan_time |
Dubbel | Totale tijd die is besteed aan het uitvoeren en plannen van deze query in het interval. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Activiteit van gedeelde buffercache. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Lokale bufferactiviteit voor tijdelijke tabellen. |
temp_blks_read / temp_blks_written |
LONG | Tijdelijke bestandsactiviteit. |
wal_bytes / wal_fpi / wal_records |
LONG | Schrijflogboekvolume dat door deze query wordt gegenereerd. |
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time |
Mixed | Compilatiestatistieken van JIT (Just-In-Time) als JIT is gebruikt voor deze query. |
Schemawijzigingen
Schemawijzigingen: wat is gewijzigd, wanneer en door wie. Dit is wat Genie leest om een incident terug te traceren naar een schemawijziging, ongeacht of het gaat om een implementatie of een handmatige bewerking.
ddl_history
| Kolom | Type | Description |
|---|---|---|
row_position |
LONG | Rangschikkpositie van deze rij binnen de batch. |
command_tag |
STRING | Het type DDL-opdracht, bijvoorbeeld ALTER TABLE. |
object_type / object_name |
STRING | Het type en de naam van het object dat is gewijzigd. |
schema_name |
STRING | Het Postgres-schema waartoe het object behoort. |
query_text |
STRING | De volledige DDL-instructie. Gemaskerd. Zie tekst van de Gemaskerde verklaring. |
duration_ms |
Dubbel | Hoe lang de DDL-instructie duurde. |
userid / usename |
LANG /TEKENREEKS | De object-id en naam van de verbindingsrol. |
application_name |
STRING | De naam van de verbindende toepassing. |
backend_pid |
LONG | De back-endproces-id waarmee de instructie is uitgevoerd. |
dbid |
LONG | De object-id van de database. |
search_path |
STRING | Het zoekpad van de sessie op het moment. |
ddl_json |
STRING | Een gestructureerde, geparseerde weergave van de DDL-instructie. Gemaskerd. Zie tekst van de Gemaskerde verklaring. |
Note
DDL Capture heeft een echte kloof: een wijziging die direct rond een rekenproces van schaal naar nul wordt hervat, kan worden gemist. Als een schemawijziging hier niet wordt weergegeven, ook al weet u dat het is gebeurd, is dat de meest waarschijnlijke reden. Zie Beperkingen.
Postgres-logboeken
Onbewerkte Postgres-logboekberichten, inclusief de specifieke fout achter een fout.
postgres_logs
| Kolom | Type | Description |
|---|---|---|
sample_seq |
LONG | Rangschikkpositie van deze rij binnen de batch. |
elevel |
LONG | Interne codering op logboekniveau. |
severity |
STRING | De ernst van het logboek, bijvoorbeeld ERROR of LOG. |
sqlstate |
STRING | De Postgres SQLSTATE-foutcode, bijvoorbeeld 42703 voor een niet-gedefinieerde kolom. |
backend_pid / leader_backend_pid |
LONG | De id van het back-endproces en de pid van de parallelle queryleider, indien van toepassing. |
userid / usename |
LANG /TEKENREEKS | De object-id en naam van de verbindingsrol. |
datid / datname |
LANG /TEKENREEKS | De object-id en naam van de database. |
application_name / client_addr |
STRING | De naam en het clientadres van de verbindingstoepassing. |
schema_name / table_name / column_name / constraint_name / datatype_name |
STRING | Het schema, de tabel, de kolom, de beperking of het gegevenstype waarnaar wordt verwezen door de fout, wanneer Postgres er een heeft. |
funcname |
STRING | De functie waarin de fout is opgetreden, indien van toepassing. |
filename / lineno |
TEKENREEKS / LANG | Het Postgres-bronbestand en de regel waaruit de fout afkomstig is. |
message |
STRING | De tekst van het logboekbericht. |
detail / hint / context |
STRING | Aanvullende details, een voorgestelde oplossing en de context van de fout, wanneer Postgres deze heeft. |
internalquery |
STRING | Een intern gegenereerde query met betrekking tot de fout, indien van toepassing. |
statement |
STRING | De instructie die deze logboekvermelding heeft geactiveerd. Gemaskerd. Zie tekst van de Gemaskerde verklaring. |
truncated_mask |
LONG | Geeft aan welke velden, indien aanwezig, zijn afgekapt voordat ze werden geschreven. |
Note
De gestructureerde schema_namevelden en table_namecolumn_name velden worden niet ingevuld voor elk fouttype. Een gewone 'kolom bestaat niet' parseringsfout (SQLSTATE 42703bijvoorbeeld, laat ze leeg, zelfs als message de kolom rechtstreeks wordt genoemd. Vertrouw niet op deze velden die worden ingevuld. Controleer message eerst.
Metrische gegevens berekenen
Resourcegebruik op rekenniveau: CPU, geheugen, schijf en netwerk-I/O, en de lokale bestandscache (LFC), de cache aan de rekenzijde van Lakebase vóór de paginaserver.
compute_counters
| Kolom | Type | Description |
|---|---|---|
backpressure_throttling_seconds |
Dubbel | Tijd die de opslaglaag heeft besteed aan het beperken van schrijfbewerkingen in dit interval. Een niet-nulwaarde betekent dat schrijfvolume groter is dan wat opslag kan absorberen. |
host_busiest_cpu_seconds / host_cpu_seconds |
Dubbel | Cpu-tijd die wordt verbruikt, voor de drukste kern en in totaal. |
host_disk_read_bytes / host_disk_written_bytes |
Dubbel | Schijf-I/O-volume. |
host_network_receive_bytes / host_network_transmit_bytes |
Dubbel | Netwerk-I/O-volume. |
lfc_evictions / lfc_hits / lfc_misses / lfc_writes |
LONG | Lokale bestandscacheactiviteit voor dit interval. |
replica_lfc_redo_evictions |
LONG | Verwijderingen van lokale bestandscaches die worden veroorzaakt door het opnieuw uitvoeren van replica's, als deze berekening een leesreplica is. |
compute_gauges
| Kolom | Type | Description |
|---|---|---|
current_lsn |
LONG | De huidige positie van het schrijflogboek. |
replica_wal_replay_lsn / replica_wal_receive_lsn |
LONG | WAL-herhaling en -ontvangstposities, als deze berekening een leesreplica is. |
max_connections |
LONG | De geconfigureerde verbindingslimiet. |
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m |
LONG | Geschatte werksetgrootte in de afgelopen 5, 15 en 60 minuten. |
lfc_size_limit / lfc_allocated / lfc_used |
LONG | Capaciteit van lokale bestandscache en huidig gebruik. |
total_size_limit / total_size |
LONG | Totale opslagcapaciteit en huidig gebruik. |
replication_lag_bytes / replication_lag_time_ms |
LANG / DUBBEL | Replicatievertraging, als deze berekening een leesreplica is. |
host_logical_cpus / host_memory_total_bytes |
Dubbel | De ingerichte CPU en het geheugen van de berekening. |
Databasemetrieken
Activiteit per database: rijen gewijzigd, transacties, sessies en vacuümstatus. Hier leven tabel-bloat- en autovacuum-signalen.
database_counters
| Kolom | Type | Description |
|---|---|---|
datid / datname |
LANG /TEKENREEKS | De object-id en naam van de database. |
active_time_ms / idle_in_transaction_time_ms / session_time_ms |
Dubbel | De tijd die is besteed aan actief, inactief in een geopende transactie en de totale verbinding. |
deadlocks |
LONG | Aantal gedetecteerde impasses. |
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated |
LONG | Activiteit op rijniveau voor het interval. |
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed |
LONG | Aantal sessieslevenscycli. |
shared_blks_hit / shared_blks_read |
LONG | Activiteit van gedeelde buffercache. |
xact_commit / xact_rollback |
LONG | Vastgelegde en teruggedraaide transacties. |
database_gauges
| Kolom | Type | Description |
|---|---|---|
datid / datname |
LANG /TEKENREEKS | De object-id en naam van de database. |
numbackends |
LONG | Huidig aantal verbindingen met deze database. |
size |
LONG | De grootte van de database op schijf. |
oldest_frozen_xid_age / oldest_mxid_age |
LONG | Transactie-id en multixact-id-leeftijd van de oudste niet-berozen rij. Stijgende waarden zijn het vroegste signaal van vacuüm dat achtervalt, goed voordat bloat zichtbaar wordt in de tabelgrootte. |
Limitations
Note
Wachtwoorden worden geredigeerd terwijl een instructie wordt vastgelegd, dus een vastgelegd CREATE ROLE leest PASSWORD '***'. Redactie hangt af van het detecteren van het wachtwoord in de verklaring, en een verkeerd gevormde verklaring kan onopgemerkt worden.
Azure Databricks raadt OAuth-rollen aan, die Azure Databricks-identiteiten authenticeren met tokens en geen wachtwoord laten om te typen.
De volgende beperkingen zijn van toepassing:
COPYOperaties worden niet vastgelegd in de geschiedenis van het queryplan.Een query die wordt uitgevoerd in een PL/pgSQL-functie of -procedure, wordt niet vastgelegd in telemetrie op queryniveau, tenzij deze ook wordt uitgevoerd als instructie op het hoogste niveau. De ingebouwde statementtracking van Postgres telt standaard alleen statements op het hoogste niveau.
Takken en eindpunten verschijnen in telemetrie en inzichten via interne ID (bijvoorbeeld
br-odd-mud-y2icrn1h), niet via een weergavenaam zoals "productie." Kruisverwijs de ID in de Lakebase UI als je moet bevestigen naar welke branch of eindpunt een inzicht- of tabelrij verwijst.GUC's die telemetrie vastleggen inschakelen, worden mogelijk niet automatisch doorgegeven aan een bestaande berekening. Als telemetrie niet verschijnt nadat de preview is ingeschakeld, maak dan verbinding met het project en controleer het volgende:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Beide moeten
onretourneren. Als een van deze retourneertoff, start u het rekeneindpunt opnieuw op.
Legacy observability-configuraties
Voordat telemetrie naar systeemtabellen ging, kon je een observabiliteitsconfiguratie maken die telemetrie vastlegde naar een catalogus en schema in je eigen Unity-catalogus en vooraf gebouwde dashboards bood. Deze configuraties schrijven geen telemetrie meer naar die bestemmingen. Hun dashboards blijven beschikbaar met historische gegevens, maar ontvangen geen nieuwe gegevens. Je kunt geen nieuwe observability-configuraties meer maken, en capture to system tables creëert geen dashboards.
Volgende stappen
- Detecteer problemen met Insights: de medewerker die deze telemetrie op schema beoordeelt.
- Onderzoek en los problemen met Genie op: stel vragen over deze telemetrie in je eigen woorden.
- Lakebase systeemtabelreferentie: waar deze tabellen staan tussen de andere systeemtabellen.