圣天诺流量控制记录和索引
前言
Sentinel是如何记录流控日志的,以及日志和索引的格式是怎么样的。本文将对此做个梳理。
一、流控日志记录
1.日志频率
流控日志每秒记录一次。
SCHEDULER.scheduleAtFixedRate(new MetricTimerListener(), 0, 1, TimeUnit.SECONDS);
2.日志格式
说明
时间戳 |
例如:1598276503000 |
---|---|
格式化的日期 |
例如:2020-08-24 21:41:43 |
resource名称 |
例如:Get:/hello |
passQps |
通过的Qps,即:在获取令牌(entry)统计的Qps |
blockQps |
阻塞的Qps,即:在抛出BlockException时统计的Qps |
successQps |
成功的QPS,即:在释放令牌(entry)后统计的Qps |
exceptionQps |
异常的Qps,即:抛出非BlockException的Qps |
rt |
从获取令牌(entry)到释放的响应时间 |
occupiedPassQps |
本时间窗口容量已满,占用未来时间窗口的Qps,默认为false不开启 |
concurrency |
并发度,未使用 |
classification |
resource类型0:common,1:common_web,2:common_rpc,3:common_api_gateway,4:common_db_sql |
3.日志说明
日志目录 |
默认日志目录为:user.home/logs/csp,可以通过csp.sentinel.log.dir参数设置 |
---|---|
日志名称 |
appName-metrics.log.yyyy-MM-dd.n,可以通过csp.sentinel.app.name指定每创建一个日志文件n会递增,可以通过logNameUsePid将pid加入到日志文件名中,默认false。例如:com-alibaba-csp-sentinel-dashboard-DashboardApplication-metrics.log.2020-08-25.5 |
日志大小 |
默认50M,可以通过csp.sentinel.metric.file.single.size设置 |
日志数量 |
默认最多6个文件,可以通过csp.sentinel.metric.file.total.count设置 |
4.索引格式
日志的索引由8位的时间戳和8位的日志位点构成。
时间戳 |
例如:1598276503000 |
---|---|
日志位点 |
记录了该时间对应日志文件中所在的位置 |
索引名称 |
日志文件名称.idx例如:com-alibaba-csp-sentinel-dashboard-DashboardApplication-metrics.log.2020-08-25.5.idx |
二、日志检索
API说明
List<MetricNode> find(long beginTimeMs, int recommendLines) |
---|
根据开始时间,检索流控日志,条数为recommendLines |
findByTimeAndResource(long beginTimeMs, long endTimeMs, String identity) |
---|
根据开始时间和结束时间检索流控日志,identify为资源名称为null时则不区分资源 |
上一篇: 简单二分法查找
下一篇: 结果 - 二分法结果(对折法结果)
推荐阅读