Skip to content

docs(api-reference): daily api-review 2026-10-29 — drop license release_limited, add rum cumulative, monit absent_counts_as_normal - #1150

Open
flashduty[bot] wants to merge 1 commit into
mainfrom
api-review/2026-10-29T080906Z
Open

flashduty[bot] wants to merge 1 commit into
mainfrom
api-review/2026-10-29T080906Z

Conversation

@flashduty

@flashduty flashduty Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

窗口

  • 审计窗口 2026-10-28T08:12:38Z → 2026-10-29T08:03Z:起点取上一轮运行时间(不是 docs 基线提交时刻,避免「上一轮运行 → docs 基线」的盲区)。
  • docs 基线 20f74d2a(2026-10-29T06:59:32Z)。
  • 11 个仓(flashduty-docs + fc-pgy / fc-event / fc-oncall / fc-rum / fc-statuspage / monit-webapi / fc-datasource / go-pkg / fc-safari / monit-edge)全部 fetch 后按各自 origin/main 读取。
  • 窗口内提交数:fc-rum 16、fc-event 8、fc-safari 8、monit-edge 6、monit-webapi 5、fc-pgy 4;fc-oncall / fc-statuspage / fc-datasource / go-pkg 为 0。
  • 每个提交(含 merge)取 git diff <commit>^1 <commit>,扫 json:" / binding: 标签增删,再过公开面过滤(Auth == all、非 /event/push/、模块未 hidden)。另对每个仓做了「窗口起点第一父 → main」的净 diff 复核。

updated(3 处漂移,8 个文件 +44/−36)

