查询数据源原始行
已弃用。执行同步即席查询并返回历史扁平 rows 结构。现有调用方应迁移到 /monit/query/data;新接口会保留 frames、records 和 samples 的自然语义,不再把所有结果强制压成 legacy rows。
已弃用
所有新集成请使用POST /monit/query/data。本接口仅在现有前端和 AI SRE 调用方迁移期间保留。
调用限制
使用说明
- 请求通过 WebSocket 转发至
monit-edge;ds_type+ds_name指定的数据源必须已存在于调用账户下。 - 请求体中的
account_id可选。若传入,必须与认证账户一致;不一致将被拒绝。 - 参数校验失败使用标准错误 envelope。当
monit-edge拒绝查询时,其{"error": {"code": ..., "message": ...}}响应体会被保留,HTTP 状态码与 Edge 错误码一致;错误码无效或缺失时返回 HTTP 500。请同时检查状态码和错误响应体。 - monit-edge 强制行数上限;结果过多时返回
error.message = "too many rows"。请缩小时间范围或在数据源侧聚合。 args是透传的多态string→string映射,语义取决于ds_type(SLS 需要sls.project+sls.logstore;Loki/VictoriaLogs 原始模式需要通过*.start/*.end或*.timespan.value/*.timespan.unit指定时间范围;Prometheus 和 SQL 数据源忽略该字段)。各数据源完整参数列表见 monit-webapi query-api 文档。
授权
在 Flashduty 控制台 账户 → APP Key 中签发的 app_key。调用任何公开 API 时都必须携带。它等同于所属账户的身份凭证,请妥善保管。
请求体
数据源类型;必须匹配租户下已配置的数据源。示例:prometheus、loki、victorialogs、sls、elasticsearch、mysql、postgres、oracle、clickhouse。
数据源名称;必须匹配租户下已配置的数据源。
查询表达式。语法取决于 ds_type,由对应的 monit-edge 客户端解释(Prometheus 用 PromQL,Loki 用 LogQL,SQL 类数据源用 SQL,等等)。
可选的一致性校验。若提供,必须等于已认证账户;不一致将被拒绝。业务执行始终使用已认证账户。
应用于点查询(Prometheus、Loki stats、VictoriaLogs stats)的回看偏移,单位秒。明细 / raw 查询忽略该字段。
透传给 monit-edge 的多态键值扩展参数。所有值必须是字符串,键一律按数据源加前缀(如 sls.project、loki.type)。校验规则取决于 ds_type:SLS 必须提供 sls.project 与 sls.logstore;Elasticsearch 的 es.type 只接受 sql 或不传,其他值一律拒绝;Loki 与 VictoriaLogs 的 <source>.type 接受 stats、raw 或不传,其中 raw 还必须给出时间范围——<source>.start + <source>.end,或 <source>.timespan.value + <source>.timespan.unit(单位取 s/m/h/d)。Prometheus 及其余 SQL 类数据源完全忽略 args。
响应
成功
成功响应结构。2xx 响应中 request_id 标识本次调用(同时出现在 Flashcat-Request-Id 响应头中),data 为接口业务 payload。失败响应使用不同结构,参见 ErrorResponse。