Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:How ARMS calculates quantile metrics

Dernière mise à jour :Aug 10, 2026

Application Real-Time Monitoring Service (ARMS) utilise des métriques de quantile telles que P50, P75, P90 et P99 pour représenter la distribution des latences au sein de votre application. Cette rubrique explique comment l'agent ARMS calcule ces quantiles, présente les compromis en matière de précision liés à l'approche par histogramme et indique quand privilégier les quantiles basés sur l'agent plutôt que ceux de Trace Explorer.

Métriques de quantile dans le cadre de la supervision

La latence moyenne masque les valeurs aberrantes. Si 99 % des requêtes s'exécutent en 10 ms mais que 1 % prennent 5 000 ms, la moyenne semble satisfaisante alors qu'une partie significative des utilisateurs subit des performances médiocres.

Les quantiles (également appelés percentiles) résolvent ce problème en affichant la latence à des points spécifiques de la distribution :

Quantile Signification
P50 La médiane. La moitié des requêtes sont plus rapides, l'autre moitié est plus lente.
P75 75 % des requêtes s'achèvent avec une latence inférieure ou égale à cette valeur.
P90 90 % des requêtes s'achèvent avec une latence inférieure ou égale à cette valeur.
P99 99 % des requêtes s'achèvent avec une latence inférieure ou égale à cette valeur. Seuls 1 % sont plus lents.

Les indicateurs P90 et P99 s'avèrent particulièrement utiles pour comprendre la latence de queue, c'est-à-dire l'expérience vécue par les utilisateurs les plus impactés par les ralentissements.

Exemple

Prenons un jeu de 14 points de données : [2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20]

Les valeurs exactes des quantiles sont les suivantes :

  • P50 : 10

  • P75 : 16

  • P90 : 18

  • P99 : 20

Activer les statistiques de quantile

Pour collecter les métriques de quantile, activez Quantile Statistics dans la console ARMS.

New console

Pour plus de détails, consultez Personnaliser les paramètres d'une application Java.

Quantile Statistics toggle in the new ARMS console

Old console

Pour plus de détails, consultez Personnaliser les paramètres de l'application.

Quantile Statistics toggle in the old ARMS console

Comment l'agent ARMS calcule les quantiles

L'agent ARMS (version 4.x et ultérieure) calcule les quantiles de latence à l'aide d'un histogramme à limites fixes avec interpolation linéaire. Au lieu de stocker chaque valeur de latence individuellement, l'agent compte le nombre de requêtes qui tombent dans chaque compartiment prédéfini.

Limites des compartiments

Les limites par défaut des compartiments sont les suivantes (en millisecondes) :

[0.0, 5.0, 10.0, 25.0, 50.0, 75.0, 100.0, 250.0, 500.0, 750.0, 1000.0, 2500.0, 5000.0, 7500.0, 10000.0]

Ces limites créent 16 compartiments :

Compartiment Plage (ms)
0 (-Infinity, 0.0]
1 (0.0, 5.0]
2 (5.0, 10.0]
3 (10.0, 25.0]
4 (25.0, 50.0]
5 (50.0, 75.0]
6 (75.0, 100.0]
7 (100.0, 250.0]
8 (250.0, 500.0]
9 (500.0, 750.0]
10 (750.0, 1000.0]
11 (1000.0, 2500.0]
12 (2500.0, 5000.0]
13 (5000.0, 7500.0]
14 (7500.0, 10000.0]
15 (10000.0, +Infinity]

Étapes de calcul

Le calcul se déroule en deux phases : le comptage par compartiment et l'interpolation linéaire.

Phase 1 : Compter les requêtes par compartiment

Chaque requête entrante incrémente le compteur du compartiment correspondant à sa latence. En reprenant l'exemple de données [2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20] :

Compartiment Plage (ms) Nombre Valeurs
0 (-Infinity, 0.0] 0 --
1 (0.0, 5.0] 2 2, 3
2 (5.0, 10.0] 5 6, 7, 8, 9, 10
3 (10.0, 25.0] 7 12, 14, 15, 16, 17, 18, 20
4-15 (25.0, +Infinity] 0 --

Phase 2 : Interpolation linéaire

Pour calculer un quantile spécifique, ARMS identifie le compartiment cible et interpole à l'intérieur de celui-ci.

Détail du calcul pour P75 :

  1. Déterminez la position cible. Le nombre total de points de données est de 14. La position P75 correspond à 14 x 0,75 = 10,5. ARMS arrondit cette valeur à l'entier supérieur : le décompte cumulatif cible est de 11.

  2. Identifiez le compartiment cible. Accumulez les comptes de gauche à droite jusqu'à atteindre un décompte cumulatif de 11 :

    • Compartiment 0 : cumulatif = 0

    • Compartiment 1 : cumulatif = 2

    • Compartiment 2 : cumulatif = 7

    • Compartiment 3 : cumulatif = 14 (premier à atteindre 11) — il s'agit du compartiment cible.

  3. Interpolez au sein du compartiment. Les compartiments 0 à 2 représentent déjà 7 points de données. ARMS a besoin de 4 points de données supplémentaires (11 - 7 = 4) provenant du compartiment 3, qui en contient 7 au total. Le compartiment 3 couvre l'intervalle (10,0, 25,0] : P75 = 10,0 + (25,0 - 10,0) x 4 / 7 = 18,6

Le P75 exact des données brutes est de 16, mais l'estimation basée sur l'histogramme donne 18,6. Cet écart s'explique par le fait que l'interpolation linéaire suppose une distribution uniforme des données au sein d'un compartiment, ce qui est rarement le cas. Plus le compartiment est large, plus l'erreur potentielle est importante.

Compromis en matière de précision

L'approche par histogramme à limites fixes offre une grande efficacité, mais introduit des erreurs d'estimation dans certains scénarios.

Points forts

  • Faible surcharge. Seuls les compteurs de compartiments sont stockés ; il n'est pas nécessaire de conserver chaque valeur de latence individuelle en mémoire.

Limites

Dans les scénarios présentant des latences extrêmement faibles, extrêmement élevées ou très peu d'échantillons, les quantiles calculés peuvent manquer de précision. La précision dépend de l'adéquation entre les limites des compartiments et la distribution réelle de vos latences :

Scénario Impact Raison
Latences concentrées dans un compartiment large Erreur plus élevée L'interpolation linéaire suppose une distribution uniforme au sein du compartiment, alors que les données réelles peuvent être asymétriques.
Latences très faibles (inférieures à la milliseconde) Erreur plus élevée Toutes les valeurs inférieures à 5 ms atterrissent dans un seul compartiment de 5 ms de largeur, ce qui réduit la précision.
Latences très élevées (supérieures à 10 000 ms) Erreur plus élevée Toutes les valeurs supérieures à 10 000 ms tombent dans le compartiment 15 à borne ouverte, rendant l'interpolation moins fiable.
Très peu d'échantillons Erreur plus élevée Avec des données éparses, le compartiment dans lequel une valeur atterrit a un impact disproportionné sur le résultat.
Latences réparties dans des compartiments étroits Erreur plus faible Les compartiments de 5 ms et 10 ms de largeur situés à l'extrémité basse offrent une granularité plus fine.

Comment Trace Explorer calcule les quantiles

Trace Explorer calcule les quantiles en se basant sur les latences de tous les spans qui satisfont aux conditions de filtrage de la page et aux fonctions SQL de Simple Log Service. Pour plus d'informations, consultez la fonction approx_percentile dans Présentation des fonctions.