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:

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

LOG_LEVEL

MODIFY LOG LEVEL für das Konto

Metrische Ebene

METRIC_LEVEL

MODIFY METRIC LEVEL für das Konto

Verfolgungsebene

TRACE_LEVEL

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;
Copy

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.

  1. Vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.

  2. Melden Sie sich bei Snowsight an.

  3. Wählen Sie im Navigationsmenü die Option Monitoring » Traces and Logs aus.

  4. Wählen Sie auf der Traces & Logs-Seite die Set Event Level-Seite.

  5. Wählen Sie unter Set logging & tracing for die Option Account aus.

  6. 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 auf OFF 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 auf NONE 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:

  1. Vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.

  2. 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;
    
    Copy

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

LOG_LEVEL

  • MODIFY LOG LEVEL für das Konto

  • MODIFY auf das Objekt, für das Sie den Grad festlegen möchten

  • USAGE auf der Datenbank oder dem Schema, das die Prozedur oder UDF enthält, für die Sie die Gradeinstellung vornehmen möchten

Metrische Ebene

METRIC_LEVEL

  • MODIFY METRIC LEVEL für das Konto

  • MODIFY auf das Objekt, für das Sie den Grad festlegen möchten

  • USAGE auf der Datenbank oder dem Schema, das die Prozedur oder UDF enthält, für die Sie die Gradeinstellung vornehmen möchten

Verfolgungsebene

TRACE_LEVEL

  • MODIFY TRACE LEVEL für das Konto

  • MODIFY auf das Objekt, für das Sie den Grad festlegen möchten

  • USAGE auf der Datenbank oder dem Schema, das die Prozedur oder UDF enthält, für die Sie die Gradeinstellung vornehmen möchten

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;
Copy

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.

  1. Vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.

  2. Melden Sie sich bei Snowsight an.

  3. Wählen Sie im Navigationsmenü die Option Monitoring » Traces and Logs aus.

  4. Wählen Sie auf der Traces & Logs-Seite die Set Event Level-Seite.

  5. Wählen Sie unter Set logging & tracing for die Datenbank und optional das Schema aus, für das Sie die Gradeinstellungen vornehmen möchten.

  6. 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 auf OFF 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 auf NONE 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:

  1. Vergewissern Sie sich, dass Sie Zugriff auf haben, eine Rolle mit den Berechtigungen, die für die Einstellung der Grade erforderlich sind.

  2. 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 UDF f1(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;
    
    Copy

    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:

  1. Ü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

    LOG_LEVEL

    MODIFY SESSION LOG LEVEL

    Metrische Ebene

    METRIC_LEVEL

    MODIFY SESSION METRIC LEVEL

    Verfolgungsebene

    TRACE_LEVEL

    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;
    
    Copy
  2. 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;
    
    Copy

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.
Copy

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 überschreibt NONE.

  • Für Protokolliergrad — ALWAYS überschreibt ON_EVENT und OFF; ON_EVENT überschreibt OFF.