Émettre des événements de trace dans Exécution de scripts Snowflake

Vous pouvez utiliser les fonctions SYSTEM Snowflake pour émettre des événements de trace à partir d’une fonction ou d’un gestionnaire de procédure écrit dans Exécution de scripts Snowflake.

Avant d’émettre des événements de trace, assurez-vous que le niveau de trace est défini de manière à ce que les données souhaitées soient stockées dans la table des événements. Pour plus d’informations, reportez-vous à Réglage du niveau de trace.

Note

Avant de commencer à émettre des événements de trace, vous devez mettre en place une table d’événements. Pour plus d’informations, reportez-vous à Configuration d’une table d’événement.

Vous pouvez accéder aux données de trace stockées en exécutant une commande SELECT sur la table des événements. Pour plus d’informations, reportez-vous à Accès aux données de trace.

Pour des informations générales sur la configuration de la journalisation et la récupération des messages dans Snowflake, reportez-vous à Événements de trace pour les fonctions et les procédures.

Note

Pour les lignes directrices à garder à l’esprit lors de l’ajout d’événements de trace, se référer à Lignes directrices générales pour l’ajout d’événements de trace.

Ajout d’événements de trace

Vous pouvez ajouter des événements de trace en appelant la fonction SYSTEM$ADD_EVENT (pour Exécution de scripts Snowflake) et en indiquant le nom de l’événement. Il est également possible d’associer des attributs (paires clé-valeur) à un événement.

Le code de l’exemple suivant ajoute deux événements, SProcEmptyEvent et SProcEventWithAttributes. Avec SProcEventWithAttributes, le code ajoute également deux attributs : key1 et key2.

SYSTEM$ADD_EVENT("SProcEmptyEvent")
SYSTEM$ADD_EVENT("SProcEventWithAttributes", {"key1": "value1", "key2": "value2"})
Copy

L’ajout de ces événements donne lieu à deux lignes dans la table des événements, chacune avec une valeur différente dans la colonne RECORD :

{
  "name": "SProcEmptyEvent"
}
Copy
{
  "name": "SProcEventWithAttributes"
}
Copy

La ligne d’événement SProcEventWithAttributes comprend les attributs suivants dans la colonne RECORD_ATTRIBUTES de la ligne :

{
  "key1": "value1",
  "key2": "value2"
}
Copy

Ajout d’attributs de span

Vous pouvez définir des attributs (paires clé-valeur) associés aux spans en appelant la fonction SYSTEM$SET_SPAN_ATTRIBUTES.

Pour plus de détails sur les spans, voir Comment Snowflake représente les événements de trace.

La fonction SYSTEM$SET_SPAN_ATTRIBUTES (pour Exécution de scripts Snowflake) est disponible sous la forme suivante :

SYSTEM$SET_SPAN_ATTRIBUTES(<object>);
Copy

où :

  • object est un objet Exécution de scripts Snowflake avec des paires clé-valeur qui spécifie les attributs de cet événement de trace.

Le code de l’exemple suivant crée quatre attributs et définit leurs valeurs :

SYSTEM$SET_SPAN_ATTRIBUTES('{'attr1':'value1', 'attr2':true}');
Copy

La définition de ces attributs se traduit par les éléments suivants dans la colonne RECORD_ATTRIBUTES de la table des événements :

{
  "attr1": "value1",
  "attr2": "value2"
}
Copy

Exemples

Le code de l’exemple suivant utilise la fonction SYSTEM$ADD_EVENT pour ajouter un événement nommé name_a et un événement nommé name_b. Avec name_b, il associe deux attributs, score et pass. Le code utilise également SYSTEM$SET_SPAN_ATTRIBUTES pour définir deux attributs pour le span, attr1 et attr2.

create procedure MYPROC()
returns double
language sql
as
$$
begin
    -- Add an event without attributes
    SYSTEM$ADD_EVENT('name_a');

    -- Add an event with attributes
    let attr := {'score':89, 'pass':true};
    SYSTEM$ADD_EVENT('name_b', attr);

    -- Set attributes for the span
    SYSTEM$SET_SPAN_ATTRIBUTES("{'attr1':'value1', 'attr2':true}");

    return 3.14;
end;
$$
;
Copy
call MYPROC();
Copy