Latency insights est une fonctionnalité CloudDBA qui mesure le temps d'exécution de toutes les commandes Redis et jusqu'à 27 événements internes sur une instance Tair (compatible avec Redis OSS). Les statistiques sont précises à la microseconde près et conservées pendant trois jours, ce qui permet un diagnostic en temps réel ainsi qu'une analyse rétrospective des pics de latence.
Fonctionnement
Redis 2.8.13 a introduit une surveillance native de la latence. Cette fonctionnalité couvre un nombre limité d'événements, conserve les données pendant seulement 160 secondes et n'enregistre qu'un seul relevé par seconde (l'événement présentant la latence la plus élevée).
Latency insights étend ces capacités grâce aux améliorations suivantes :
Persistance : les données sont stockées pendant trois jours, permettant de retracer les pics de latence sur cette période.
Haute précision : l'intégralité des événements est surveillée avec une précision à la microseconde.
Faible surcharge : l'implémentation asynchrone minimise l'impact sur les performances de l'instance.
Requêtes en temps réel : les données sont immédiatement disponibles pour interrogation et agrégation.
Multiples dimensions d'analyse : filtrez les données par type d'événement, plage horaire ou valeur de latence.
Seules les commandes et les événements dépassant un seuil défini sont enregistrés. Ces seuils varient selon le type d'événement (30 ms, 50 ms ou 100 ms). Consultez la section Annexe : Événements spéciaux courants pour obtenir la liste complète.
Prérequis
Avant de commencer, assurez-vous que :
-
La version mineure de l'instance respecte les exigences minimales de votre édition. Pour mettre à jour la version mineure, consultez la rubrique Mettre à jour la version mineure d'une instance.
Édition Version mineure minimale Notes Tair (Enterprise Edition) memory-optimized 1.6.9 Pour les statistiques des commandes de module Tair, utilisez la version 1.7.28 ou ultérieure. Redis Open-Source Edition 5.0 5.1.4 Redis Open-Source Edition 6.0 0.1.15 Redis Open-Source Edition 7.0 7.0.0.6
Facturation
L'utilisation de Latency insights est gratuite.
Consulter les statistiques de latence
Connectez-vous à la console et accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où votre instance est déployée. Repérez l'instance concernée et cliquez sur son ID.
Dans le volet de navigation de gauche, cliquez sur CloudDBA > Latency Insights.
Sur la page Latency Insights, sélectionnez une plage horaire puis cliquez sur Search. La vue par défaut affiche les statistiques des cinq dernières minutes. Les requêtes peuvent couvrir jusqu'à trois jours de données, mais une seule requête ne peut pas dépasser une heure. Pour les instances en cluster et celles utilisant la séparation lecture/écriture, utilisez les onglets Data Node et Proxy Node afin de consulter les statistiques séparément par type de nœud.
-
Cliquez sur le nom d'un événement ou sur un compteur dans la liste pour afficher son graphique de tendance de latence. Dans le graphique, sélectionnez des métriques supplémentaires pour superposer leurs tendances.

