Émettre des événements de trace en JavaScript

Vous pouvez utiliser la classe snowflake dans l”API Snowflake JavaScript pour émettre des événements de trace à partir d’un gestionnaire de fonction ou de procédure écrit en JavaScript. L’API JavaScript est déjà disponible pour votre code de gestionnaire JavaScript.

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 snowflake.addEvent et en indiquant le nom de l’événement. Il est également possible d’associer des attributs (paires clé-valeur) à un événement.

La méthode addEvent est disponible sous la forme suivante :

snowflake.addEvent(name [, { key:value [, key:value] } ] );
Copy

Le code du gestionnaire de l’exemple suivant ajoute deux événements, name_a et name_b. Avec name_b, le code ajoute également deux attributs, score et pass.

create procedure PI_JS()
  returns double
  language javascript
  as
  $$
    snowflake.addEvent('name_a');  // add an event without attributes
    snowflake.addEvent('name_b', {'score': 89, 'pass': true});
    return 3.14;
  $$
  ;
Copy

La définition de ces attributs entraîne l’apparition de deux lignes dans la table des événements, chacune avec une valeur différente dans la colonne RECORD :

{
  "name": "name_a"
}
Copy
{
  "name": "name_b"
}
Copy

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

{
  "score": 89,
  "pass": true
}
Copy

Ajout d’attributs de span

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

La fonction setSpanAttribute est disponible sous la forme suivante :

snowflake.setSpanAttribute(key, value);
Copy

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

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

// Setting span attributes.
snowflake.setSpanAttribute("example.boolean", true);
snowflake.setSpanAttribute("example.long", 2L);
snowflake.setSpanAttribute("example.double", 2.5);
snowflake.setSpanAttribute("example.string", "testAttribute");
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 :

{
  "example.boolean": true,
  "example.long": 2,
  "example.double": 2.5,
  "example.string": "testAttribute"
}
Copy