É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"})
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, 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;
$$
;
call MYPROC();