logs.read,系统范围内则需要 sys.telemetry.read。
每个调用都接受带 JSON 请求体的 POST,或在查询字符串中带同样字段的 GET:filters 和 free_text 写成 JSON 列表的文本,where 写成 JSON 对象的文本。查询太长、放不进地址时请用 POST 发送。
调用匹配的记录
调用匹配窗口内同时满足以下各项的记录:
过滤条件是带
field、op、value 和 quoted 的对象,字段名使用数据流中的字段名。
eq、ne 和 like 分别是 =、!= 和 contains 的别名。值写在引号中时 quoted 为 true:表示一个词,而不是数字。这里不能过滤 JSON 字段,请改用 SQL 查询。
expression 接收日志页的文本:比较、MATCH(field, 'text') 和 MATCH_TEXT(field, 'words')、要查找的词、引号中的短语、不区分大小写的 AND 和 OR(AND 优先),以及括号。服务端把它读成页面会发送的 filters、free_text 和 where,再按上文校验。文本最长 8 KiB,括号最多嵌套 32 层。读不懂的部分(例如未闭合的括号,或比较的值为空)返回 400,并指出该部分。
列出记录
_timestamp 以微秒为单位。带着 cursor 却更换了数据流、窗口、limit 或匹配条件的请求返回 400。
按时间统计记录数量
一个请求从
origin_micros 到 to 最多覆盖 512 个时间桶。
buckets 只列出含有记录的时间桶,按时间从早到晚。errors 统计级别为 ERROR 的记录,级别取自 level 或 body_level。数据流没有这两个字段,或级别对读取者被遮掩时,split 为 false,errors 为 0。统计无法完成时,调用仍返回 200,buckets 为空,并带上 unavailable:time_budget、busy 或 scan_limit,含义与链路统计相同。
描述字段
kind 为 number、time、text 或 bool。total 是匹配的记录数,present 是其中有该字段值的记录数。top 按从多到少列出最常见的取值;几乎每个值都不相同时 top_skipped 为 true,不列出取值。range 以文本给出最小值和最大值。数字字段还会给出 spread 和 bars。trend 统计最常见取值随时间的变化,没有哪个值明显更常见时不出现。