Interroger dans ClickHouse CloudLes données de cette table système sont stockées localement sur chaque nœud de ClickHouse Cloud. Pour obtenir une vue complète de l’ensemble des données, il faut donc utiliser la fonction
clusterAllReplicas. Consultez cette page pour plus de détails.Description
addressToLine, addressToLineWithInlines, addressToSymbol et demangle.
Colonnes
hostname(LowCardinality(String)) — Nom d’hôte du serveur qui exécute la requête.event_date(Date) — Date du moment d’échantillonnage.event_time(DateTime) — Horodatage du moment d’échantillonnage.event_time_microseconds(DateTime64(6)) — Horodatage du moment d’échantillonnage avec une précision à la microseconde.timestamp_ns(UInt64) — Horodatage du moment d’échantillonnage en nanosecondes.revision(UInt32) — Révision de build du serveur ClickHouse. Lors de la connexion au serveur avecclickhouse-client, vous voyez une chaîne semblable àConnected to ClickHouse server version 19.18.1.. Ce champ contient larevision, mais pas laversiond’un serveur.trace_type(Enum8(‘Real’ = 0, ‘CPU’ = 1, ‘Memory’ = 2, ‘MemorySample’ = 3, ‘MemoryPeak’ = 4, ‘ProfileEvent’ = 5, ‘JemallocSample’ = 6, ‘MemoryAllocatedWithoutCheck’ = 7, ‘Instrumentation’ = 8)) — Type de trace :Realreprésente la collecte de stack traces selon le temps réel.CPUreprésente la collecte de stack traces selon le temps CPU.Memoryreprésente la collecte des allocations et désallocations lorsque l’allocation mémoire dépasse le watermark suivant.MemorySamplereprésente la collecte aléatoire d’allocations et de désallocations.MemoryPeakreprésente la collecte des mises à jour du pic d’utilisation mémoire.ProfileEventreprésente la collecte des incréments des profile events.JemallocSamplereprésente la collecte d’échantillons jemalloc.MemoryAllocatedWithoutCheckreprésente la collecte d’allocations importantes (>16MiB) effectuée en ignorant toute limite mémoire (réservé aux développeurs ClickHouse).Instrumentationreprésente les traces collectées par l’instrumentation effectuée via XRay.cpu_id(UInt64) — Identifiant CPU.thread_id(UInt64) — Identifiant du thread.thread_name(LowCardinality(String)) — Nom du thread.query_id(String) — Identifiant de requête pouvant être utilisé pour obtenir les détails d’une requête en cours d’exécution à partir de la table système query_log.trace(Array(UInt64)) — Stack trace au moment de l’échantillonnage. Chaque élément est une adresse de mémoire virtuelle à l’intérieur du processus serveur ClickHouse.size(Int64) — Pour les types de trace Memory, MemorySample, MemoryAllocatedWithoutCheck ou MemoryPeak, il s’agit de la quantité de mémoire allouée ; pour les autres types de trace, la valeur est 0.ptr(UInt64) — Adresse du chunk alloué.memory_context(Enum8(‘Unknown’ = -1, ‘Global’ = 0, ‘User’ = 1, ‘Process’ = 2, ‘Thread’ = 3, ‘Max’ = 4)) — Contexte du Memory Tracker (uniquement pour Memory/MemoryPeak) : le contexteUnknownn’est pas défini pour ce trace_type.Globalreprésente le contexte du serveur.Userreprésente le contexte utilisateur/merge.Processreprésente le contexte du processus (c.-à-d. de la requête).Threadreprésente le contexte du thread (thread d’un processus particulier).Maxest une valeur spéciale qui signifie que le memory tracker n’est pas bloqué (pour la colonne blocked_context).memory_blocked_context(Enum8(‘Unknown’ = -1, ‘Global’ = 0, ‘User’ = 1, ‘Process’ = 2, ‘Thread’ = 3, ‘Max’ = 4)) — Contexte pour lequel le traqueur de mémoire est bloqué (réservé aux développeurs ClickHouse) : le contexteUnknownn’est pas défini pour ce trace_type.Globalreprésente le contexte du serveur.Userreprésente le contexte utilisateur/de fusion.Processreprésente le contexte du processus (c.-à-d. de la requête).Threadreprésente le contexte du thread (thread d’un processus particulier).Maxest une valeur spéciale qui signifie que le traqueur de mémoire n’est pas bloqué (pour la colonne blocked_context).event(LowCardinality(String)) — Pour le type de trace ProfileEvent, il s’agit du nom de l’événement de profil mis à jour ; pour les autres types de trace, c’est une chaîne vide.increment(Int64) — Pour le type de trace ProfileEvent, il s’agit de la valeur d’incrément de l’événement de profil ; pour les autres types de trace, c’est 0.symbols(Array(LowCardinality(String))) — Si la symbolisation est activée, contient les noms de symboles démanglés correspondant à latrace. La symbolisation peut être activée ou désactivée dans le paramètresymbolizesoustrace_logdans le fichier de configuration du serveur.lines(Array(LowCardinality(String))) — Si la symbolisation est activée, contient des chaînes avec les noms de fichiers et les numéros de ligne correspondant à latrace.function_id(Nullable(Int32)) — Pour le type de trace Instrumentation, ID attribué à la fonction dans la section xray_instr_map du binaire ELF.function_name(Nullable(String)) — Pour le type de trace Instrumentation, nom de la fonction instrumentée.handler(Nullable(String)) — Pour le type de trace Instrumentation, gestionnaire de la fonction instrumentée.entry_type(Nullable(Enum8(‘Entry’ = 0, ‘Exit’ = 1))) — Pour le type de trace Instrumentation, type d’entrée de la fonction instrumentée.duration_nanoseconds(Nullable(UInt64)) — Pour le type de trace Instrumentation, durée d’exécution de la fonction en nanosecondes.
build_id— alias de'E2EEB60ED9503BFFA825B628D480CCDC40B2D416'.
symbolize, sous trace_log, dans le fichier de configuration du serveur.
Exemple
Conversion vers le format Event Trace de Chrome
chrome_trace.sql :
trace.json, que nous pouvons importer soit dans Perfetto, soit dans speedscope.
Voir aussi
- SYSTEM INSTRUMENT — Ajouter ou supprimer des points d’instrumentation.
- system.instrumentation — Examiner les points instrumentés.
- system.symbols — Examiner les symboles afin d’ajouter des points d’instrumentation.