Telemetrietabellenreferenz

Important

Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.

Diese Seite dokumentiert die Tabellen Lakebase-Schreibvorgänge in Ihr Unity-Katalogschema, sobald Sie die Observierbarkeit für ein Projekt konfigurieren. Insights und Genie lesen diese Daten, und da sie in Ihrem eigenen Unity-Katalog landet, können Sie sie direkt mit jedem Azure Databricks Tool abfragen.

Note

Dies ist ein Beta-Feature. Tabellen- und Spaltennamen können sich vor der allgemeinen Verfügbarkeit ändern.

Was erfasst wird

Lakebase erfasst die Signale, nach der ein erfahrener DBA suchen würde, und landet in einer Handvoll Tabellen, die Sie direkt abfragen können, nachdem sie exportiert wurden:

Erfasste Elemente Wo sie landet
Aktive Sitzungen und Warteereignisse active_session_history, wait_event_counters
Abfragepläne und Abfrageausführungsstatistiken plan_history, pg_stat_statements_counters
Schemaänderungen: Was sich geändert hat, wann und von wem ddl_history
Datenbankstatistiken: Größe, Lesen und Ändern von Zeilen und Sitzungsanzahl database_counters, database_gauges
Berechnen der Ressourcenauslastung: CPU, Arbeitsspeicher, Cache, Verbindungen compute_counters, compute_gauges
Roh-Postgres-Protokollmeldungen, einschließlich des Fehlers, der einem Fehlschlag zugrunde liegt postgres_logs

Insights und Genie lesen diese Daten, um ihre Antworten auf das zu stützen, was tatsächlich in Ihrer Datenbank passiert ist, und dieselben Tabellen treiben die fertigen Observability-Dashboards an. Der Rest dieser Seite dokumentiert jede Spalte in jeder Tabelle.

Spalten, die für jede Tabelle gemeinsam sind

Jede tabelle unten enthält diese Spalten, aus denen eine Zeile stammt:

Column Type Beschreibung
project_id STRING Das Lakebase-Projekt, aus dem die Zeile stammte.
branch_id STRING Die Verzweigung der Zeile stammte von.
endpoint_id STRING Der Computeendpunkt, von dem die Zeile stammt.
compute_id STRING Die spezifische Computeinstanz. Dies ändert sich, wenn eine Berechnung auf Null skaliert und fortgesetzt wird.
ts TIMESTAMP Wann die Zeile aufgezeichnet wurde.
compute_mode STRING Der Computermodus zum Zeitpunkt, z. B. Lese-/Schreibzugriff oder schreibgeschützt.

Tabellen mit Namen, die auf "Enden" _counters enden, enthalten auch eine previous_ts Spalte, wobei der Anfang des Intervalls markiert wird, für das die Werte einer Zeile angesammelt wurden. Dies sind kumulierte Werte für dieses Intervall, nicht punktinterne Lesezeiten. Tabellen, die in der Zeit enden, sind stattdessen Punkt-in-Time-Lesezeiten _gauges und haben keine previous_ts.

In den folgenden Tabellen sind nur die Spalten aufgeführt, die über diese allgemeinen Spalten hinausgehen.

Sitzungsaktivität

Eine Momentaufnahme aller aktiven Back-End-Dateien, die kontinuierlich in die Stichprobe einbezogen werden. Dies ist das gleiche Muster wie AWS Performance Insights oder Oracles Active Session History (ASH): Wenn eine Sitzung etwas tut, einschließlich Warten, wird sie hier angezeigt.

active_session_history

Column Type Beschreibung
sample_seq LONG Ordnungsposition dieser Stichprobe innerhalb des Batches.
pid LONG Die Prozess-ID des Back-Ends.
datid LONG Die Objekt-ID der Datenbank.
userid LONG Die Objekt-ID der Verbindungsrolle.
queryid LONG Identifiziert die auszuführende Abfrage. Übereinstimmungen queryid in pg_stat_statements_counters.
wait_event_info LONG Interne Codierung des Wait-Ereignisses.
wait_event_type STRING Die Kategorie des Wait-Ereignisses, z. B Timeout . oder Lock.
wait_event STRING Das spezifische Wait-Ereignis, z. B PgSleep. .
backend_state LONG Der Status des Back-Ends, z. B. aktiv oder im Leerlauf.
backend_type LONG Der Typ des Back-End-Prozesses.
xact_age_ms LONG Wie lange die aktuelle Transaktion geöffnet ist.
query_age_ms LONG Wie lange die aktuelle Abfrage ausgeführt wurde.
blocking_pid LONG Die PID einer Sitzung, die diese Sitzung blockiert, falls vorhanden.
leader_pid LONG Die PID des parallelen Abfrageleiters, wenn es sich bei diesem Back-End um einen parallelen Worker handelt.
flags LONG Interne Statuskennzeichnungen.
plan_fingerprint LONG Links zu einem bestimmten Plan-Shape in plan_history.
appname_hash LONG Ein Hash des Namens der verbindenden Anwendung.

