Émettre des événements de trace dans Snowflake Scripting¶
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, voir Définition des niveaux de journalisation, des métriques et du traçage.
Note
Avant de commencer à émettre des événements de trace, vous devez mettre en place une table d’événements. Pour plus d’informations, voir Aperçu de la table d’événements.
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, voir Affichage des 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, voir É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, voir 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'});
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"
}
{
"name": "SProcEventWithAttributes"
}
La ligne d’événement SProcEventWithAttributes
comprend les attributs suivants dans la colonne RECORD_ATTRIBUTES de la ligne :
{
"key1": "value1",
"key2": "value2"
}
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>);
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}');
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"
}
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, key1
et key2
.
CREATE OR REPLACE PROCEDURE pi_proc()
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({'key1': 'value1', 'key2': TRUE});
RETURN 3.14;
END;
$$;
CALL pi_proc();