Skip to content

统一可观测性基建与 Web 观测工作区 #52

Open

Description

@xiaoland

统一可观测性基建与 Web 视图已合入 main。默认使用内置 PostgreSQL,选择外部 Loki 后统一从该后端采集与查询,失败不静默回退。Core 拥有记录、查询和资源机制,App 装配凭据与生命周期,Web 提供筛选、关联及错误恢复体验。OTLP 经过 Core 导出,保持可选协议出口。

2026-11-05,用户确认验收判断并授权合并。整组 16 份 PR 已按依赖顺序普通 squash 合入各仓 main,逐层重排并取得最终候选的正常云端门禁,没有绕过分支保护。Hub 先合并,Python、TypeScript 和 Registry 的共享引用均为已合并的 17fc19e。

本实施聊天没有运行本地 E2E。真实 PG/Loki、跨 Peer、浏览器退出后的持久事实及应用升级验收由用户指定的 InKCre Dogfood 聊天完成。

合并与证据

PR 合并提交
docs #51 6a34372
docs #53 30ff408
docs #56 3b3f4aa
docs #57 17fc19e
impl-py #175 4fa74bb
impl-py #178 fd2b92d
impl-py #181 7f56f7c
impl-ts #185 ca4cfd7
impl-ts #186 16b127d
impl-ts #188 4aaeb6d
impl-ts #189 a1f34f3

Hub 最终 main 17fc19e 与验收合同 5c5c254 整树一致。Python 最终 main 7f56f7c,TS 最终 main a1f34f3。最终检查分别见 Python、TypeScript。

正式 Dogfood 复验覆盖两起 Dogfood 故障的根因修复,包括早于数据库创建时间的真实诊断、成功提交后弹窗关闭、提交浏览器立即终止后的另一 Peer 读回,以及历史和长任务窗口。Job 行提供持久提交事实,诊断摘要只计实际收到的记录。

既有 Grafana Cloud Free 实例已纳入个人自部署,Loki 实际读写、重启读回及 OTLP Trace/日志/指标有对应证据。配置、查询、凭据轮换和恢复流程由 Dogfood 的 grafana-operations.md 管理。31 天查询宽度与实际后端保留期分别表达。

剩余交付

  • 产品合同、独立 SDK、Web、采集查询及生命周期实现。
  • 两起正式候选回归修复、独立审查及四组真实复验。
  • 按依赖合并、最终共享引用和正常云端门禁。
  • 指定 Dogfood 聊天已将个人自部署正式更新到 main,实际运行身份和冷重启读回已核对。
  • P2 后续,TS job.submit 基础操作摘要在创建获得 Job ID 后只更新可选 OTEL span,统一记录未获得该 ID,PG/Loki 按 Job 筛选会漏掉该摘要。job.submitted 已关联 Job,持久事实与本次两起故障的验收成立。后续应补齐同次基础摘要的元数据并覆盖 OTEL 开关、失败提交和诊断故障。

正式 main 自部署完成

2026-11-05,指定 Dogfood owner 已完成并回交。个人 Core 为 Heroku v29、一个 Eco web dyno,正式 impl-py 7f56f7c 产物加同一 main 的 ChatGPT 配方;日常 Web 为正式 Pages a1f34f3,CLI 为与 main 模块内容一致的 PyPI 0.3.0。Peer、原配置、七个扩展及数据恢复已对账,实际 MCP/InMy、Loki 冷重启后双入口读回与正式 Web 历史查询通过。旧候选和隔离服务已退出。

Core 与运行身份回执、Loki 与 Web 正式读回、日常组件与公开发行边界。

日常环境没有已安装的 Swift/WebExt。公开 Core SDK 0.4.3、WebExt 0.2.0、旧名 Runtime 0.4.2 和公共 Registry v15 保持各自发行节奏,源码合并及个人更新不能代替这些公开发行。Runtime/Registry 后续见 InKCre/ext-reg#70、InKCre/ext-reg#71。

