跳转到主要内容
POST
执行探索查询

限制说明

使用说明

  • 需要数据源原生结果形态时使用本接口;/monit/query/data 返回稳定的 query_result.v1 契约。本接口根据 data.result.kind(frames、samples 或 logs)分发结果。
  • 数据源由 datasource_id 指定。数据源必须属于当前账户、已启用、已绑定 Edge 集群,且类型为 prometheus、elasticsearch、loki、clickhouse、mysql、oracle、postgres、sls、victorialogs 或 tencent_cls 之一。若数据源限制了可查询的团队,只有这些团队的成员、其管理团队以及账户所有者或管理员可以查询。
  • execution.kind 决定可接受的配套字段:instant 需要 to_ms(from_ms 可选),range 需要 from_ms、to_ms 和 max_data_points,window 需要 from_ms 和 to_ms。同时给出两个时间时,from_ms 必须小于 to_ms。不接受 step_seconds,步长由 max_data_points 与 min_step_seconds 推导。
  • args 为必填(无参数时传 {}),用于宏替换(例如 Grafana 风格变量),取值均为字符串。未知或重复的 JSON 键会被拒绝。
  • logs 结果最多返回 1,000 条(sls 为 100 条),并通过 applied_limit 与 has_more 说明截断情况。frames 结果最多 1,000 个 frame,表格行合计最多 1,000 行,值合计最多 100,000 个;samples 结果最多 1,000 条。请求体上限 256 KiB,成功响应整体上限 10 MiB。
  • 失败使用标准错误 envelope。error.reason 是稳定的机器可读取值;数据源 ID 不存在时返回 HTTP 400,错误码为 ResourceNotFound,且不带 reason。
  • WebAPI 跨实例转发与 Edge 执行合计可能耗时 35 秒,客户端超时建议至少 40 秒。

授权

app_key
string
query
必填

在 Flashduty 控制台 我的 → APP Key 中创建的 APP Key。可通过 query 参数 app_key 或请求头 Fd-App-Key 传入。实际可访问范围是该 APP Key 的权限范围与创建者当前角色权限的交集,请妥善保管。

请求体

application/json

探索查询请求。四个顶层字段均为必填,未知字段会被拒绝。

datasource_id
integer<int64>
必填

来自 /monit/datasource/list 的数据源 ID。必须是正的 JavaScript 安全整数,对应已认证账户下已启用、且调用方有权查询的数据源。

必填范围: 1 <= x <= 9007199254740991
expr
string
必填

使用数据源原生语言的查询表达式(PromQL、LogsQL、SQL 等)。非空 UTF-8,最大 64 KiB;mysql 最大 16 KiB,tencent_cls 最大 12 KiB。

Minimum string length: 1
args
object
必填

宏替换参数,按变量名索引,用于 Grafana 风格变量。键最长 256 字节,值最长 64 KiB,总预算 128 KiB。

execution
object
必填

查询的时间语义。可接受的配套字段取决于 kind:instant 使用 to_ms(可选 from_ms),range 需要 from_ms、to_ms 和 max_data_points,window 只使用 from_ms 与 to_ms。同时给出两个时间时,from_ms 必须小于 to_ms。HTTP 接口不接受 step_seconds。

响应

成功

成功响应结构。2xx 响应中 request_id 标识本次调用(同时出现在 Flashcat-Request-Id 响应头中),data 为接口业务 payload。失败响应使用不同结构,参见 ErrorResponse。

request_id
string
必填

本次请求的唯一 ID,也会在 Flashcat-Request-Id 响应头中返回。反馈问题时请一并附上。

示例:

"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"

data
object

探索查询结果载荷。