Wait-Ereignisse

Aggregierte Warteereignisanzahl und -zeit, ergänzt die Ansicht pro Beispiel in active_session_history.

wait_event_counters

Column Type Beschreibung
wait_event_id LONG Interne Codierung des Wait-Ereignisses.
wait_class_name STRING Die Kategorie des Wait-Ereignisses.
wait_event_name STRING Das spezifische Wait-Ereignis.
wait_event_count LONG Wie oft dieses Wartezeitereignis im Intervall aufgetreten ist.
wait_event_time DOPPELT Gesamtzeit für dieses Wartezeitereignis während des Intervalls.

Abfragepläne

Ein Datensatz pro Ausführung von Abfrageplänen, einschließlich des vollständigen Plans und neonspezifischer Speicherstatistiken. Dies ist die detaillierteste Tabelle, und in der Regel endet eine Untersuchung mit langsamen Abfragen.

plan_history

Column Type Beschreibung
row_position LONG Ordnungsposition dieser Zeile innerhalb des Batches.
analyze_enabled BOOLEAN Gibt an, ob der Plan tatsächliche Ausführungsstatistiken (EXPLAIN ANALYZE) enthält, nicht nur Schätzungen.
buffers_enabled BOOLEAN Gibt an, ob der Plan Puffernutzungsstatistiken enthält.
query_hash STRING Hash zur Identifizierung des Abfragetexts.
queryid LONG Identifiziert die Abfrage. Übereinstimmungen queryid in pg_stat_statements_counters und active_session_history.
duration_ms DOPPELT Wie lange die Abfrage ausgeführt wurde.
total_cost DOPPELT Die geschätzten Kosten des Planners für die Abfrage.
plan_rows LONG Die geschätzte Zeilenanzahl des Planners.
actual_rows LONG Die tatsächlich zurückgegebene Zeilenanzahl.
plan_fingerprint LONG Identifiziert dieses bestimmte Plan-Shape. Übereinstimmungen plan_fingerprint in active_session_history.
lock_wait_time_ms DOPPELT Zeit für das Warten auf Sperren.
planning_time_ms DOPPELT Zeitaufwand für die Planung der Abfrage, getrennt von der Ausführung.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Aktivität des freigegebenen Puffercaches für diese Ausführung.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG Lokale Pufferaktivität für temporäre Tabellen.
temp_blks_read / temp_blks_written LONG Temporäre Dateiaktivität, z. B. aus einer großen Sortierung oder einem großen Hash.
neon_getpage_count LONG Anzahl der Seitenanforderungen, die an den Seitenserver gesendet wurden.
neon_file_cache_hits LONG Anzahl der Seiten, die vom lokalen Dateicache anstelle des Seitenservers bereitgestellt werden.
neon_getpage_wait_us LONG Zeit für das Warten auf Seitenserver-Seitenanforderungen in Mikrosekunden.
backend_pid LONG Die Back-End-Prozess-ID, die diese Abfrage ausgeführt hat.
lock_wait_count LONG Häufigkeit, mit der diese Ausführung auf eine Sperre gewartet hat.
userid / dbid LONG Die Objekt-IDs der Verbindungsrolle und der Datenbank.
query_text STRING Der Abfragetext.
plan_json STRING Der vollständige Abfrageplan als JSON.
usename / datname STRING Die Namen der Verbindungsrolle und der Datenbank.
application_name / client_addr STRING Der Name und die Clientadresse der verbindenden Anwendung.
wait_events STRING Warteereignisse, die während dieser Ausführung beobachtet wurden.
parameters STRING Binden Von Parametern, die in der Abfrage verwendet werden, falls vorhanden.
blocking_pids STRING PIDs von Sitzungen, die diese Ausführung blockiert haben, falls vorhanden.
neon_branch_id / neon_endpoint_id / neon_timeline_id STRING Interne Neon-IDs für die Verzweigung, den Endpunkt und die Zeitachse.
cpu_user_time_ms / cpu_sys_time_ms DOPPELT Cpu-Zeit, die von dieser Ausführung verbraucht wird, aufgeteilt in Benutzer- und Systemzeit.
voluntary_csw / involuntary_csw LONG Kontextschalter während dieser Ausführung.
trace_id / span_id / trace_flags / service_name SAITE / SAITE / LANG / SAITE OpenTelemetry-Ablaufverfolgungs-IDs, wenn die Abfrage Teil einer ablaufverfolgungsbezogenen Anforderung war.
timeline_id LONG Interner Zeitachsenbezeichner.
truncated BOOLEAN Gibt an, ob die Daten dieser Zeile (z. B. ein großer Plan) vor dem Schreiben abgeschnitten wurden.