Activity

  1. added theissue type on Nov 4, 2026
  2. moved this to Review / acceptance in InKCre Current Workon Nov 4, 2026
  3. xiaoland commented on Nov 5, 2026

    @xiaoland
    MemberAuthor

    统一观测 dogfood · 2026-11-05

    Python #181 4314c2f 与 Web #188 167a4b1 已运行在隔离部署及个人使用环境。Web 发起真实 Source 后能从作业进入持久内容。默认数据库模式下,成功/失败 Job 的 started、closed 和执行结果可从详情与全局工作区读回。实测 Job/Peer/Trace/operation 交集、时间窗、空结果、截断和断网错误后恢复。

    发现一项可复现的详情页缺项。个人邮件回填成功,全局按 Job 能看到 submitted/started/closed/execute 四条,详情只看到后三条。浏览器发出的 submitted 时间比数据库 created_at 早 82 ms,详情把后者作为查询下界。隔离修复已在同一浏览器用同一条 Job 复验:使用按 Job 过滤的有界时间窗,详情与全局均显示四条。修复在本地工作树,原 #188 仍复现。

    真实 Loki 3.5.0 与两个独立 Python App/Peer 已验证,同一后端上 A 完成作业、B 查询同一生命周期;重启后可按 ID 读回。断链明确 503,异步拒写计入 dropped,PG 中该 trace 数为零。

    已有 Grafana Cloud Free 栈实测可写入候选记录并通过独立 Viewer 读回相同 ID。原 OTLP token 的基础 Loki 查询权限返回 401,需要同一 stack 的 logs:read + logs:write 凭据。候选默认关掉外发原文。额外 OTLP、基础 Loki 与历史读取范围分别验证;个人部署切换前以独立 Viewer 进行了读回。公开证据省略私有数据、租户标识与凭据。

    个人部署已进一步验收额外 OTLP。启用原三信号后,真实成功 Job 的 Tempo 执行 Span Link 精确关联提交,独立 Viewer 读回 Loki 的 submitted/started/closed,并按同一运行实例读到 Prometheus 成功计数与耗时直方图计数各一。该次 Job 的基础 PostgreSQL 查询也返回四条观测。个人基础后端随后已切至 Cloud Loki。

    修复复验已结束。默认按 Job ID 查询,在生命周期两端各留一小时,控制在最近 31 天,可手动选择旧窗口。同一真实 Job 详情从三条恢复为四条。九项观测用例、类型检查与 Web 构建通过,浏览器重新验证失败 Job、空结果、断网与截断提示。本地补丁可应用于原候选,尚待上游纳入。

    个人 v28 在单一 Eco dyno 上使用原生 Cloud Loki。隔离的两个候选 Peer 已在同一 Cloud 租户跨 Peer 读写。个人 Core 重启后,Core API 和独立 Grafana Viewer 均按原 ID 读回重启前写入的记录。Web 发起一次已有 Mail Source 的有界回填,Job 正常完成。详情和全局工作区均显示 started、execute、closed,Core API 与独立 Viewer 的三个记录 ID 逐项相同。旧 PostgreSQL 中该 Job 为零行,上一次在 PostgreSQL 执行的 Job 仍有四行。该次浏览器端 submitted 未送达,单列为客户端验收发现。

    已在隔离浏览器复现提交事件缺失。带非空参数的回填创建成功后,原生弹窗关闭处理再次提示放弃编辑。立即关闭时能写入 submitted 和 job.submit,提示停留 14 秒则超时丢失。隔离修复只在成功后重置已提交的参数,随后两条观测都到达测试接收端。手动取消仍有确认,选择继续编辑会保留原参数。该改动和详情时间窗修复均为待上游纳入的本地补丁。云端真实 Job 以已采三条为准。

  4. xiaoland commented on Nov 5, 2026

    @xiaoland
    MemberAuthor

    正式修复候选的 dogfood 复验 · 2026-11-05

    impl-ts #189 f584867 搭配 共享契约 #57 5c5c254 和 impl-py #181 4314c2f。后台原生浏览器运行候选构建,对比 Web 详情、全局观测、持久 Job 行与后端实际返回记录。个人部署沿用原有 Cloud Loki,业务提交、进程终止及历史数据构造均在隔离环境处理。

    • 跨 Peer 时间差。 将原个人 Job 及四条 PostgreSQL 观测按原始时间与 ID 复制到隔离库。正式候选的详情和全局页均显示四条,包含早于数据库创建时间 82.008 ms 的 submitted。
    • 提交端退出。 独立数据库连接读到刚持久化的 pending Job,当即终止提交浏览器。测试探针尚未观察到该浏览器的成功响应。Python Peer 随后处理 20 条真实 Atom 条目,另一 Web Peer 可读“提交已保存”、finished 及创建、开始、结束时间。Core 和 Web 都读到 started、execute、closed 三条诊断。提交端的 submitted、job.submit 均为零,摘要随实存数量显示。
    • 历史窗口和刷新。 在隔离 PostgreSQL 构造旧终态和跨 46 天的 Job,用真实 PostgREST 验证查询。前后各留一小时的默认范围能覆盖两端各偏移 30 分钟的记录。长 Job 默认显示末段 31 天并提示分段。手动指定早、晚范围分别命中对应记录,超宽输入被拒,清空后恢复默认。运行中的 Job 进入终态后界面自动更新查询;终态后再插入的晚到记录在手动刷新后从两条增至三条。
    • 真实 Loki 历史。 只读桥接到运行中的个人 Core/PostgREST,Web Peer 自身注册使用隔离库。正式详情显示持久提交事实和 finished,详情与全局都只计实际 Loki 返回的 started、execute、closed 三条。原有业务采集未重跑。
    • 回填弹窗。 带非空参数的成功提交只发一次业务写入,自动关闭时确认框为零。手动取消、点击遮罩、焦点在对话框或取消按钮时按 Esc,均能选择保留草稿或确认丢弃。焦点在 JSON 编辑器时,Esc 留在编辑器内。表单没有独立的 × 按钮。提交失败时显示错误,保留输入与弹窗。

    四组复验通过。超过 31 天的场景使用带历史时间戳的隔离数据验证查询宽度;云端保留期沿用部署侧口径。独立登记的 job.submit 操作摘要缺少 Job ID 仍按其原跟踪处理。本次结论限定于 #189 的候选 SHA。

  5. xiaoland commented on Nov 5, 2026

    @xiaoland
    MemberAuthor

    正式 main 的真实部署读回 · 2026-11-05

    个人 Core v29(impl-py 7f56f7c)与日常 Pages(impl-ts a1f34f3)已采用正式 main。Core 向原 Grafana Cloud Loki 写入一条新诊断,重启现有 Eco web dyno 后,实例 ID 变化,release、Peer 和观测部署身份保持一致。新实例和独立 Grafana Viewer 都按原 ID 读回该记录,dropped 为零。

    重启后,正式 Web 入口通过只读连接读取同一历史 Job,详情显示持久提交事实和 finished,详情与全局列表均返回三个实际诊断。原 PostgreSQL Job 的四条历史记录(含早于数据库创建时刻的 submitted)在隔离副本中由该正式 Web 正确展示。个人侧业务提交为零。提交端退出和表单交互的证据可复用正式候选验收。

    使用只读就绪请求,通过独立 Tempo 关联了新实例的精确 trace 与父 span,在 Prometheus 也看到了同实例的成功操作计数及耗时样本。这个只读窗口内新产生的 OTLP 业务日志为零;三信号的业务关联沿用前轮实际成功 Job 证据,原生 Loki 和额外 OTLP 分别核对。仍待单独处理的 job.submit 操作摘要缺 Job ID 继续按原项跟踪。

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions