统计接口即将在新版API中废弃,请使用功能强大和接口与返回结果格式都更友好的SPL接口代替!接口兼容问题,暂时请咨询售后支持人员解答。
路径:/statistic
在日志易API中,统计功能可理解为是对搜索结果数据集的分组操作和运算操作的组合。
分组操作可以再嵌套多个操作:
统计接口使用HTTP POST接口。
接口具体参数请看下文手册,先说明接口的结构
依上述注释数字说明:
query
元素是关键字,请求内容都应在query
元素内。action_name
是用户自定义的操作名。每个操作必须包含在名字指定的元素内。在API返回结果中将使用action_name
来使用户能区分不同的统计结果。名字的命名规范为:
terms
,group
和field
,order
,from
,to
,period
。action_type
是API接口定义的操作类型,比如分组操作有terms
,timeline
,histogram
等,计算操作有stats
,cardinality
等。具体含义下文手册将一一说明。action_body
根据每个action都有不同,具体内容下文手册将一一说明。action_name2
和action_name4
显示了在同一级数据分组内的多个操作如何并列。与所有JSON一样,注意两者不要使用同样的名字即可。terms
,timeline
。group
是关键字,当操作之间需要嵌套时候必须使用group
元素标示,以与注6
所示意的同级内的并列多个操作相区分。
action_name
内只能有一个group
元素。group
元素。返回结果结构:
返回结果结构说明:
data
元素中。action_name
的与请求中的一致,以用于识别不同的结果。action_result
根据不同的统计方法会有不同的格式。参数 | 含义 | 合法值 | 默认值 |
source_group | 日志分组 | all 和用户定义的日志分组名 | all |
time_range | 搜索的时间范围 |
| -3d,now |
query | 搜索语句 | 日志易的搜索语句支持全文检索、逻辑运算、正则表达式等: | * |
filter_field | 使用字段过滤 | 使用字符串|-$!| 分隔的field名和值。每个field的name和value之间用冒号分隔,value用双引号括起来;包括tag、 appname、 logtype也可通过此参数过滤:样例如logtype:"apache"|-$!|appache.status:"200" | 空 |
1.一些统计算法采用了近似算法(approximation algorithm),当前有terms
,cardinality
,percentiles
,percentile_ranks
。
2.当数据较多时多级分组操作很耗费系统资源,尤其是对非数值型的terms
分组操作,建议可以通过在URI中指定field_filter
的方式,做多次API请求来获得。