Skip to content

Fix Studio telemetry account ID resolution - #974

Merged
yaozheng-fang merged 2 commits into
volcengine:mainfrom
FirstayZheng:fix/studio-account-id-resolution
Aug 24, 2026
Merged

Fix Studio telemetry account ID resolution#974
yaozheng-fang merged 2 commits into
volcengine:mainfrom
FirstayZheng:fix/studio-account-id-resolution

Conversation

@FirstayZheng

@FirstayZheng FirstayZheng commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

背景

  1. 当前 Studio 的 TEA 上报中,部分 studio_session_started / studio_entry_viewed 事件能正常带上其他上下文,但 account_id 为空。结合排查结论,原因可能来自旧 Studio 自更新链路未补齐 account id,或部署 / 更新时 STS 解析失败后缺少可观测错误信息。
  2. 当前Studio上报部署agent事件时,记录的error信息不够清晰

变更

Studio account id 解析与诊断

  • 新增 veadk/cli/studio_account_id.py,统一封装 Studio account id 解析逻辑:优先复用环境变量,其次从 VeFaaS Function owner / role 推断,再尝试 STS,最后从固定 VEADK_STUDIO_TOS_BUCKET 命名中兜底解析。
  • 部署、更新、自更新链路都会尝试补齐 VEADK_STUDIO_ACCOUNT_ID;解析失败不会阻塞部署,会写入 VEADK_STUDIO_ACCOUNT_ID_RESOLUTION_ERROR
  • /web/ui-config 新增 accountIdResolutionError,前端 telemetry context 透传并在 studio_entry_viewedstudio_session_started 中上报 account_id_resolution_error
  • 补充测试覆盖 TOS bucket 兜底、更新 / 自更新补齐 account id、ui-config 字段透传、TEA allowlist 与事件 payload。

Studio agent deploy失败原因上报

  • 后端部署链路增强 CodePipeline 构建失败日志采集:扩大保留日志长度,构建失败终态会有限重试拉取最终日志快照,尽量拿到真正包含错误 marker 的日志尾部。
  • 新增部署阶段单调推进逻辑,避免 CodePipeline 日志事件把已经进入 Runtime 创建 / 发布阶段的部署回退成 build 阶段;同时补充 build / deploy / publish / update 等阶段 marker。
  • 从构建日志中提取更高信号的错误片段,并过滤 AK/SK、token、authorization、JWT 等敏感内容,降低埋点里只有镜像拉取进度、没有真实失败原因的概率。
  • 前端 telemetry 新增 safeTelemetryErrorMessage,只允许 studio_agent_deploy 携带脱敏和长度限制后的 error_message,其余事件仍只保留稳定的 error_kind / error_code / failed_phase
  • Studio Agent 部署 / 更新入口和飞书机器人部署入口接入 error_message 上报,用户取消部署也记录为脱敏后的 abort 错误摘要。
  • 更新 docs/studio-tea-telemetry.md,明确 studio_agent_deploy.error_message 的数据边界、构建日志来源、尾部保留和后端重试行为。
  • 补充 tests/cli/test_frontend_deploy_errors.pyfrontend/tests/teaTelemetry.test.mjsfrontend/tests/agentWorkspace.test.mjs 等覆盖部署错误日志、错误消息脱敏截断、事件 allowlist 与前端部署失败上报。

测试

  • .venv/bin/pre-commit run --all-files
  • .venv/bin/python -m pytest tests/cli/test_studio_account_id.py tests/cli/test_studio_telemetry.py tests/cli/test_frontend_runtime_proxy.py::test_ui_config_serves_studio_telemetry_config tests/frontend/server/test_studio_update_resources.py tests/cli/test_studio_update.py tests/cli/test_studio_deploy_target.py tests/cli/test_frontend_deploy_errors.py -q,结果:105 passed,4 warnings
  • npm --prefix frontend test -- tests/teaTelemetry.test.mjs tests/studioAccess.test.mjs,结果:763 passed
  • cd frontend && npx tsc --noEmit

@yaozheng-fang
yaozheng-fang merged commit cdc378a into volcengine:main Aug 24, 2026
9 checks passed
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.

2 participants