模块 接口 变化 Go 证据
On-call POST /oncall/license/list 删除 响应字段 release_limited(properties、required、200 示例三处) fc-event 07d9d2c2(PR #3408 «chore(license): remove the per-window license release quota»)把 cmd/server/controller/license/info.go 里三处 "release_limited" 全部删掉,structs.LicenseReleaseLimitedCount 与 structs.ReasonReleaseLimited 一并移除;该字段在窗口起点(b06cdc0b)仍返回三处,故属「源码已撤、文档未跟上」的回退
RUM POST /rum/data/query 新增 查询字段 cumulative fc-rum 0940fa4 / ccd84d8(PR #415):cmd/server/controller/data/types.go 的 query 新增 Cumulative bool json:"cumulative",Validate() 强制 format=time_series、单一 COUNT/SUM 带别名、禁 SELECT DISTINCT/GROUP BY/HAVING/LIMIT(.qInput.Validate 返回即整请求 InvalidParameter),COUNT(DISTINCT x) 按首次出现桶计一次,并强制 DisableSampling
RUM POST /rum/data/query 更新 disable_sampling 描述:新增 exact 查询槽位与 BadRequest 失败模式的说明 fc-rum 2420751(PR #412)logic/dataquery/limiter.go 新增 exactPool/AcquireExact、errExactQueued;cache.go#runQuery 用 exact := q.DisableSampling && wouldSample(...) 取槽;dataquery.ClientError 把排队超时映射为 srv.ErrBadRequest("Too many exact queries are running for this account."),落在该查询自己的 error 条目上
Monitors POST /monit/rule/v2/{create,update,info} 新增 阈值字段 absent_counts_as_normal monit-webapi 751fa80(PR #185):types/alert_rule_config_v2.go#AlertRuleThresholdV2 与 types/alertrulev2/contract.go#ThresholdConfig 新增该字段,frontend_adapter.go 双向透传;contract.go#ThresholdConfig.Validate 只允许 condition_clear / expression_match;pkg/edgecompat/catalog.go 要求 monit-edge ≥ v0.77.0,alertRuleQueryReferenceEdgeGate 不满足时以 InvalidParameter 拒绝保存

added 0 / removed 0 个 operation:5 个 split 与 consolidated 的 paths 计数不变(on-call 215 / monitors 46 / platform 28 / rum 50 / safari 53,consolidated 392),因此 未动 docs.json 与两份 api-catalog.mdx(含 API 裸路径 redirects)。

unresolved

  • POST /channel/incident/daily-counts:注册表有该行,handler 只在 fc-event 的 origin/dev(不在 origin/main),与 2026-10-12 起历次结论一致,未写入任何 spec。
  • 注册表公开行 393 条与 5 个 split 的 paths 求差集,除上条外无差异(IN DOCS, NOT IN REGISTRY 为空)。

示例

  • 本轮无新增 operation,未新增或重写任何 request / 200 示例;唯一的示例改动是从 /oncall/license/list 的 200 示例 data 中删掉 release_limited。
  • 本环境取不到 dev API 凭据,故本轮没有录制真实响应;也没有需要按 schema 新构造的示例。

不改项与依据

  1. DutyError.reason(consolidated 独有,带 x-flashduty-preserve-absence: true)与 safari split 的 2 处 components.responses(BadRequest 示例带 skill_id、Forbidden 示例键为 accessDenied 而 consolidated 为 noEditPermission)为既有手改约定,按 split/consolidated 深比较(忽略键序)复核后仍是这两类,未动。
  2. monit-webapi LifecycleEvent.recovery_reason 与 RelatedResult.error 属 Edge↔中心内部 lifecycle 契约,未出现在任何公开 spec;types.CheckThreshold.absent_counts_as_normal(legacy v1 结构)经查无公开 operation 可达(RuleConfigs 在 monitors spec 中无任何 $ref),故只改 v2 的 AlertRuleThresholdV2。
  3. fc-event feat(ai-sre): unify IM target configuration(bcf3c3e1,47 文件)全部落在 logic/ai_sre/*、IM notify 控制器与 migration/channelconfig,属 IM 运行时配置,不触公开面。
  4. fc-pgy 窗口内 4 个提交只在 logic/charge/* 催缴提醒与 structs/i18n.go,非公开 API。
  5. fc-safari:benchmark V1 control API 移除与 benchmark V2(cmd/api/benchmark*、types/benchmark*.go)在 pgy 注册表中没有任何行(grep benchmark = 0 行);/safari/onboarding/* 与 /onboarding/* 全部 auth=jwt;types/ref.go 新增的 RefKindRumIssue 未在任何 spec 中枚举化。均不改。
  6. monit-webapi feat(alert-rule): deliver related query failures as an On-call label(509c61f)改的是告警事件 label 投递,非公开 API。
  7. /rum/data/query 的 x-mint.content 本轮未改:已有 open PR docs(api-reference): daily api-review 2026-10-28 — RUM DQL parse errors are InvalidParameter #1144 正在改同一物理行(DQL 解析错误码 InternalError → InvalidParameter),双方若都改该单行 JSON 字符串必然文本冲突;因此 cumulative 与 exact 槽位的说明放在 schema 属性描述里,等 docs(api-reference): daily api-review 2026-10-28 — RUM DQL parse errors are InvalidParameter #1144 合入后再考虑进 Usage 列表。

本轮变更牵动的 api-reference 之外的文档面(未修,建议另开一轮跟进)

源码侧 PR #3408 撤掉的不只是响应字段,而是整个「License 释放配额」机制(git grep 'ReleaseLicenses\|LicenseReleaseLimited\|license_release' origin/main 已 0 命中,logic/resource/usage.go 删掉了 keyLicenseReleaseByWindow 与 cacheReleaseLicenses 脚本,structs/metric.go 删掉 LicenseReleaseLimitedCount)。因此下列非 api-reference 页面也已过期,本轮按 api-review 的 surface 边界未动:

  • en/developer/cli.mdx:504、zh/developer/cli.mdx:504(release_limited 字段说明)
  • en/developer/cli.mdx:963、zh/developer/cli.mdx:952(把 release_limited 当作「列表响应额外字段」的示例)
  • en/platform/team-members.mdx:129、zh/platform/team-members.mdx:127 与 :130(删除成员不受释放配额约束的说明)
  • en/platform/pricing.mdx:146、zh/platform/pricing.mdx:352(每个计费周期释放次数上限)

已知窗口外遗留(未修,供人裁决)

  • RumDataQueryDefinition 缺 disable_cache:fc-rum 4e883e9(2026-10-26T04:41Z)已在 cmd/server/controller/data/types.go 给 query 加了该字段(JSON 名 disable_cache),2026-10-26 那轮未跟上,属窗口外历史遗留。

校验

  • 13 个 api-reference/*.json 全部 json.load 通过(12 个 spec + openapi.legacy.zh.json)。
  • python3 scripts/lint_openapi.py → OK: 12 spec files, no violations,exit 0。
  • python3 scripts/api_path_redirects.py --check → exit 0。
  • 未跑 mint broken-links:本环境未安装 mint,且本轮只改既有路径的 schema 与示例,不产生新链接。

…se_limited, add rum cumulative, monit absent_counts_as_normal

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants