结果类型
因为SPL查询结果非常灵活,为了便于API调用者进行针对性的处理,将结果类型分为”QUERY”, “STATS”, “TRANSACTION“三类。
QUERY
type为”QUEYR”,此类表明:
- 通过SPL返回的结果依然是一个个事件,但对事件的内容进行了再次处理。常见的是通过eval语法调用SPL中的计算函数产生新的字段。
- 会将返回结果事件中嵌套的字段进行平铺,以匹配我们抽象后的表格表达形式。
-
举例如请求query=”* |
eval app=appname |
eval rawlen=len(raw_message)”。 |
STATS
type=”STATS”,此类表明返回结果是一次统计计算的结果,是比较简单的表格返回形式。比如当query=”eval rawlen=len(raw_message) |
stats avg(rawlen) as arl by hostname |
sort by arl” |
TRANSACTION
type=”TRANSACTION”,此类表明返回结果是一次transaction聚合操作的结果。
- 通过transaction进行聚合操作后的结果表格的每一行代表一个聚合后的结果。
- 每一行对应的原始事件包含在结果的
source
字段中。source字段是一个数组,数组的每个元素是原始事件的展开形式。
- 每一行有
_count
字段代表这一行的原始事件有多少条。
- 每一行对应的
_duration
字段代表原始事件的时间跨度。
- 每一行有
max_timestamp
, min_timestamp
两个辅助字段代表原始事件的起止时间。其差等于_duration
的值。
-
举例如query=”* |
transaction hostname maxopenevents=100 maxevents=2” |