目录
- Slow log
- 记录条件
- 日志示例
- 配置内存存储
- 配置表存储
Slow log
hbase会记录慢查询日志,关键字包括responseTooSlow、responseTooLarge、operationTooSlow、and operationTooLarge。
记录条件
响应时间和响应的数据大小可由以下参数配置
- hbase.ipc.warn.response.time :查询运行超过该值的时间(毫秒),将被日志记录。默认10s,设置为-1则禁用日志记录
- hbase.ipc.warn.response.size :查询返回的数据超过该值(字节),将被日志记录。默认100M,设置为-1则禁用日志记录
日志示例
response相关字段默认会被截断,导致某些关键信息缺失
配置内存存储
用于配置一个环形缓冲区来存储
hbase.regionserver.slowlog.buffer.enabled=true
hbase.regionserver.slowlog.ringbuffer.size=配置缓冲区的大小
开启环形缓冲区后,可以从shell获取慢日志
// 获取所有rs的慢日志记录
hbase> get_slowlog_responses '*'
// 获取某一rs的记录
hbase> get_slowlog_responses host187.example.com,60020,1289493121758
// 获取给定client ip的慢记录
hbase> get_slowlog_responses '*', {'CLIENT_IP' => '192.162.1.40:60225', 'LIMIT' => 100}
获取超限日志 使用get_largelog_responses命令
配置表存储
缓冲区会被覆盖,同时需要系统表来持久化存储。
每个regionserver会启动一个cron作业,从队列中检索日志并插入系统表。
hbase.regionserver.slowlog.systable.enabled=true
日志会存储到系统表hbase:slowlog
hbase.slowlog.systable.chore.duration=10min
间隔时间
hbase.regionserver.slowlog.systable.queue.size=1000
regionserver存储的条数,默认1000
系统表列族info,包含以下列
- info:call_details
- info:client_address
- info:method_name
- info:param
- info:processing_time
- info:queue_time
- info:region_name
- info:response_size
- info:server_class
- info:start_time
- info:type
- info:username