CloudDBA provides the latency insight feature to collect millisecond-level latency statistics of all commands that are run and custom events that are executed on ApsaraDB for Redis databases. Latency insight enables you to troubleshoot anomalies and performance issues of ApsaraDB for Redis databases.
Features
Redis 2.8.13 introduced a new feature called latency monitoring to help users identify and troubleshoot possible latency issues. The latency monitoring feature allows you to collect data generated only within the last 160 seconds and access only events that have the highest latency within each second.
- Persistent: supports data persistence and latency spike tracing.
- High-precision: allows full events to be monitored within milliseconds.
- High-performance: supports asynchronous implementations with minimal impact on performance.
- Real-time: supports real-time data queries and aggregation operations.
- Multidimensional: provides comprehensive latency data that allows you to analyze an instance based on events, time, and latency.
Prerequisites
- Minor version 1.6.9 or later if the instance is a performance-enhanced instance of the ApsaraDB for Redis Enhanced Edition (Tair). For more information about performance-enhanced instances, see Performance-enhanced instances. If you want to collect statistics about Tair module commands, update the minor version to 1.7.28 or later.
- Minor version 5.1.4 or later if the instance is a Community Edition instance that uses the 5.0 major version.
- Minor version 0.1.15 or later if the instance is a Community Edition instance that uses the 6.0 major version.
Procedure
Common events
Category | Name | Threshold | Description |
---|---|---|---|
Memory eviction | EvictionDel | 30ms | The amount of time it takes to evict a key. |
EvictionLazyFree | 30ms | The amount of time it takes to evict a key by using the Lazyfree feature. | |
EvictionCycle | 30ms | The amount of time it takes to perform an eviction. | |
Memory defragmentation | ActiveDefragCycle | 100ms | The amount of time it takes to defragment memory. |
Rehash | Rehash | 100ms | The amount of time it takes to perform a rehash. |
Data structure upgrade | ZipListConvertHash | 30ms | The amount of time it takes to convert a ziplist to a dictionary by means of hash encoding. |
IntsetConvertSet | 30ms | The amount of time it takes to convert an intset to a set by means of set encoding. | |
ZipListConvertZset | 30ms | The amount of time it takes to convert a ziplist to a skiplist by means of ziplist encoding. | |
Append-only file (AOF) | AofWriteAlone | 30ms | The uptime during an AOF write |
AofWrite | 30ms | The amount of time it takes to perform each AOF write. An AOF write can be of the AofWriteAlone, AofWriteActiveChild, or AofWritePendingFsync type. | |
AofFsyncAlways | 30ms | The amount of time it takes to perform a fsync operation on an AOF when the appendfsync option is set to 1. | |
AofFstat | 30ms | The amount of time it takes to obtain status information about an AOF. | |
AofRename | 30ms | The amount of time it takes to rename an AOF. | |
AofReWriteDiffWrite | 30ms | The amount of time consumed by an incremental AOF write performed by a parent process after its child process rewrites an AOF. | |
AofWriteActiveChild | 30ms | The amount of time it takes to perform an AOF write when other child processes are in progress. | |
AofWritePendingFsync | 30ms | The amount of time it takes to perform an AOF write when a fsync operation is in progress. | |
Redis database (RDB) file | RdbUnlinkTempFile | 50ms | The amount of time it takes to delete a temporary RDB file after a bgsave child process is terminated. |
Others | Commands | 30ms | The amount of time it takes to run a command that is not tagged with fast. |
FastCommand | 30ms | The amount of time it takes to run a command that is tagged with fast, such as GET or EXISTS. | |
EventLoop | 50ms | The amount of time it takes to have a main event loop running. | |
Fork | 100ms | The amount of time recorded in a parent process after the parent process is forked. | |
Transaction | 50ms | The actual amount of time consumed by a transaction. | |
PipeLine | 50ms | The amount of time consumed by a multi-threaded pipeline. | |
ExpireCycle | 30ms | The amount of time consumed by a regular deletion of an expired key. | |
SlotRdbsUnlinkTempFile | 30ms | The amount of time it takes to delete a temporary RDB file from a slot after a bgsave child process is terminated. | |
LoadSlotRdb | 100ms | The amount of time it takes to load an RDB file from a slot. | |
SlotreplTargetcron | 50ms | The amount of time it takes to load an RDB file from a slot to a temporary database and then migrate the file to a destination database by using a child process. |