- 用法
-
COMMANDLOG GET count 〈 slow | large-request | large-reply 〉
- 复杂度
- O(N),其中 N 为返回的条目数量
- 始于
- 8.1.0
- ACL 类别
- @admin, @dangerous, @slow
-
SLOW:记录执行时间超过指定阈值的命令。这不包括客户端通信等 I/O 操作所花费的时间,仅关注命令处理时间,即主线程被阻塞的时间。
-
LARGE-REQUEST:记录请求大小超过定义阈值的命令。这有助于识别向服务器发送过多数据、可能存在问题的命令。
-
LARGE-REPLY:记录生成回复大小超过定义阈值的命令。这有助于识别返回异常大量数据、可能影响网络性能或客户端处理的命令。
- 一个阈值,用于确定何时记录命令。此阈值特定于日志类型(例如,执行时间、请求大小或回复大小)。负值禁用日志记录。值为 0 则记录所有命令。
- 一个最大长度,指定日志中保留的条目数量。增加长度可以存储更多条目,但会消耗额外的内存。要清除特定日志类型的所有条目并回收内存,请使用
COMMANDLOG RESET
子命令,后跟日志类型。 - 每个条目的唯一递增标识符。
- 日志命令被处理时的 Unix 时间戳。
- 每种命令日志类型都有其自己的含义,目前有三种类型
- SLOW 类型的时间(单位:微秒)
- LARGE-REQUEST 类型的请求大小(单位:字节)
- LARGE-REPLY 类型的回复大小(单位:字节)
- 构成命令参数的数组。
- 客户端对等信息(例如,TCP 连接客户端的客户端 IP 地址和端口,或 Unix 套接字的 Unix 路径)。
- 如果通过
CLIENT SETNAME
命令设置了客户端名称,则为客户端名称。
COMMANDLOG GET
命令以时间顺序返回指定类型的命令日志条目。
命令日志系统用于记录服务器运行期间消耗大量资源(包括 CPU、内存和网络带宽)的命令。这些命令及其访问的数据可能导致实例操作异常,而命令日志可以帮助用户快速直观地定位问题。
目前支持三种命令日志类型
每种日志类型都有两个关键参数
请参阅 valkey.conf 中的配置详情。
特定类型的命令日志中的每个条目都包含以下六个值
条目的唯一 ID 可用于避免多次处理命令日志条目(例如,您可能有一个脚本为每个新的命令日志条目发送电子邮件警报)。即使在执行 COMMANDLOG RESET
命令后,Valkey 服务器执行过程中 ID 也不会重置。要重置 ID,需要重新启动服务器。