Cette rubrique décrit les métriques couramment utilisées dans Application Monitoring, un sous-service d'Application Real-Time Monitoring Service (ARMS). Vous pouvez les utiliser pour créer des tableaux de bord Grafana personnalisés et des requêtes PromQL.
Si votre application est ingérée via Managed Service for OpenTelemetry, seules les métriques métier sont disponibles. Les métriques JVM, les métriques système et les autres catégories ne sont pas prises en charge.
Métriques métier
Dimensions courantes
|
Nom de la dimension |
Clé de dimension |
|
Nom du service |
service |
|
PID du service |
pid |
|
IP de l'hôte |
serverIp |
|
Interface |
rpc |
Liste des métriques
Les métriques suivantes s'appliquent à tous les types d'accès. Dans les requêtes, remplacez $callType par le type d'accès réel. Pour obtenir la liste des types d'accès, consultez la section Types d'accès aux services et dimensions disponibles.
Par exemple, pour interroger le nombre de requêtes HTTP, modifiez arms_$callType_requests_count en arms_http_requests_count.
Nom de la métrique | Métrique | Type de métrique | Intervalle de collecte | Unité | Dimensions |
Nombre de requêtes | arms_$callType_requests_count | Gauge | 15 secondes | Aucune | Les différents types d'accès aux services possèdent des dimensions distinctes. Pour plus de détails, consultez la section Types d'accès aux services et dimensions disponibles. |
Nombre de requêtes ayant échoué | arms_$callType_requests_error_count | Gauge | 15 secondes | Aucune | |
Latence des requêtes | arms_$callType_requests_seconds | Gauge | 15 secondes | Secondes | |
Nombre de requêtes lentes | arms_$callType_requests_slow_count | Gauge | 15 secondes | Aucune | |
Quantiles de latence des requêtes | arms_$callType_requests_latency_seconds | Summary | 15 secondes | Secondes | Disponible uniquement lorsque le type d'accès est HTTP et que les statistiques de quantile sont activées. Pour les activer, consultez la section Paramètres avancés. Dimensions de quantile :
|
À l'exception des métriques de quantile, les métriques ci-dessus sont de type Gauge : chaque point représente la valeur cumulative sur l'intervalle de collecte, ce qui diffère des métriques open source classiques. Par exemple, pour estimer un QPS moyen sur une minute, utilisez une requête PromQL ARMS telle que sum_over_time(arms_$callType_requests_count[1m])/60, tandis que les frameworks open source utilisent souvent rate(http_server_requests_count[1m]).
Stockage des métriques
Les métriques métier sont stockées dans le magasin de métriques détaillées (metricstore-apm-metrics-detail).
Métriques métier agrégées
Chaque type d'appel utilisant son propre nom de métrique, les requêtes PromQL peuvent devenir très longues lorsqu'une application utilise plusieurs types d'appels (par exemple, HTTP et Dubbo simultanément).
Les métriques métier conservent toutes les dimensions d'observation, mais certains scénarios d'analyse n'en nécessitent pas l'intégralité. Dans ces cas, l'interrogation des métriques métier brutes peut s'avérer lente.
Pour résoudre ces problèmes, ARMS propose des métriques métier agrégées.
Description des métriques
Les métriques métier agrégées se répartissent dans les catégories suivantes :
-
Général
Enregistre le nombre de requêtes, le nombre de requêtes ayant échoué, le nombre de requêtes lentes et la latence moyenne des requêtes pour tous les types d'accès.
-
Types de base de données
Identique à la catégorie Général, mais limité aux types d'accès aux bases de données.
-
SQL
Mêmes métriques que la catégorie Base de données, avec une dimension SQL supplémentaire.
-
Exception
Enregistre le nombre de requêtes et la latence moyenne des requêtes en cas d'exceptions, pour tous les types d'accès.
-
Code d'état
Enregistre le nombre de requêtes par code d'état HTTP.
-
Quantile
Enregistre les quantiles de latence des requêtes pour tous les types d'accès.
À l'exception de la catégorie Quantile, chaque catégorie propose deux formes de métriques : une agrégation standard dont le nom se termine par xxx_raw, et une variante à dimensions réduites nommée xxx_ign_x_y, où x et y correspondent aux dimensions regroupées (omises de la série de métriques).
Type de métrique et intervalle de collecte
Sauf indication contraire, les métriques métier agrégées sont des métriques de type Gauge avec un intervalle de collecte de 15 secondes.
Dimensions courantes
Chaque métrique agrégée inclut les dimensions suivantes :
Dimensions | Description |
pid | PID de l'application |
service | Nom de l'application |
serverIp | IP de l'instance |
source | Source de la métrique :
|
Liste des métriques
Catégorie de métrique | Nom de la métrique | Métrique | Unité | Dimensions supplémentaires |
Général | Nombre de requêtes | arms_app_requests_count_raw | Compte |
|
arms_app_requests_count_ign_destid_endpoint_parent_ppid_prpc_rpc | Compte | Exclut les dimensions destId, endpoint, parent, ppid, prpc et rpc. | ||
arms_app_requests_count_ign_destid_endpoint_prpc_rpc | Compte | Exclut les dimensions destId, endpoint, rpc et prpc. | ||
arms_app_requests_count_ign_destid_endpoint_parent_ppid_prpc | Compte | Exclut les dimensions destId, endpoint, parent, ppid et prpc. | ||
arms_app_requests_count_ign_parent_ppid_prpc_rpc | Compte | Exclut les dimensions parent, ppid, prpc et rpc. | ||
Nombre de requêtes ayant échoué | arms_app_requests_error_count_raw | Compte |
| |
arms_app_requests_error_count_ign_destid_endpoint_prpc_rpc | Compte | Exclut les dimensions destId, endpoint, rpc et prpc. | ||
arms_app_requests_error_count_ign_destid_endpoint_parent_ppid_prpc | Compte | Exclut les dimensions destId, endpoint, parent, ppid et prpc. | ||
arms_app_requests_error_count_ign_parent_ppid_prpc_rpc | Compte | Exclut les dimensions parent, ppid, prpc et rpc. | ||
arms_app_requests_error_count_ign_parent_ppid_prpc_rpc | Compte | Exclut les dimensions parent, ppid, prpc et rpc. | ||
Nombre de requêtes lentes | arms_app_requests_slow_count_raw | Compte |
| |
arms_app_requests_slow_count_ign_destid_endpoint_parent_ppid_prpc_rpc | Compte | Exclut les dimensions destId, endpoint, parent, ppid, prpc et rpc. | ||
arms_app_requests_slow_count_ign_destid_endpoint_prpc_rpc | Compte | Exclut les dimensions destId, endpoint, rpc et prpc. | ||
arms_app_requests_slow_count_ign_destid_endpoint_parent_ppid_prpc | Compte | Exclut les dimensions destId, endpoint, parent, ppid et prpc. | ||
arms_app_requests_slow_count_ign_parent_ppid_prpc_rpc | Compte | Exclut les dimensions parent, ppid, prpc et rpc. | ||
Latence des requêtes | arms_app_requests_seconds_raw | Secondes |
| |
arms_app_requests_seconds_ign_destid_endpoint_parent_ppid_prpc_rpc | Secondes | Exclut les dimensions destId, endpoint, parent, ppid, prpc et rpc. | ||
arms_app_requests_seconds_ign_destid_endpoint_prpc_rpc | Secondes | Exclut les dimensions destId, endpoint, rpc et prpc. | ||
arms_app_requests_seconds_ign_destid_endpoint_parent_ppid_prpc | Secondes | Exclut les dimensions destId, endpoint, parent, ppid et prpc. | ||
arms_app_requests_seconds_ign_parent_ppid_prpc_rpc | Secondes | Exclut les dimensions parent, ppid, prpc et rpc. | ||
Types de base de données | Nombre de requêtes de base de données | arms_db_requests_count_raw | Compte |
|
arms_db_requests_count_ign_rpc | Compte | Exclut la dimension d'interface. | ||
Nombre de requêtes de base de données ayant échoué | arms_db_requests_error_count_raw | Compte |
| |
arms_db_requests_error_count_ign_rpc | Compte | Exclut la dimension d'interface. | ||
Nombre de requêtes de base de données lentes | arms_db_requests_slow_count_raw | Compte |
| |
arms_db_requests_slow_count_ign_rpc | Compte | Exclut la dimension d'interface. | ||
Latence des requêtes de base de données | arms_db_requests_seconds_raw | Secondes |
| |
arms_db_requests_seconds_ign_rpc | Secondes | Exclut la dimension d'interface. | ||
SQL | Nombre de requêtes SQL | arms_sql_requests_count_raw |
| |
arms_sql_requests_count_ign_rpc | Exclut la dimension d'interface. | |||
Nombre de requêtes SQL ayant échoué | arms_sql_requests_error_count_raw | Compte |
| |
arms_sql_requests_error_count_ign_rpc | Compte | Exclut la dimension d'interface. | ||
Nombre de requêtes SQL lentes | arms_sql_requests_slow_count_raw | Compte |
| |
arms_sql_requests_slow_count_ign_rpc | Compte | Exclut la dimension d'interface. | ||
Latence des requêtes SQL | arms_sql_requests_seconds_raw | Secondes |
| |
arms_sql_requests_seconds_ign_rpc | Secondes | Exclut la dimension d'interface. | ||
Exception | Nombre de requêtes anormales | arms_exception_requests_count_raw | Compte |
|
arms_exception_requests_count_ign_destid_endpoint_rpc | Compte | Exclut les dimensions destid, endpoint et rpc. | ||
arms_exception_requests_count_ign_destid_endpoint | Compte | Exclut les dimensions destid et endpoint. | ||
Latence des requêtes d'exception | arms_exception_requests_seconds_raw | Secondes |
| |
arms_exception_requests_seconds_ign_destid_endpoint_rpc | Secondes | Exclut les dimensions destid, endpoint et rpc. | ||
arms_exception_requests_seconds_ign_destid_endpoint | Secondes | Exclut les dimensions destid et endpoint. | ||
Code d'état | Nombre de requêtes par code d'état | arms_requests_by_status_count_raw | Compte |
|
arms_requests_by_status_count_ign_rpc | Compte | Exclut la dimension d'interface. | ||
Quantile | Quantiles de latence des requêtes Remarque Pris en charge uniquement par les versions d'agent 4.x et ultérieures. | arms_uni_requests_latency_seconds |
|
Exemple d'utilisation
Choisissez une métrique lors de l'utilisation de PromQL pour additionner les requêtes sur toutes les interfaces d'une application
Vous avez besoin d'une métrique qui expose le nombre de requêtes par interface. La catégorie Général de cette rubrique répond à cette exigence.
Si vous n'avez besoin que de la dimension d'interface — et non des interfaces amont, des applications amont ou des hôtes distants — choisissez une métrique qui conserve la dimension d'interface tout en omettant autant d'autres dimensions que possible.
En pratique, arms_app_requests_count_ign_destid_endpoint_parent_ppid_prpc constitue un bon choix.
Stockage des métriques
Métriques stockées dans le magasin de métriques principal (metricstore-apm-metrics) :
arms_app_requests_{metric}_ign_destid_endpoint_parent_ppid_prpc_rpc
arms_app_requests_{metric}_ign_destid_endpoint_rpc_prpc
arms_app_requests_{metric}_ign_destid_endpoint_parent_ppid_prpc
Les autres métriques métier agrégées sont stockées dans le magasin de métriques détaillé (metricstore-apm-metrics-detail).
Métriques JVM
Dimensions courantes
|
Nom de la dimension |
Clé de dimension |
|
Nom du service |
service |
|
PID du service |
pid |
|
IP de l'hôte |
serverIp |
Liste des métriques
Nom de la métrique | Métrique | Type de métrique | Intervalle de collecte | Unité | Dimensions |
Nombre de GC (cumulatif) | arms_jvm_gc_total | Compteur | 15 secondes | Aucune | Zone d'occurrence du GC générationnel :
Raison du déclenchement du GC (version 4.4.0 de l'agent et ultérieure) : System.gc(), Heap Dump Initiated GC, Allocation Failure, etc. |
Temps de GC (cumulatif) | arms_jvm_gc_seconds_total | Compteur | 15 secondes | Secondes | |
Nombre de GC entre les intervalles de collecte | arms_jvm_gc_delta | Jauge | 15 secondes | Aucune | |
Durée du GC entre les intervalles de collecte | arms_jvm_gc_seconds_delta | Jauge | 15 secondes | Secondes | |
Nombre de threads JVM | arms_jvm_threads_count | Jauge | 15 secondes | Aucune | État du thread :
|
Taille initiale de la mémoire JVM | arms_jvm_mem_init_bytes | Jauge | 15 secondes | Octets | Zone :
Répartition par ID de zone :
|
Taille maximale de la mémoire JVM | arms_jvm_mem_max_bytes | Jauge | 15 secondes | Octets | |
Taille utilisée de la mémoire JVM | arms_jvm_mem_used_bytes | Jauge | 15 secondes | Octets | |
Taille engagée de la mémoire JVM | arms_jvm_mem_committed_bytes | Jauge | 15 secondes | Octets | |
Taux d'utilisation de la mémoire JVM | arms_jvm_mem_usage_ratio | Jauge | 15 secondes | Ratio (0–1) | |
Nombre de classes chargées par la JVM | arms_class_load_loaded | Compteur | 15 secondes | Aucune | Aucune |
Nombre de classes déchargées par la JVM | arms_class_load_un_loaded | Compteur | 15 secondes | Aucune | Aucune |
Taille du pool de tampons JVM | arms_jvm_buffer_pool_total_bytes | Jauge | 15 secondes | Octets | ID de zone :
|
Taille utilisée du pool de tampons JVM | arms_jvm_buffer_pool_used_bytes | Jauge | 15 secondes | Octets | |
Nombre du pool de tampons JVM | arms_jvm_buffer_pool_count | Jauge | 15 secondes | Aucune | |
Nombre de descripteurs de fichiers ouverts | arms_file_desc_open_count | Jauge | 15 secondes | Aucune | Aucune |
Taux d'utilisation des descripteurs de fichiers (ouverts / limite) | arms_file_desc_open_ratio | Jauge | 15 secondes | Ratio (0–1) | Aucune |
Stockage des métriques
Les métriques JVM sont stockées dans le magasin de métriques central (metricstore-apm-metrics).
Métriques système
Dimensions courantes
|
Nom de la dimension |
Clé de dimension |
|
Nom du service |
service |
|
PID du service |
pid |
|
IP de l'hôte |
serverIp |
Liste des métriques
|
Nom de la métrique |
Métrique |
Type de métrique |
Intervalle de collecte |
Unité |
|
Taux d'inactivité du CPU |
arms_system_cpu_idle |
Jauge |
15 secondes |
Pourcentage |
|
Taux d'attente E/S du CPU |
arms_system_cpu_io_wait |
Jauge |
15 secondes |
Pourcentage |
|
Taux système du CPU |
arms_system_cpu_system |
Jauge |
15 secondes |
Pourcentage |
|
Taux utilisateur du CPU |
arms_system_cpu_user |
Jauge |
15 secondes |
Pourcentage |
|
Charge système (1 minute) |
arms_system_load |
Jauge |
15 secondes |
Aucune |
|
Espace disque libre |
arms_system_disk_free_bytes |
Jauge |
15 secondes |
Octets |
|
Espace disque total |
arms_system_disk_total_bytes |
Jauge |
15 secondes |
Octets |
|
Taux d'utilisation du disque |
arms_system_disk_used_ratio |
Jauge |
15 secondes |
Ratio (0–1) |
|
Taille du tampon de la mémoire système |
arms_system_mem_buffers_bytes |
Jauge |
15 secondes |
Octets |
|
Taille du cache de la mémoire système |
arms_system_mem_cached_bytes |
Jauge |
15 secondes |
Octets |
|
Mémoire système libre |
arms_system_mem_free_bytes |
Jauge |
15 secondes |
Octets |
|
Espace swap libre |
arms_system_mem_swap_free_bytes |
Jauge |
15 secondes |
Octets |
|
Espace swap total |
arms_system_mem_swap_total_bytes |
Jauge |
15 secondes |
Octets |
|
Mémoire système totale |
arms_system_mem_total_bytes |
Jauge |
15 secondes |
Octets |
|
Mémoire système utilisée |
arms_system_mem_used_bytes |
Jauge |
15 secondes |
Octets |
|
Trafic réseau entrant |
arms_system_net_in_bytes |
Jauge |
15 secondes |
Octets |
|
Trafic réseau sortant |
arms_system_net_out_bytes |
Jauge |
15 secondes |
Octets |
|
Nombre d'erreurs réseau entrantes |
arms_system_net_in_err |
Jauge |
15 secondes |
Aucune |
|
Nombre d'erreurs réseau sortantes |
arms_system_net_out_err |
Jauge |
15 secondes |
Aucune |
Stockage des métriques
Les métriques système sont stockées dans le magasin de métriques central (metricstore-apm-metrics).
Métriques des pools de threads et des pools de connexions
Dimensions courantes
|
Nom de la dimension |
Clé de dimension |
|
Nom du service |
service |
|
PID du service |
pid |
|
IP de l'hôte |
serverIp |
|
Nom du pool de threads (pris en charge par les versions d'agent antérieures à la 4,1.x) |
name |
|
Type de pool de threads (pris en charge par les versions d'agent antérieures à la 4,1.x) |
type |
Liste des métriques
Version 4.1.x de l'agent et ultérieures
Métriques des pools de threads
Nom de la métrique | Métrique | Type de métrique | Intervalle de collecte | Dimensions |
Nombre de threads principaux du pool de threads | arms_thread_pool_core_pool_size | Gauge | 15 secondes |
|
Nombre maximal de threads du pool de threads | arms_thread_pool_max_pool_size | Gauge | 15 secondes |
|
Nombre de threads actifs du pool de threads | arms_thread_pool_active_thread_count | Gauge | 15 secondes |
|
Nombre actuel de threads du pool de threads | arms_thread_pool_current_thread_count | Gauge | 15 secondes |
|
Nombre maximal de threads du pool de threads (depuis la création du pool) | arms_thread_pool_max_thread_count | Gauge | 15 secondes |
|
Nombre de tâches planifiées du pool de threads | arms_thread_pool_scheduled_task_count | Counter | 15 secondes |
|
Nombre de tâches terminées du pool de threads | arms_thread_pool_completed_task_count | Counter | 15 secondes |
|
Nombre de tâches rejetées du pool de threads | arms_thread_pool_rejected_task_count | Counter | 15 secondes |
|
Taille de la file d'attente des tâches du pool de threads | arms_thread_pool_queue_size | Gauge | 15 secondes |
|
Métriques des pools de connexions
Description de la métrique | Nom de la métrique | Type de métrique | Intervalle de collecte | Dimensions |
Nombre de connexions | arms_connection_pool_connection_count | Gauge | 15 secondes |
|
Nombre minimal de connexions inactives | arms_connection_pool_connection_min_idle_count | Gauge | 15 secondes |
|
Nombre maximal de connexions inactives | arms_connection_pool_connection_max_idle_count | Gauge | 15 secondes |
|
Nombre maximal de connexions | arms_connection_pool_connection_max_count | Gauge | 15 secondes |
|
Nombre de demandes de connexion bloquées | arms_connection_pool_pending_request_count | Counter | 15 secondes |
|
Versions de l'agent antérieures à la 4,1.x
Nom de la métrique | Métrique | Type de métrique | Intervalle de collecte | Dimensions |
Nombre de threads principaux du pool de threads | arms_threadpool_core_size | Gauge | 15 secondes | Aucune |
Nombre maximal de threads du pool de threads | arms_threadpool_max_size | Gauge | 15 secondes | Aucune |
Nombre de threads actifs du pool de threads | arms_threadpool_active_size | Gauge | 15 secondes | Aucune |
Taille de la file d'attente du pool de threads | arms_threadpool_queue_size | Gauge | 15 secondes | Aucune |
Taille du pool de threads | arms_threadpool_current_size | Gauge | 15 secondes | Aucune |
Nombre de tâches du pool de threads par état | arms_threadpool_task_total | Gauge | 15 secondes | StatusTask status :
|
Stockage des métriques
Les métriques des pools de threads et des pools de connexions sont stockées dans le magasin de métriques principal (metricstore-apm-metrics).
Métriques des tâches planifiées
Les métriques suivantes existent uniquement pour les tâches planifiées.
Dimensions courantes
|
Nom de la dimension |
Clé de dimension |
|
Nom du service |
service |
|
PID du service |
pid |
|
IP de l'hôte |
serverIp |
|
ID de tâche |
rpc |
Liste des métriques
|
Nom de la métrique |
Métrique |
Type de métrique |
Intervalle de collecte |
Unité |
|
Délai de planification |
arms_$callType_delay_milliseconds |
Gauge |
15 secondes |
Millisecondes |
Stockage des métriques
Les métriques des tâches planifiées sont stockées dans le magasin de métriques détaillées (metricstore-apm-metrics-detail).
Métriques d'exécution Go
Liste des métriques
|
Nom de la métrique |
Métrique |
Type de métrique |
Intervalle de collecte |
|
Temps de démarrage de l'application (ms) |
arms_golang_runtime_uptime |
Int64Counter |
15 secondes |
|
Nombre actuel de Goroutines |
arms_golang_process_runtime_go_goroutines |
Gauge |
15 secondes |
|
Mémoire des objets Heap (octets) |
arms_golang_process_runtime_go_mem_heap_alloc |
Gauge |
15 secondes |
|
Mémoire Heap non allouée ou récupérée |
arms_golang_process_runtime_go_mem_heap_idle |
Gauge |
15 secondes |
|
Mémoire Heap utilisée |
arms_golang_process_runtime_go_mem_heap_inuse |
Gauge |
15 secondes |
|
Objets Heap actifs alloués |
arms_golang_process_runtime_go_mem_heap_objects |
Gauge |
15 secondes |
|
Mémoire Heap restituée au système d'exploitation |
arms_golang_process_runtime_go_mem_heap_released |
Gauge |
15 secondes |
|
Taille de la mémoire virtuelle demandée |
arms_golang_process_runtime_go_mem_heap_sys |
Gauge |
15 secondes |
|
Nombre d'objets actifs |
arms_golang_process_runtime_go_mem_live_objects |
Gauge |
15 secondes |
|
Nombre de GC depuis le démarrage du programme |
arms_golang_process_runtime_go_gc_count |
Gauge |
15 secondes |
|
Temps cumulé de pause GC (stop-the-world) |
arms_golang_process_runtime_go_gc_pause_total_ns |
Int64Counter |
15 secondes |
|
Distribution du temps de GC |
arms_golang_process_runtime_go_gc_pause_ns |
Int64Histogram |
15 secondes |
Stockage des métriques
Les métriques d'exécution Go sont stockées dans le magasin de métriques central (metricstore-apm-metrics).
Types d'accès aux services et dimensions disponibles
Types côté client
-
Type d'accès
http_client
dubbo_client
hsf_client
dsf_client
notify_client
grpc_client
thrift_client
sofa_client
mq_client
kafka_client
-
Dimensions
parent : nom du service en amont
ppid : PID du service en amont
destId : informations d'extension du pair de requête
endpoint : adresse du pair de requête
excepType : ID d'exception
excepInfo : règles d'encodage de l'ID d'exception
excepName : nom de l'exception
stackTraceId : ID de la pile d'exceptions
Types de base de données
-
Type d'accès
mysql
oracle
mariadb
postgresql
ppas
sqlserver
mongodb
dmdb
-
Dimensions
parent : nom du service en amont
ppid : PID du service en amont
destId : nom de la base de données
endpoint : adresse de la base de données
excepType : ID d'exception
excepInfo : règles d'encodage de l'ID d'exception
excepName : nom de l'exception
stackTraceId : ID de la pile d'exceptions
sqlId : ID de l'instruction SQL
Types côté serveur
-
Type d'accès
http
dubbo
hsf
dsf
user_method
mq
kafka
grpc
thrift
sofa
-
Dimensions
prpc : interface en amont
parent : nom du service en amont
ppid : PID du service en amont
endpoint : adresse du service
excepType : ID d'exception
excepInfo : règles d'encodage de l'ID d'exception
excepName : nom de l'exception
stackTraceId : ID de la pile d'exceptions
Types de tâches planifiées
-
Type d'accès
xxl_job
spring_scheduled
quartz
elasticjob
jdk_timer
schedulerx
-
Dimensions
prpc : interface en amont
parent : nom du service en amont
ppid : PID du service en amont
excepType : ID d'exception
excepInfo : règles d'encodage de l'ID d'exception
excepName : nom de l'exception
stackTraceId : ID de la pile d'exceptions