Abfragestatistik

Aggregierte Statistiken pro Abfrage, die aus der Standarderweiterung pg_stat_statements stammen.

pg_stat_statements_counters

Column Type Beschreibung
userid / dbid LONG Die Objekt-IDs der Verbindungsrolle und der Datenbank.
queryid LONG Identifiziert die Abfrage. Übereinstimmungen queryid in plan_history und active_session_history.
toplevel BOOLEAN Gibt an, ob diese Zeile für eine Anweisung der obersten Ebene gilt, im Gegensatz zu einer in einer PL/pgSQL-Funktion oder -Prozedur geschachtelten Anweisung. Siehe die PL/pgSQL-Einschränkung.
query STRING Der Abfragetext.
calls LONG Häufigkeit, mit der diese Abfrage im Intervall ausgeführt wurde.
plans LONG Häufigkeit, mit der diese Abfrage im Intervall geplant wurde.
rows LONG Gesamtzahl der zurückgegebenen oder betroffenen Zeilen.
total_exec_time / total_plan_time DOPPELT Gesamtzeit für die Ausführung und Planung dieser Abfrage im Intervall.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Aktivität des freigegebenen Puffercaches.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG Lokale Pufferaktivität für temporäre Tabellen.
temp_blks_read / temp_blks_written LONG Temporäre Dateiaktivität.
wal_bytes / wal_fpi / wal_records LONG Von dieser Abfrage generiertes Schreibzugriffsprotokollvolume.
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time Gemischt JIT-Kompilierungsstatistiken (just-in-time), wenn JIT für diese Abfrage verwendet wurde.

Schema-Änderungen

Schemaänderungen: Was sich geändert hat, wann und von wem. Dies ist, was Genie liest, um einen Vorfall auf eine Schemaänderung zurückzuverfolgen, ob von einer Bereitstellung oder einer manuellen Bearbeitung.

ddl_history

Column Type Beschreibung
row_position LONG Ordnungsposition dieser Zeile innerhalb des Batches.
command_tag STRING Der Typ des DDL-Befehls, z ALTER TABLE. B. .
object_type / object_name STRING Die Art und der Name des geänderten Objekts.
schema_name STRING Das Postgres-Schema, zu dem das Objekt gehört.
query_text STRING Die vollständige DDL-Anweisung.
duration_ms DOPPELT Wie lange die DDL-Anweisung ausgeführt wurde.
userid / usename LONG / SAITE Die Objekt-ID und der Name der Verbindungsrolle.
application_name STRING Der Name der Verbindungsanwendung.
backend_pid LONG Die Back-End-Prozess-ID, die die Anweisung ausgeführt hat.
dbid LONG Die Objekt-ID der Datenbank.
search_path STRING Der Suchpfad der Sitzung zum Zeitpunkt.
ddl_json STRING Eine strukturierte, analysierte Darstellung der DDL-Anweisung.

Note

DDL-Erfassung hat eine echte Lücke: Eine Änderung, die direkt um eine Computesumsumierung von Scale-to-Zero vorgenommen wurde, kann übersehen werden. Wenn hier keine Schemaänderung angezeigt wird, obwohl Sie wissen, dass es passiert ist, ist dies der wahrscheinlichste Grund. Informationen finden Sie unter Einschränkungen.

