Métriques Snowflake Postgres¶
Snowflake Postgres collecte automatiquement les métriques d’instance et les stocke dans la :doc:` table d’événements</developer-guide/logging-tracing/event-table-setting-up>` active de votre compte. Un agent de surveillance échantillonne les métriques environ toutes les 5 à 30 secondes en fonction du type de métriques et les écrit dans SNOWFLAKE.TELEMETRY.EVENTS avec RECORD_TYPE = 'METRIC'.
Vous pouvez interroger ces métriques directement dans Snowflake ou les transmettre à une plateforme d’observabilité externe telle que Grafana ou Observe.
Note
Pour plus d’informations sur l’interrogation des données de journaux Postgres à partir de la table des événements, voir Journalisation Snowflake Postgres.
Métriques disponibles¶
Métriques Postgres¶
Métrique |
Type |
Description |
|---|---|---|
|
gauge |
Nombre de connexions de backend actives |
|
gauge |
Taille totale de toutes les bases de données (octets) |
|
gauge |
Taille du répertoire WAL (octets) |
|
gauge |
Taille du répertoire du journal (octets) |
|
gauge |
Taille du fichier temporaire (octets) |
|
gauge |
Nombre de verrous attribués |
|
gauge |
Nombre de verrous en attente/bloqués |
|
gauge |
Version Postgres sous forme entière (par exemple, 180003 = 18.0.3) |
Métriques de processus Postgres¶
Métrique |
Type |
Unité |
Dimensions |
|---|---|---|---|
|
sum |
secondes |
état (utilisateur, système, attente) process.command, process.executable.name, process.name, process.pi, process.parent_pi |
|
sum |
bytes |
process.command, process.executable.name, process.owner, process.pid, process.parent_pid |
|
sum |
bytes |
process.command, process.executable.name, process.owner, process.pid, process.parent_pid |
Note
Chaque processus Postgres aura une ligne process.cpu.time pour chaque état de CPU et une pour chaque process.memory.usage et process.memory.virtual.
Les attributs de dimension process.* se trouvent dans la colonne resource_attributes de chaque ligne. Comme avec les valeurs state pour les autres métriques, es attributs de dimension state se trouvent dans la colonne record_attributes.
Métriques de CPU¶
Métrique |
Type |
Unité |
Dimensions |
|---|---|---|---|
|
sum |
secondes |
état : user, system, wait, idle, nice, interrupt, softirq, steal cpu: cpu# |
|
gauge |
threads |
-– |
|
gauge |
threads |
-– |
|
gauge |
threads |
-– |
Note
Chaque cpu# (comme cpu0 et cpu2) aura une ligne system.cpu.time pour chaque état de CPU.
system.cpu.time est un compteur cumulatif. Pour obtenir un pourcentage, calculez le delta entre les échantillons consécutifs et divisez par l’intervalle écoulé.
Métriques de mémoire¶
Métrique |
Type |
Unité |
Dimensions |
|---|---|---|---|
|
sum |
bytes |
état : used, free, cached, buffered, slab_reclaimable, slab_unreclaimable |
Note
Une ligne system.memory.usage pour chaque état.
Métriques de disque¶
Métrique |
Type |
Unité |
Dimensions |
|---|---|---|---|
|
sum |
bytes |
point de montage, appareil, état (utilisé, libre), type, mode |
Note
Une ligne system.filesystem.usage pour chaque état.
Métriques de réseau¶
Métrique |
Type |
Unité |
Dimensions |
|---|---|---|---|
|
sum |
bytes |
appareil, direction (transmettre, recevoir) |
Note
Chaque appareil (“meth0” et “lo”) aura une ligne system.network.io pour chaque direction.
Métriques de page¶
Métrique |
Type |
Unité |
Dimensions |
|---|---|---|---|
|
sum |
bytes |
appareil, état (utilisé, gratuit) |
Note
Une ligne system.paging.usage pour chaque état.
Attributs de ressources¶
Chaque ligne de métrique comprend les champs suivants dans RESOURCE_ATTRIBUTES :
Attribut |
Description |
Exemple |
|---|---|---|
|
Identificateur d’instance Postgres |
|
|
Nom d’hôte du serveur |
|
|
ID d’instance EC2 |
|
|
Famille d’instances |
|
|
Région AWS |
|
|
Zones de disponibilité |
|
|
Toujours |
|
|
Toujours |
|
Interrogation des métriques¶
Une instance donnée de Snowflake Postgres peut avoir plusieurs serveurs en cours d’exécution à un moment donné, tels qu’un serveur primaire et son serveur HA ou un remplacement de mise à niveau en attente de remplacement de la fenêtre de maintenance de l’instance. Étant donné que chacun de ces serveurs indiquera des métriques pour l’instance_id donné de l’instance vous avez aussi besoin du host_name serveur actuellement actif de l’instance.
Pour trouver l’instance_id de votre instance Postgres, utilisez:doc:/sql-reference/sql/desc-postgres-instance :
L’instance_id de l’instance est le premier segment de la valeur host renvoyée (tout avant la première période).
Note
Vous pouvez utiliser la colonne host de la sortie de la commande SHOW POSTGRES INSTANCES pour voir les valeurs d’hôte d’instance pour toutes les instances de Snowflake Postgres en cours d’exécution sur votre compte.
Pour trouver le host_name du serveur actuel de l’instance, utilisez une simple recherche DNS CNAME de la valeur host de l’instance.
Supposons que la valeur host renvoyée était “4jypgsndvzd5ta6udaryx6owja.sf engineering-pggtest.preprod.us-west-2.aws.postgres.snowflake.app” (nous savons donc que l’instance_id de l’instance est “4jypgsndvzd5ta6udaryx6owja”).
Voici un exemple utilisant l’utilitaire dig de la CLI pour effectuer la recherche DNS CNAME :
Et voici un exemple utilisant le module dns.resolver de Python :
La valeur host_name est le premier segment de cette valeur renvoyée, “df6m4y5m5fgfpb5idy2pj67xrm” dans les exemples ci-dessus.
La requête suivante renvoie la valeur la plus récente pour chaque métrique collectée au cours des 5 dernières minutes :
Note
La requête ci-dessus utilise la table des événements par défaut du compte, SNOWFLAKE.TELEMETRY.EVENTS. Si vous avez configuré une table d’événements personnalisée, ajustez la requête en conséquence.
Exemples de requêtes de métriques¶
Connexions actives¶
Utilisation de la mémoire par état¶
Charges moyennes du CPU¶
Taille de la base de données¶
Transfert de métriques vers des outils externes¶
Les métriques étant stockées dans une table Snowflake standard, vous pouvez les transmettre à n’importe quelle plateforme d’observabilité qui prend en charge une connexion Snowflake. Pour une configuration étape par étape avec des outils spécifiques, voir :