Seules les commandes et les événements dépassant leur seuil configuré sont enregistrés. Si vous observez des événements à haute latence, consultez la rubrique Suggestions for handling common latency events pour obtenir des recommandations de correction.
Référence des métriques
Le tableau Latency Insights présente les colonnes suivantes :
| Metric | Description |
|---|---|
| Event | Nom de l'événement. Exemples : ExpireCycle, EventLoop, Ping, Scan, Commands, Info. Consultez la section Annexe : Événements spéciaux courants. |
| Total | Nombre total d'occurrences enregistrées. |
| Average Latency (us) | Latence moyenne de toutes les occurrences enregistrées, exprimée en microsecondes. |
| Maximum Latency (us) | Latence maximale observée, exprimée en microsecondes. |
| Aggregated count (< 1 ms) | Nombre d'événements dont la latence est inférieure à 1 ms. Cliquez sur l'icône |
| \<2 ms, \<4 ms, ..., >33s | Nombre d'événements dans chaque plage de latence. |
Règles de comptage : Chaque plage exclut la borne inférieure et inclut la borne supérieure. Par exemple, \<2 us compte les événements dont la latence se situe entre 1 us et 2 us. \<2 ms compte les événements dont la latence se situe entre 1 ms et 2 ms. >33s compte les événements dont la latence dépasse 33 secondes.
Étapes suivantes
Suggestions for handling common latency events — étapes de correction pour chaque type d'événement
Update the minor version of an instance — mise à jour de l'instance pour respecter les exigences de version
Annexe : Événements spéciaux courants
Les événements sont regroupés selon le sous-système Redis auquel ils se rapportent. La colonne Threshold indique la latence minimale déclenchant l'enregistrement.
Expulsion de mémoire
| Event | Threshold | Description |
|---|---|---|
| EvictionDel | 30 ms | Temps nécessaire pour supprimer les clés expulsées lors d'un cycle d'expulsion. |
| EvictionLazyFree | 30 ms | Temps nécessaire aux threads d'arrière-plan pour libérer la mémoire lors d'un cycle d'expulsion. |
| EvictionCycle | 30 ms | Durée totale d'un cycle d'expulsion, incluant la sélection des clés, leur suppression et l'attente des threads d'arrière-plan. |
Défragmentation de la mémoire
| Event | Threshold | Description |
|---|---|---|
| ActiveDefragCycle | 100 ms | Temps nécessaire pour exécuter un cycle de défragmentation de la mémoire. |
Rehashing
| Event | Threshold | Description |
|---|---|---|
| Rehash | 100 ms | Temps nécessaire pour effectuer un rehashing de la table de hachage. |
Mise à niveau de la structure de données
| Event | Threshold | Description |
|---|---|---|
| ZipListConvertHash | 30 ms | Temps nécessaire pour convertir une ziplist en dictionnaire à l'aide de l'encodage hash. |
| IntsetConvertSet | 30 ms | Temps nécessaire pour convertir un intset en set à l'aide de l'encodage set. |
| ZipListConvertZset | 30 ms | Temps nécessaire pour convertir une ziplist en skiplist à l'aide de l'encodage ziplist. |
Fichier Append-only file (AOF)
| Event | Threshold | Description |
|---|---|---|
| AofWriteAlone | 30 ms | Temps nécessaire pour écrire un fichier AOF dans des conditions normales. |
| AofWrite | 30 ms | Temps total d'écriture d'un fichier AOF. Chaque écriture AOF réussie enregistre cet événement accompagné d'exactement l'un des éléments suivants : AofWriteAlone, AofWriteActiveChild ou AofWritePendingFsync. |
| AofFstat | 30 ms | Temps nécessaire pour récupérer les métadonnées du fichier AOF. |
| AofRename | 30 ms | Temps nécessaire pour renommer un fichier AOF. |
| AofReWriteDiffWrite | 30 ms | Temps nécessaire au processus parent pour écrire les données AOF incrémentielles après qu'un processus enfant ait terminé une réécriture AOF. |
| AofWriteActiveChild | 30 ms | Temps nécessaire pour écrire les données AOF sur le disque lorsqu'un autre processus enfant est également en cours d'écriture. |
| AofWritePendingFsync | 30 ms | Temps nécessaire pour écrire les données AOF lorsqu'un processus d'arrière-plan exécute fsync. |
Fichier RDB
| Event | Threshold | Description |
|---|---|---|
| RdbUnlinkTempFile | 50 ms | Temps nécessaire pour supprimer un fichier RDB temporaire après la fermeture du processus enfant bgsave. |
Autres événements
| Event | Threshold | Description |
|---|---|---|
| Commands | 30 ms | Temps d'exécution d'une commande non identifiée comme rapide. |
| FastCommand | 30 ms | Temps d'exécution d'une commande identifiée comme rapide, ayant une complexité O(1) ou O(log N). Pour la liste des commandes rapides, consultez la section FastCommands. |
| EventLoop | 50 ms | Temps nécessaire pour compléter une itération de la boucle d'événements principale. |
| Fork | 100 ms | Temps nécessaire pour appeler fork(). |
| Transaction | 50 ms | Temps d'exécution d'une transaction. |
| PipeLine | 50 ms | Temps consommé par un pipeline multithread. |
| ExpireCycle | 30 ms | Temps nécessaire pour analyser et supprimer les clés expirées lors d'un cycle. |
| ExpireDel | 30 ms | Temps nécessaire pour supprimer les clés expirées au sein d'un cycle d'expiration. |
| SlotRdbsUnlinkTempFile | 30 ms | Temps nécessaire pour supprimer le fichier RDB temporaire d'un slot après la fermeture du processus enfant bgsave. |
| LoadSlotRdb | 100 ms | Temps nécessaire pour charger un fichier RDB depuis un slot. |
| SlotreplTargetcron | 50 ms | Temps nécessaire pour charger le fichier RDB d'un slot dans une base de données temporaire et le migrer vers la base de données de destination à l'aide d'un processus enfant. |