Colonnes de table d’événements¶
Un tableau des événements est un type spécial de table de base de données avec un ensemble prédéfini de colonnes. La structure de la table est conçue pour prendre en charge le modèle de données pour OpenTelemetry, un framework de gestion des données de télémétrie.
Pour plus d’informations sur l’utilisation des tables d’événements, voir Utilisation des tables d’événements.
Colonnes de table d’événements¶
Les tables d’événements comportent les colonnes suivantes :
Colonne |
Type de données |
Description |
---|---|---|
TIMESTAMP_NTZ |
L’horodatage UTC de la création d’un événement. Pour les événements représentant une période de temps, il s’agit de la fin de la période de temps. |
|
TIMESTAMP_NTZ |
Pour les événements représentant un intervalle de temps, tels que les événements de trace, le début de l’intervalle de temps sous la forme d’un horodatage UTC. |
|
TIMESTAMP_NTZ |
Un horaire UTC utilisé pour les journaux. Actuellement la même valeur que pour TIMESTAMP. |
|
OBJECT |
Contexte de traçage pour tous les types de signaux. Contient les valeurs de chaîne |
|
OBJECT |
Réservé pour une utilisation future. |
|
OBJECT |
Attributs qui identifient la source d’un événement, telle que la base de données, le schéma, l’utilisateur, l’entrepôt, etc. |
|
OBJECT |
Champs d’application pour les événements. Par exemple, les noms de classe pour les journaux. |
|
OBJECT |
Réservé pour une utilisation future. |
|
STRING |
Le type d’événement. Un des éléments suivants :
|
|
OBJECT |
Valeurs fixes pour chaque type d’enregistrement, comme décrit dans Colonne RECORD. |
|
OBJECT |
Attributs de variables pour chaque type d’enregistrement, tels que décrits dans Colonne RECORD_ATTRIBUTES. |
|
VARIANT |
Valeur de l’événement primaire. |
|
ARRAY |
Réservé pour une utilisation future. |
Données capturées par type d’événement¶
Données pour les journaux¶
Attribut |
Description |
---|---|
Actuellement la même valeur que pour TIMESTAMP. |
|
Le niveau de gravité enregistré par l’événement du journal. |
|
L’emplacement dans le code à partir duquel l’événement a été émis. Les valeurs varient selon le langage, mais peuvent inclure le chemin d’accès au fichier de code, le nom de la fonction, le numéro de ligne, etc. |
|
Le type d’événement : |
|
Attributs qui identifient la source de l’événement, telle que la base de données, le schéma, l’utilisateur, l’entrepôt, etc. |
|
Champ d’application dans lequel l’événement s’est produit, tel que le nom de la classe dans laquelle l’événement a été créé. |
|
L’heure à laquelle l’événement a été créé. |
|
Le message du journal. |
Données pour les mesures¶
Note
La collecte de données métriques est une fonctionnalité disponible en avant-première pour tous les comptes.
Attribut |
Description |
---|---|
Pour un événement métrique, un objet qui inclut le nom et l’unité de la métrique. |
|
Le type d’événement : |
|
Attributs qui identifient la source de l’événement, telle que la base de données, le schéma, l’utilisateur ou l’entrepôt. |
|
Lorsque la valeur de la colonne RECORD |
|
L’heure à laquelle l’événement a été créé. |
|
La valeur numérique de la métrique. |
Données pour les événements de trace¶
Attribut |
Description |
---|---|
Pour un span, un objet qui inclut le nom et le type du span ; pour un événement de span, l’objet inclut le nom du span. |
|
Données d’attribut associées à un span ou un événement de span. |
|
Le type d’événement : |
|
Attributs qui identifient la source de l’événement, telle que la base de données, le schéma, l’utilisateur, l’entrepôt, etc. |
|
Pour un span, l’heure à laquelle le span a commencé. Non utilisé pour un événement de span. |
|
L’heure à laquelle l’événement a été créé. |
|
Identifie |
Colonne EXEMPLARS¶
Réservé pour une utilisation future.
Colonne OBSERVED_TIMESTAMP¶
L’horodatage UTC d’un journal. Non utilisé pour les événements de trace.
Colonne RECORD¶
Fournit des informations essentielles sur l’événement, notamment le niveau d’enregistrement pour un événement d’enregistrement, ou le nom de l’événement de trace (plage ou enregistrement d’événement de span).
Les attributs éventuels de l’enregistrement sont enregistrés dans la colonne RECORD_ATTRIBUTES.
Les valeurs contenues dans cette colonne varieront en fonction de la valeur de la colonne RECORD_TYPE (LOG
, SPAN
ou SPAN_EVENT
), comme décrit dans les sections suivantes.
Pour LOG
RECORD_TYPE¶
Lorsque la valeur de la colonne RECORD_TYPE est LOG
, la valeur de la colonne RECORD contient la gravité du message. La valeur de la colonne peut contenir les clés suivantes :
Clé |
Type |
Description |
---|---|---|
|
STRING |
Le texte de la gravité du journal. Un des éléments suivants :
Lorsque l’entrée du journal concerne une exception non gérée, cette valeur correspond au niveau d’erreur le plus grave pour le runtime du langage actuel. Par exemple, pour du code écrit en Python, la valeur est |
Exemple¶
{
"severity_text": "INFO"
}
Pour METRIC
RECORD_TYPE¶
Note
La collecte de données métriques est une fonctionnalité disponible en avant-première pour tous les comptes.
Les métriques sont de type CPU et les données mémoire générées par Snowflake. Vous pouvez utiliser ces données pour analyser la consommation des ressources.
Le langage du gestionnaire d’exécution et son environnement impactent considérablement la signification des données métriques. Voir Émission de données de métriques à partir du code du gestionnaire pour plus d’informations.
Clé |
Type |
Description |
---|---|---|
|
chaîne |
Le nom de la métrique enregistrée par la ligne. Un des éléments suivants :
Pour plus d’informations, voir Émission de données de métriques à partir du code du gestionnaire. |
|
chaîne |
Les unités de la métrique ; par exemple, |
|
chaîne |
Le type de point métrique OpenTelemetry des données métriques ; par exemple, |
|
chaîne |
Le type de données de la valeur dans la colonne VALUE ; par exemple, |
Exemple¶
{
"metric": {
"name": "process.memory.usage",
"unit": "bytes"
},
"metric_type": "sum",
"value_type": "INT"
}
Pour SPAN
RECORD_TYPE¶
Les spans représentent des exécutions individuelles de fonctions et de procédures. Pour les procédures stockées, il n’y aura qu’un seul span. Pour les fonctions définies par l’utilisateur, il peut y avoir plusieurs spans pour un seul appel de fonction, selon la manière dont Snowflake décide de planifier l’exécution.
Tous les spans d’une requête donnée ont la même valeur pour la clé trace_id
de la colonne TRACE
.
La durée d’un span est la différence entre les valeurs des colonnes start_timestamp
et timestamp
, qui indiquent respectivement le début et la fin de l’exécution du span.
Les ID du span et de la trace de la requête sont représentés dans la valeur de la colonne TRACE.
Snowflake créera un span pour chaque exécution avec les clés indiquées ci-dessous :
Clé |
Type |
Description |
---|---|---|
|
int |
Le nombre d’attributs ignorés après que le maximum enregistré a été atteint. |
|
chaîne |
Lorsque le gestionnaire de l’exécutable est écrit en Python, cela identifie le gestionnaire de la fonction ou de la procédure qui a émis les données. Cela varie selon le type d’exécutable, comme suit :
Lorsque le gestionnaire de l’exécutable est écrit dans un langage autre que Python, il s’agit d’une valeur fixe telle que |
|
chaîne |
Valeur fixe |
|
Chaîne hexagonale |
Identifie le span de la procédure ou l’UDF à partir de laquelle la trace actuelle est passée. Lorsque cette valeur est présente, cela signifie que la procédure en cours ou l’appel de l’UDF a été effectué par une autre procédure dans une relation de chaîne d’appel. La valeur |
|
chaîne |
En option. Lorsqu’elle est présente, spécifie la quantité maximale de mémoire, en octets, utilisée pendant l’exécution de ce span. |
|
chaîne |
|
Dans le cas de fonctions définies par l’utilisateur, Snowflake peut ajouter des attributs pour les spans afin d’indiquer le nombre de lignes traitées et émises par la fonction.
Pour SPAN_EVENT
RECORD_TYPE¶
Les événements de span sont des enregistrements d’événements attachés à une exécution de span particulière, décrite ci-dessus. Vous pouvez créer des événements pour répondre aux besoins de votre application. Le nombre d’événements de span est limité à 128.
La valeur de la colonne TRACE identifie la période de temps au cours de laquelle l’événement a été créé.
Les événements de span ont une clé unique, name
, et peuvent avoir des attributs arbitraires ajoutés dans la colonne RECORD_ATTRIBUTES.
Clé |
Type |
Description |
---|---|---|
|
chaîne |
Nom de l’événement de span. |
Colonne RECORD_ATTRIBUTES¶
Décrit l’événement avec des métadonnées définies par Snowflake ou par du code. La valeur varie en fonction du type d’enregistrement que la ligne contient, comme décrit dans les sections suivantes.
Pour LOG
RECORD_TYPE¶
L’emplacement dans le code à partir duquel l’événement a été émis, y compris le chemin d’accès au fichier de code, le nom de la fonction, le numéro de ligne, etc.
En plus des attributs répertoriés ci-dessous, vous pouvez ajouter vos propres attributs à inclure dans la valeur RECORD_ATTRIBUTES.
Attribut |
Type |
Description |
---|---|---|
|
int |
Le fichier contenant le code qui a généré le message. |
|
chaîne |
Le nom de la fonction qui a généré le message. |
|
int |
Le numéro de ligne du code qui a généré le message. |
|
int |
L’espace de noms du code qui a généré les messages. |
|
chaîne |
Le message d’erreur d’une exception non gérée. |
|
chaîne |
Le nom de la classe pour une exception non gérée. |
|
chaîne |
Trace de pile d’une exception non gérée formatée par un runtime du langage. |
|
booléen |
|
|
int |
Fil sur lequel l’événement de journal a été créé. |
|
chaîne |
Fil sur lequel l’événement de journal a été créé. |
Exemple¶
Dans l’exemple suivant, tous les attributs ont été ajoutés par Snowflake sauf employee.id
, qui a été ajouté par un attribut personnalisé.
{
"code.filepath": "main.scala",
"code.function": "$anonfun$new$10",
"code.lineno": 149,
"code.namespace": "main.main$",
"thread.id": 1,
"thread.name": "main"
"employee.id": "52307953446424"
}
Pour SPAN
RECORD_TYPE¶
Attributs attribués, le cas échéant, au span lors de son enregistrement. Les noms et les valeurs des attributs sont définis par du code ou par Snowflake.
La table suivante énumère les attributs qui peuvent être définis par Snowflake.
Attribut |
Type |
Description |
---|---|---|
|
int |
Le nombre de lignes d’entrée traitées par le span de la fonction. |
|
int |
Le nombre de lignes de sortie traitées correctement par le span de la fonction. |
Exemple¶
Le code de l’exemple suivant inclut les attributs définis par Snowflake.
{
"snow.input.rows": 12
"snow.output.rows": 12
}
Exemple¶
Le code de l’exemple suivant inclut les attributs définis par le code du gestionnaire.
{
"MyFunctionVersion": "1.1.0"
}
Pour SPAN_EVENT
RECORD_TYPE¶
Attributs éventuellement attribués à l’événement de span lors de son enregistrement. Les noms et les valeurs des attributs peuvent être définis par Snowflake ou par un code utilisateur.
Exemple¶
Le code de l’exemple suivant inclut les attributs définis par le code du gestionnaire.
{
"mykey1": "value1",
"mykey2": "value2"
}
Colonne RECORD_TYPE¶
Spécifie le type d’enregistrement décrit par la ligne de la table d’événements. La valeur de cette colonne indique lequel des trois types d’enregistrements pour lequel une table d’événements peut contenir des données.
La colonne RECORD contient les données de cet enregistrement. La colonne RECORD_ATTRIBUTES contient les métadonnées de cet enregistrement, le cas échéant.
La table suivante énumère les valeurs possibles pour cette colonne.
Valeur de colonne |
Description |
---|---|
|
La ligne représente une entrée de journal générée par le code du gestionnaire. |
|
La ligne représente un span. Pour une procédure stockée, il n’y aura qu’un seul span. Pour une fonction définie par l’utilisateur, qui peut être parallélisée, il y aura un span pour chaque thread sur lequel la fonction s’exécute. Le nombre de threads varie en fonction de plusieurs facteurs, notamment la taille de l’entrepôt Snowflake dans lequel la fonction s’exécute. Un span peut contenir plusieurs événements de span. Pour plus d’informations, voir Données enregistrées sur le span. |
|
La ligne représente un événement de span. Il peut y avoir plusieurs enregistrements d’événements de span attachés à un span particulier. Le code de votre gestionnaire peut créer des événements en fonction de vos besoins. Le nombre d’événements de span est limité à 128. |
|
La ligne représente une observation d’une métrique. Plusieurs observations de plusieurs métriques peuvent être associées à un span particulier. |
Colonne RESOURCE¶
Réservé pour une utilisation future.
Colonne RESOURCE_ATTRIBUTES¶
Décrit la source d’un événement en termes d’objets Snowflake.
Les attributs qui composent la valeur de cette colonne sont définis par Snowflake et ne peuvent pas être modifiés.
Attributs de ressources pour la source d’événement¶
Nom d’attribut |
Type d’attribut |
Description |
Exemple |
---|---|---|---|
|
int |
L’identificateur interne/généré par le système de la base de données contenant l’exécutable. |
|
|
chaîne |
Nom de la base de données contenant l’exécutable. |
|
|
int |
L’identificateur interne ou généré par le système de l’exécutable (procédure, fonction, SnowService, etc.) qui génère l’événement. |
|
|
chaîne |
Le nom de l’exécutable qui génère l’événement. Il peut s’agir, par exemple, du nom de la procédure, de la fonction ou de l’application Streamlit. |
|
|
chaîne |
La version d’exécution du langage exécutable. Il s’agira d’une valeur spécifique à la langue, comme décrit ci-dessous :
|
|
|
chaîne |
Un des éléments suivants :
|
|
|
int |
L’identificateur interne/généré par le système du rôle ayant le privilège OWNERSHIP pour l’exécutable. |
|
|
chaîne |
Le nom du rôle ayant le privilège OWNERSHIP pour l’exécutable. |
|
|
int |
L’identificateur interne/généré par le système du schéma contenant l’exécutable. |
|
|
chaîne |
Nom du schéma contenant l’exécutable. |
|
|
chaîne |
Langue de la ressource/SDK. Snowflake utilise java, scala, python, javascript et sql. |
|
Attributs de ressources pour l’environnement d’exécution¶
Attribut |
Type |
Description |
Exemples |
---|---|---|---|
|
chaîne |
Pour une fonction ou une procédure, le nom de l’utilisateur qui exécute la fonction ou la procédure. Pour une application Streamlit, le nom de l’utilisateur qui consultait l’application pour un événement donné. |
|
|
chaîne |
ID de la requête. |
|
|
chaîne |
La version de Snowflake en cours d’exécution au moment où l’événement a été généré |
|
|
int |
L’ID de la session qui exécute l’exécutable. |
|
|
int |
L’identificateur interne/généré par le système du rôle principal dans la session. |
|
|
chaîne |
Le nom du rôle principal dans la session. |
|
|
int |
L’identificateur interne ou généré par le système de l’utilisateur qui exécute la requête. |
|
|
int |
Identificateur interne ou généré par le système de l’entrepôt qui exécute la requête à l’origine de l’événement. |
|
|
chaîne |
Le nom de l’entrepôt qui exécute la requête générant l’événement. |
|
Attributs de ressources pour les applications¶
Attribut |
Type |
Description |
Exemples |
---|---|---|---|
|
chaîne |
Pour une Snowflake Native App, le nom du compte du consommateur. |
|
|
chaîne |
Pour une Snowflake Native App, le nom de l’organisation du consommateur. |
|
|
chaîne |
Pour une Snowflake Native App, l’identificateur interne/généré par le système de l’application. |
|
|
chaîne |
Pour une Snowflake Native App, le nom de l’application. |
|
|
chaîne |
Pour une Snowflake Native App, le nom du paquet d’application. |
|
|
chaîne |
Pour une Snowflake Native App, l’identificateur interne/généré par le système de l’annonce. |
|
|
chaîne |
Pour une Snowflake Native App, le nom de l’annonce. |
|
Attributs de ressources pour la version de Snowflake¶
Attribut |
Type |
Description |
Exemples |
---|---|---|---|
|
chaîne |
La version de l’exécutable, le cas échéant. La combinaison de |
|
|
chaîne |
Le niveau de correctif de l’exécutable en cours d’exécution. |
|
|
chaîne |
La version de l’exécutable en cours d’exécution. |
|
Exemple¶
{
"db.user": "MYUSERNAME",
"snow.database.id": 13,
"snow.database.name": "MY_DB",
"snow.executable.id": 197,
"snow.executable.name": "FUNCTION_NAME(I NUMBER):ARG_NAME(38,0)",
"snow.executable.type": "FUNCTION",
"snow.owner.id": 2,
"snow.owner.name": "MY_ROLE",
"snow.query.id": "01ab0f07-0000-15c8-0000-0129000592c2",
"snow.schema.id": 16,
"snow.schema.name": "PUBLIC",
"snow.session.id": 1275605667850,
"snow.session.role.primary.id": 2,
"snow.session.role.primary.name": "MY_ROLE",
"snow.user.id": 25,
"snow.warehouse.id": 5,
"snow.warehouse.name": "MYWH",
"telemetry.sdk.language": "python"
}
Colonne SCOPE¶
Pour les événements de journal, l’espace de noms du code qui a émis l’événement, tel que le nom de la classe créant une entrée de journal. Cette fonction n’est pas utilisée pour les événements de trace.
Le tableau suivant énumère les attributs qui peuvent être inclus dans cette colonne.
Valeur du champ d’application¶
Attribut |
Type |
Description |
Exemples |
---|---|---|---|
|
Chaîne |
Espace de noms du code qui émet l’événement. |
|
Exemple¶
{
"name": "com.sample.MyClass"
}
Colonne SCOPE_ATTRIBUTES¶
Réservé pour une utilisation future.
Colonne START_TIMESTAMP¶
L’heure à laquelle un span a commencé sous la forme d’un horodatage UTC.
Description de la valeur de START_TIMESTAMP |
|
---|---|
|
Non utilisé. |
|
L’heure à laquelle le span a commencé. |
|
Non utilisé. |
|
Lorsque la valeur de la colonne RECORD |
La collecte de données métriques est une fonctionnalité disponible en avant-première pour tous les comptes.
Colonne TIMESTAMP¶
Heure à laquelle un événement a été émis. La signification de la valeur varie en fonction du type d’enregistrement que la ligne représente, comme indiqué dans le tableau suivant :
Description de la valeur de TIMESTAMP |
|
---|---|
|
L’heure à laquelle l’événement a été émis. |
|
Heure à laquelle l’exécution s’est terminée. |
|
L’heure à laquelle l’événement a été émis. |
Colonne TRACE¶
Identificateurs uniques représentant l’exécution des fonctions et des procédures.
Description de la valeur de TRACE |
|
---|---|
|
Non utilisé. |
|
|
|
|
Valeur de trace¶
Le tableau suivant énumère les attributs qui peuvent être inclus dans cette colonne.
Attribut |
Type |
Description |
Exemples |
---|---|---|---|
|
Chaîne hexagonale |
Un identificateur unique lié au modèle de threading. Les procédures, qui sont monothread, ont une seule valeur Lorsque le span actuel provient d’une procédure qui a appelé une autre procédure ou une UDF dans la trace, cette valeur |
|
|
Chaîne hexagonale |
Identificateur unique pour les appels effectués à partir d’une requête. Lorsqu’une procédure stockée n’est pas appelée dans une chaîne d’appels, chaque appel a sa propre valeur Lorsqu’une procédure est appelée par une autre procédure ou UDF dans une chaîne d’appel, elle a la même valeur Cette valeur est unique pour chaque requête et sera la même pour tous les spans d’une requête. Vous pouvez l’utiliser pour regrouper des événements au sein d’une même exécution de requête. |
|
Exemple¶
Le code de l’exemple suivant montre les attributs qui seraient présents pour un span ou un événement de span.
{
"span_id": "b4c28078330873a2",
"trace_id": "6992e9febf0b97f45b34a62e54936adb"
}
Colonne VALUE¶
Pour les événements du journal, il s’agit généralement du message du journal. Lorsque l’événement enregistré concerne une exception non gérée, la valeur dans cette colonne sera simplement
exception
.Pour les métriques, il s’agit de la valeur numérique de la métrique. [3]
Notez que le type de la colonne VALUE est VARIANT (et non STRING), de sorte qu’elle peut avoir des valeurs autres que des chaînes dans certains langages, comme JavaScript.
La collecte de données métriques est une fonctionnalité disponible en avant-première pour tous les comptes.