1. hour 函数说明
[TOC]
1.1. 文档说明
用于描述block
statistics
中用于统计的函数hour
的使用说明以及实现逻辑
1.2. 修订记录
日期 | 文档版本 | 增加/修订内容 | 程序版本要求 |
---|---|---|---|
2021-07-13 | R1 | 第一次添加文档说明 | >= 6.1.0 |
1.3. 函数解释
hour
函数用于统计周期
内某个统计key(例如S01) 在满足临界值
的情况下的持续时长
1.3.1. 数据来源
数据来源全部来自统计对代理的订阅
1.3.2. 函数参数
hour
函数必须配置函数参数
参数说明
hour_params
:threshold
:阈值设置使用数学中集合的概念表示区间,
()
,[]
表示区间的范围()
表示开区间,[]
表示闭区间退化区间(单值)
:[a] = {a}
闭区间
:[a,b] = {a <= x <= b}
开区间
:(a,b) = {a < x < b}
左闭右开区间
:[a,b) = {a <= x < b}
左开右闭区间
:(a,b] = {a < x <= b}
单侧无界,有下界但无上界,左闭
:[a,]或者[a,) = {x >= a}
单侧无界,有下界但无上界,左开
:(a,]或者(a,) = {x > a}
单侧无界,有上界但无下界,右闭
:(,b]或者[,b] = {x <= b}
单侧无界,有上界但无下界,右开
:(,b)或者[,b) = {x < b}
双侧无界
:不存在这种写法,hour函数必须配置threshold
unit
:hour函数结果的单位设置- 可填写值:
ms
(毫秒),s
(秒),m
(分),h
(小时),d
(天) - 默认值:
s
(秒)
- 可填写值:
1.3.3. 数据约束
- 必须是
数字(包含浮点和整数)类型
,例如{"S01":1.234}
如果要统计非数字类型,会尝试强制转换为数字类型,转换失败,则当前数据包丢弃,不做统计
举例说明
统计周期内S01满足
条件:S01 > 0
的情况下的持续时长- 脚本
{ "schedule": { "spec": "0 0 */1 * * *" }, "key":"S01", "func":"hour", "func_params":{ "hour_params":{ "threshold":"(0,]", "unit":"s" } } ... }
- 数据样本
time value --- ---- 2021-07-13T09:00:00 {"S01":1} 2021-07-13T09:01:00 {"S01":2} 2021-07-13T09:02:00 {"S01":3} 2021-07-13T09:03:00 {"S01":4} 2021-07-13T09:04:00 {"S01":5} ... ... 2021-07-13T09:59:59 {"S01":59,"S02"}
统计周期范围
2021-07-13T09:00:00
到2021-07-13T10:00:00
的hour
值为3599统计周期内S01满足
条件:S01 > 0 && S01 < 50
的情况下的持续时长- 脚本
{ "schedule": { "spec": "0 0 */1 * * *" }, "key":"S01", "func":"hour", "func_params":{ "hour_params":{ "threshold":"(0,50)", "unit":"h" } }, "result": { "precision": 2 }, ... }
- 数据样本
time value --- ---- 2021-07-13T09:00:00 {"S01":1} 2021-07-13T09:01:00 {"S01":2} 2021-07-13T09:02:00 {"S01":3} 2021-07-13T09:03:00 {"S01":4} 2021-07-13T09:04:00 {"S01":5} 2021-07-13T09:49:00 {"S01":48} 2021-07-13T09:49:00 {"S01":"49"} 2021-07-13T09:50:00 {"S01":50} ... ... 2021-07-13T09:59:59 {"S01":59}
- 统计周期范围
2021-07-13T09:00:00
到2021-07-13T10:00:00
的hour
值为0.80,单位是小时 - 如果设置单位为"s",结果为2880.00,单位是秒
- 如果设置
条件:S01 > 0 && S01 <= 50
,则结果为0.83