Postgres-Protokolle

Unformatierte Postgres-Protokollmeldungen, einschließlich des spezifischen Fehlers hinter einem Fehler.

postgres_logs

Column Type Beschreibung
sample_seq LONG Ordnungsposition dieser Zeile innerhalb des Batches.
elevel LONG Interne Protokollebenencodierung.
severity STRING Der Schweregrad des Protokolls, z. B ERROR . oder LOG.
sqlstate STRING Der SqlSTATE-Fehlercode für Postgres, z 42703 . B. für eine nicht definierte Spalte.
backend_pid / leader_backend_pid LONG Die Back-End-Prozess-ID und die PID des parallelen Abfrageleiters, falls zutreffend.
userid / usename LONG / SAITE Die Objekt-ID und der Name der Verbindungsrolle.
datid / datname LONG / SAITE Die Objekt-ID und der Name der Datenbank.
application_name / client_addr STRING Der Name und die Clientadresse der verbindenden Anwendung.
schema_name / table_name / column_name / constraint_name / datatype_name STRING Das Schema, die Tabelle, die Spalte, die Einschränkung oder der Datentyp, auf den durch den Fehler verwiesen wird, wenn Postgres einen hat.
funcname STRING Die Funktion, in der der Fehler aufgetreten ist, falls zutreffend.
filename / lineno SAHNE / LANG Die Postgres-Quelldatei und zeilen den Fehler aus.
message STRING Der Protokollmeldungstext.
detail / hint / context STRING Weitere Details, eine vorgeschlagene Lösung und der Kontext des Fehlers, wenn Postgres sie hat.
internalquery STRING Eine intern generierte Abfrage im Zusammenhang mit dem Fehler, falls zutreffend.
statement STRING Die Anweisung, die diesen Protokolleintrag ausgelöst hat.
truncated_mask LONG Gibt an, welche Felder ggf. abgeschnitten wurden, bevor sie geschrieben werden.

Note

Die strukturierten schema_nameFelder table_nameund column_name Felder werden nicht für jeden Fehlertyp aufgefüllt. Ein einfacher Analysefehler "Spalte ist nicht vorhanden" (SQLSTATE 42703), z. B. lässt sie leer, obwohl message die Spalte direkt benannt wird. Verlassen Sie sich nicht darauf, dass diese Felder aufgefüllt werden. Überprüfen Sie message zuerst.

Berechnen von Metriken

Ressourcenauslastung auf Computeebene: CPU, Arbeitsspeicher, Datenträger und Netzwerk-E/A sowie der lokale Dateicache (LFC), der computeseitige Cache von Lakebase vor dem Pageserver.

compute_counters

Column Type Beschreibung
backpressure_throttling_seconds DOPPELT Zeit, die die Speicherschicht für die Drosselung von Schreibvorgängen in diesem Intervall aufgewendet hat. Ein Wert ungleich Null bedeutet, dass das Schreibvolumen überschreitet, was Speicher aufnehmen kann.
host_busiest_cpu_seconds / host_cpu_seconds DOPPELT CPU-Zeit verbraucht, für den größten Kern und insgesamt.
host_disk_read_bytes / host_disk_written_bytes DOPPELT Datenträger-E/A-Volume.
host_network_receive_bytes / host_network_transmit_bytes DOPPELT Netzwerk-E/A-Volume.
lfc_evictions / lfc_hits / lfc_misses / lfc_writes LONG Lokale Dateicacheaktivität für dieses Intervall.
replica_lfc_redo_evictions LONG Lokale Dateicacheräumungen, die durch Replikat wiederholen verursacht werden, wenn es sich bei dieser Berechnung um ein Lesereplikat handelt.

compute_gauges

