Einstellung der Grade für Protokollierung, Metriken und Ablaufverfolgung¶
Sie können die Schwellenwerte für Protokollier-, Ablaufverfolgung oder Metrikdaten einstellen, die in einer Ereignistabelle erfasst werden.
Für jeden Typ von Telemetriedaten können Sie Folgendes tun:
Legen Sie für jeden Typ von Telemetriedaten spezifische Grade fest.
Legen Sie jeweils systemweite Grade fest, die in Kraft bleiben, wenn sie nicht überschrieben werden.
Überschreiben Sie die systemweiten Grade, indem Sie den Grad für eine Sitzung oder für bestimmte Objekte (wie Prozeduren und UDFs einstellen).
Die Grade werden sowohl als Sitzungsparameter als auch als Objektparameter dargestellt.
Verstehen von Protokollier-, Metrik- und Ablaufverfolgungsgraden¶
Jeder Telemetriedatentyp unterstützt eine eigene Reihe von Graden, die für ihren Zweck spezifisch sind. Sie können diese Grade mit Hilfe des Parameters festlegen, den Snowflake für jeden Grad bereitstellt. Sie können einige Grade auch mit Snowsight festlegen, das die Gradparameter auf vereinfachte Weise darstellt.
Sie können jede dieser Einstellungen auf folgende Weise vornehmen:
Auf der Kontoebene.
Auf Ebene der Datenbank, des Schemas oder eines anderen Objekts mit SQL.
Auf Ebene der Datenbank oder des Schemas unter Verwendung von Snowsight.
Auf der Sitzungsebene.
- Protokollieren:
Wenn Sie einen Grad festlegen, werden nur Daten auf diesem Grad und schwerwiegenderen Gade in einer Ereignistabelle erfasst und in Snowsight sichtbar. Wenn Sie beispielsweise den Parameter LOG_LEVEL auf WARN setzen, werden Meldungen der Schweregrade WARN, ERROR und FATAL in der Ereignistabelle erfasst.
Die Grade werden durch den LOG_LEVEL-Parameter bestimmt.
- Kennzahlen:
Sie können derzeit alle Metrikdaten erfassen lassen oder keine.
Die Grade werden durch den METRIC_LEVEL-Parameter bestimmt.
- Ablaufverfolgung:
Sie können den Bereich (Scope) der in der Ereignistabelle gespeicherten Daten von Ablaufverfolgungsereignissen festlegen.
Die Grade werden durch den TRACE_LEVEL-Parameter bestimmt.
Einstellung des Grades für das Konto¶
Für jeden Telemetriedatentyp können Sie die Grade für das Konto festlegen. Sie können diese Grade auf Objekt- und Sitzungsebene überschreiben, wie in Erläuterungen zur Bestimmung des effektiven Grads durch Snowflake beschrieben.
Überprüfen Sie, ob Sie über die erforderlichen Berechtigungen verfügen¶
Um Grade für das Konto festzulegen, müssen Sie eine Rolle verwenden, der die unten beschriebenen Berechtigungen gewährt werden oder die diese erbt.
Weitere Informationen zu den Berechtigungen finden Sie unter Zugriffssteuerungsrechte.
Zu ändernder Grad |
Einzustellender Parameter |
Erforderliche Berechtigungen |
---|---|---|
Protokolliergrad |
MODIFY LOG LEVEL für das Konto |
|
Metrische Ebene |
MODIFY METRIC LEVEL für das Konto |
|
Verfolgungsebene |
MODIFY TRACE LEVEL für das Konto |
Der Code im folgenden Beispiel gewährt die Berechtigungen, die jemand mit der Rolle central_log_admin
benötigt, um die Protokolliergrade für das Konto feszulegen.
GRANT MODIFY LOG LEVEL ON ACCOUNT TO ROLE central_log_admin;
Einstellung des Grads auf dem Konto in Snowsight¶
Bemerkung
Snowsight die Unterstützung für die Protokollierung und Ablaufverfolgung ist ein Feature, das in der Vorschau für alle Konten verfügbar ist.
Sie können Snowsight verwenden, um die Telemetriegrade auf der Kontoebene einzustellen.
Vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Monitoring » Traces and Logs aus.
Wählen Sie auf der Traces & Logs-Seite die Set Event Level-Seite.
Wählen Sie unter Set logging & tracing for die Option Account aus.
Wählen Sie die Grade der Telemetriedaten, die Sie anpassen möchten.
All Events
On zum Einschalten der Erfassung aller Arten von Telemetriedaten; Off zum Abschalten der Erfassung aller Arten von Daten.
Traces
On um die Ablaufverfolgung auf
ALWAYS
einzustellen; Off um die Ablaufverfolgung aufOFF
einzustellen. Weitere Informationen zu den Graden finden Sie unter TRACE_LEVEL.Logs
On um die Protokolldatenerfassung auf
INFO
einzustellen. Weitere Informationen zu den Graden finden Sie unter LOG_LEVEL.Metrics
On um die Ablaufverfolgung auf
ALL
einzustellen; Off um die Ablaufverfolgung aufNONE
einzustellen. Weitere Informationen zu den Graden finden Sie unter METRIC_LEVEL.
Einstellen des Grades auf dem Konto mit SQL¶
Sie können SQL verwenden, um die Grade für Telemetriedaten für das Konto festzulegen.
Um den Grad dfür er Telemetriedaten auf dem Konto festzulegen, gehen Sie wie folgt vor:
Vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.
Verwenden Sie den Befehl ALTER ACCOUNT, um den entsprechenden Parameter einzustellen, der auf den Telemetriedaten basiert, die Sie sammeln möchten.
Eine Liste der Grade, die Sie verwenden können, finden Sie unter Verstehen von Protokollier-, Metrik- und Ablaufverfolgungsgraden.
Das folgende Beispiel setzt die Protokolliergrade für das Konto auf ERROR.
-- Set the log level on the account ALTER ACCOUNT SET LOG_LEVEL = ERROR;
Einstellung des Grades für ein Objekt¶
Für jede Art von Telemetriedaten können Sie den Grad auf den folgenden Objekten festlegen:
Gespeicherte Prozedur
Benutzerdefinierte Funktion (UDF) oder benutzerdefinierte Tabellenfunktion (UDTF)
Datenbank oder Schema mit entsprechenden Prozeduren und Funktionen
Bemerkung
Sie können die Gradeinstellung nicht für Streamlit-Objekte vornehmen. Setzen Sie stattdessen die Ebene auf die Datenbank oder das Schema, das das Objekt enthält.
Überprüfen Sie, ob Sie über die erforderlichen Berechtigungen verfügen¶
Um Grade auf einem Objekt festzulegen, müssen Sie eine Rolle verwenden, die die unten beschriebenen Berechtigungen besitzt oder erbt.
Weitere Informationen über Berechtigungen finden Sie unter Zugriffssteuerungsrechte.
Zu ändernder Grad |
Einzustellender Parameter |
Erforderliche Berechtigungen |
---|---|---|
Protokolliergrad |
|
|
Metrische Ebene |
|
|
Verfolgungsebene |
|
Der Code im folgenden Beispiel gewährt die Berechtigungen, die jemand mit der Rolle central_log_admin
benötigt, um die Festlegung der Protokolliergrade für die db1
-Datenbank vorzunehmen.
GRANT MODIFY LOG LEVEL ON ACCOUNT TO ROLE central_log_admin;
GRANT MODIFY ON DATABASE db1 TO ROLE central_log_admin;
Einstellen des Grades für eine Datenbank oder ein Schema in Snowsight¶
Bemerkung
Snowsight die Unterstützung für die Protokollierung und Ablaufverfolgung ist ein Feature, das in der Vorschau für alle Konten verfügbar ist.
Sie können Snowsight verwenden, um die Telemetriegrade festzulegen. Bevor Sie beginnen, vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.
Vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Monitoring » Traces and Logs aus.
Wählen Sie auf der Traces & Logs-Seite die Set Event Level-Seite.
Wählen Sie unter Set logging & tracing for die Datenbank und optional das Schema aus, für das Sie die Gradeinstellungen vornehmen möchten.
Wählen Sie die Grade der Telemetriedaten, die Sie anpassen möchten.
All Events
On zum Einschalten der Erfassung aller Arten von Telemetriedaten; Off zum Abschalten der Erfassung aller Arten von Daten.
Traces
On um die Ablaufverfolgung auf
ALWAYS
einzustellen; Off um die Ablaufverfolgung aufOFF
einzustellen. Weitere Informationen zu den Graden finden Sie unter TRACE_LEVEL.Logs
On um die Protokolldatenerfassung auf
INFO
einzustellen. Weitere Informationen zu den Graden finden Sie unter LOG_LEVEL.Metrics
On um die Ablaufverfolgung auf
ALL
einzustellen; Off um die Ablaufverfolgung aufNONE
einzustellen. Weitere Informationen zu den Graden finden Sie unter METRIC_LEVEL.
Einstellung des Grades für eine Datenbank, ein Schema oder ein anderes Objekt mit SQL¶
Sie können SQL verwenden, um Grade für die Protokollierung, Metriken und Ablaufverfolgung festzulegen.
Um den Grad für Telemetriedaten für ein Objekt festzulegen, gehen Sie wie folgt vor:
Vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.
Verwenden Sie den Befehl ALTER <Objekt>, um den Parameter LOG_LEVEL für das Objekt festzulegen.
Eine Liste der Grade, die Sie verwenden können, finden Sie unter Verstehen von Protokollier-, Metrik- und Ablaufverfolgungsgraden.
Um beispielsweise den Protokolliergrad für eine bestimmte UDF einzustellen, verwenden Sie ALTER FUNCTION zum Einstellen des Parameters LOG_LEVEL für diese UDF. Oder um beispielsweise den Standard-Protokolliergrad für alle Funktionen und Prozeduren in einer Datenbank festzulegen, verwenden Sie ALTER DATABASE zum Einstellen des Parameters LOG_LEVEL für diese Datenbank.
Im folgenden Beispiel wird der Protokolliergrad für alle Funktionen und Prozeduren in der Datenbank
db
auf ERROR gesetzt. Das Beispiel ändert den Protokolliergrad der UDFf1(int)
in WARN.USE ROLE central_log_admin; -- Set the log levels on a database and UDF. ALTER DATABASE db1 SET LOG_LEVEL = ERROR; ALTER FUNCTION f1(int) SET LOG_LEVEL = WARN;
Weitere Informationen dazu, wie Snowflake den effektiven Protokolliergrad bestimmt, wenn der LOG LEVEL auf verschiedene Objekte gesetzt ist, finden Sie unter Erläuterungen zur Bestimmung des effektiven Grads durch Snowflake.
Einstellen des Grades für die aktuelle Sitzung¶
So stellen Sie den Grad für Aufrufe von Funktionen und Prozeduren ein, die in der aktuellen Sitzung ausgeführt werden:
Überprüfen Sie, ob Sie die Berechtigung haben, den Grad für die Sitzung festzulegen.
Sie müssen eine Rolle verwenden, die je nach Einstellung über die folgenden Berechtigungen verfügt:
Zu ändernder Grad
Einzustellender Parameter
Erforderliche Berechtigungen
Protokolliergrad
MODIFY SESSION LOG LEVEL
Metrische Ebene
MODIFY SESSION METRIC LEVEL
Verfolgungsebene
MODIFY SESSION TRACE LEVEL
Um beispielsweise der Rolle
developer_debugging
die Berechtigung zuzuweisen, die Protokolliergrade für die aktuelle Sitzung festzulegen, führen Sie die folgende Anweisung aus:GRANT MODIFY SESSION LOG LEVEL ON ACCOUNT TO ROLE developer_debugging;
Verwenden Sie den Befehl ALTER SESSION, um den Parameter LOG_LEVEL für die aktuelle Sitzung festzulegen.
Beispiel:
USE ROLE developer_debugging; -- Set the logging level to DEBUG for the current session. ALTER SESSION SET LOG_LEVEL = DEBUG;
Wenn der Gradparameter für die aktuelle Sitzung und für die in dieser Sitzung aufgerufenen Funktionen und Prozeduren auf unterschiedliche Grade gesetzt ist, bestimmt Snowflake den zu verwendenden effektiven Protokolliergrad. Siehe Erläuterungen zur Bestimmung des effektiven Grads durch Snowflake.
Erläuterungen zur Bestimmung des effektiven Grads durch Snowflake¶
Für Telemetriedaten können Sie auf Grade bezogene Parameter (sowohl für Objekte als auch für Sitzungen) überschreiben, indem Sie eine Hierarchie von Graden verwenden.
Sie können z. B. einen Grad auf einen Wert für das Konto einstellen und diesen dann überschreiben, indem Sie den Grad für ein Objekt festlegen, der in der Hierarchie tiefer liegt.
Im Folgenden wird die Hierarchie für Gradparameter auf Sitzungs- und Objektebene beschrieben.
Die Hierarchie für Sitzungsparameter ist: Konto » Benutzer » Sitzung.
Das bedeutet: Sie können den Parameter für ein Konto festlegen, und dann können Sie den Parameter für einen Benutzer auf Kontoebene überschreiben und Sie können den Parameter für die aktuelle Sitzung auf Benutzerebene überschreiben.
Die Hierarchie für Objektparameter ist: Konto » Datenbank » Schema » Objekt.
Das bedeutet: Sie können den Parameter für ein Konto festlegen, und dann können Sie den Parameter für eine Datenbank oder ein Schema auf Kontoebene überschreiben und Sie können den Datenbank- bzw. Schema-spezifischen Parameter für gespeicherte Prozeduren und UDFs in dieser Datenbank bzw. in diesem Schema überschreiben.
So überschreibt beispielsweise der LOG_LEVEL für eine Funktion den LOG_LEVEL für das Konto, das die Funktion enthält. Wenn der LOG_LEVEL für das Konto FATAL ist und der LOG_LEVEL für die Java-UDF in dem Konto INFO ist, dann ist der effektive LOG_LEVEL INFO (der Grad für die Funktion, nicht der Grad für das Konto):
ALTER ACCOUNT SET LOG_LEVEL = FATAL;
ALTER FUNCTION MyJavaUDF SET LOG_LEVEL = INFO;
-- The INFO log level is used because the FUNCTION MYJAVAUDF
-- is lower than the ACCOUNT in the hierarchy.
In Fällen, in denen der Grad sowohl in der Sitzungs- als auch in der Objektparameterhierarchie gesetzt ist, wird der ausführlichste Grad verwendet.
Für die Protokolliergrade finden Sie in der folgenden Tabelle Beispiele dafür, wie sich die für die Sitzung und das Objekt festgelegten Parameter auf den verwendeten Protokolliergrad auswirken.
Wert für Sitzung
Wert für Objekt, Schema, Datenbank oder Konto
Verwendeter Protokolliergrad
(nicht festgelegt)
WARN
WARN
DEBUG
(nicht festgelegt)
DEBUG
WARN
ERROR
WARN
INFO
DEBUG
DEBUG
(nicht festgelegt)
(nicht festgelegt)
OFF
Für metrische Ebene —
ALL
überschreibtNONE
.Für Protokolliergrad —
ALWAYS
überschreibtON_EVENT
undOFF
;ON_EVENT
überschreibtOFF
.