Column Type Beschreibung
current_lsn LONG Die aktuelle Position des Schreib-Ahead-Protokolls.
replica_wal_replay_lsn / replica_wal_receive_lsn LONG Wal replay and receive positions, if this compute is a read replica.
max_connections LONG Der konfigurierte Verbindungsgrenzwert.
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m LONG Geschätzte Arbeitssatzgröße über die letzten 5, 15 und 60 Minuten.
lfc_size_limit / lfc_allocated / lfc_used LONG Kapazität des lokalen Dateicaches und der aktuellen Nutzung.
total_size_limit / total_size LONG Gesamtspeicherkapazität und aktuelle Nutzung.
replication_lag_bytes / replication_lag_time_ms LANG / DOPPELT Replikationsverzögerungen, wenn es sich bei dieser Berechnung um ein Lesereplikat handelt.
host_logical_cpus / host_memory_total_bytes DOPPELT Die bereitgestellte CPU und der Arbeitsspeicher des Computes.

Datenbankmetriken

Aktivität pro Datenbank: Zeilen geändert, Transaktionen, Sitzungen und Vakuumintegrität. Hier leben Tabellenblähungen und Autovacuum-Signale.

database_counters

Column Type Beschreibung
datid / datname LONG / SAITE Die Objekt-ID und der Name der Datenbank.
active_time_ms / idle_in_transaction_time_ms / session_time_ms DOPPELT Die in einer geöffneten Transaktion im Leerlauf verbrachte Zeit und insgesamt verbunden.
deadlocks LONG Anzahl der erkannten Deadlocks.
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated LONG Aktivität auf Zeilenebene für das Intervall.
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed LONG Die Anzahl des Sitzungslebenszyklus.
shared_blks_hit / shared_blks_read LONG Aktivität des freigegebenen Puffercaches.
xact_commit / xact_rollback LONG Zugesicherte und zurückgesetzte Transaktionen.

database_gauges

Column Type Beschreibung
datid / datname LONG / SAITE Die Objekt-ID und der Name der Datenbank.
numbackends LONG Aktuelle Anzahl von Verbindungen zu dieser Datenbank.
size LONG Die Größe der Datenbank auf dem Datenträger.
oldest_frozen_xid_age / oldest_mxid_age LONG Transaktions-ID und Multixact-ID Alter der ältesten nichtfrozen Zeile. Steigende Werte sind das früheste Signal des Vakuums, das hinter sich fällt, gut bevor Dieblähungen in der Tabellengröße sichtbar werden.

Einschränkungen

Warning

Wenn Sie Rollen zum Verbinden von Anwendungen erstellen, kann ein Kennwort, das in eine CREATE ROLE ... PASSWORD '...' SQL-Anweisung eingegeben wurde, im Abfrage- oder Anweisungsverlauf enden. Erstelle die Rolle stattdessen über die UI, SDK, API oder CLI, die das Passwort serverseitig generieren, sodass du es nie als Klartext eingibst. Die Benutzeroberfläche zeigt das generierte Passwort einmal an. Das SDK, die API und die CLI geben sie nicht zurück, also besorge dir danach ein Passwort. Siehe Wie man ein Passwort erhält.

Während der Betaversion gelten die folgenden Einschränkungen:

  • COPY Vorgänge werden derzeit nicht im Abfrageplanverlauf erfasst.

  • Eine Abfrage, die in einer PL/pgSQL-Funktion oder -Prozedur ausgeführt wird, wird nicht in Telemetrie auf Abfrageebene erfasst, es sei denn, sie wird auch als Anweisung der obersten Ebene ausgeführt. Die eigene Anweisungsverfolgung von Postgres zählt standardmäßig nur Anweisungen auf oberster Ebene.

  • Zweige und Endpunkte erscheinen in exportierten Telemetriedaten und Insights unter ihrer internen ID (zum Beispiel br-odd-mud-y2icrn1h), nicht unter einem Anzeigenamen wie „production“. Gleichen Sie die ID in der Lakebase-Benutzeroberfläche ab, wenn Sie prüfen müssen, auf welchen Zweig oder Endpunkt sich ein Insight oder eine Tabellenzeile bezieht.

  • GUCs, die die Telemetrieerfassung aktivieren, werden möglicherweise nicht automatisch an eine vorhandene Berechnung weitergegeben. Wenn telemetrie nach der Konfiguration der Observability nicht angezeigt wird, stellen Sie eine Verbindung mit dem Projekt her, und überprüfen Sie Folgendes:

    SHOW neon_monitor.log_capture_enabled;
    SHOW databricks.o11y_exporter_enabled;
    

    Beide müssen on zurückgeben. Wenn eine von beiden off zurückgibt, starten Sie den Compute-Endpunkt neu.

Nächste Schritte