You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by wa...@apache.org on 2026/03/21 17:15:04 UTC

(incubator-devlake) branch feat/q-dev-logging-enrich-dashboards created (now 7752a6b5f)

This is an automated email from the ASF dual-hosted git repository.

warren pushed a change to branch feat/q-dev-logging-enrich-dashboards
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


      at 7752a6b5f docs: add AI-era productivity analysis assessment and implementation plan

This branch includes the following new commits:

     new 7752a6b5f docs: add AI-era productivity analysis assessment and implementation plan

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(incubator-devlake) 01/01: docs: add AI-era productivity analysis assessment and implementation plan

Posted by wa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

warren pushed a commit to branch feat/q-dev-logging-enrich-dashboards
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit 7752a6b5f27bc1b34580a5658c82b0e1fa06f278
Author: warren <wa...@gmail.com>
AuthorDate: Sun Mar 22 01:14:46 2026 +0800

    docs: add AI-era productivity analysis assessment and implementation plan
---
 logs/ai-era-productivity-analysis.md | 146 +++++++++++++++++++++++++++++++++++
 logs/ai-era-productivity-plan.md     | 140 +++++++++++++++++++++++++++++++++
 2 files changed, 286 insertions(+)

diff --git a/logs/ai-era-productivity-analysis.md b/logs/ai-era-productivity-analysis.md
new file mode 100644
index 000000000..58d18868f
--- /dev/null
+++ b/logs/ai-era-productivity-analysis.md
@@ -0,0 +1,146 @@
+# AI 时代效能分析 — 现状评估与优化方向
+
+日期: 2026-03-20
+
+## 一、现有数据资产全景
+
+### Kiro (Q-Dev) 插件
+| 表名 | 数据内容 | 粒度 |
+|---|---|---|
+| `_tool_q_dev_user_report` | credits, messages, conversations, subscription tier, overage | 每天/每用户/每 client_type |
+| `_tool_q_dev_user_data` | 旧格式 43 个 feature-level 指标 (inline, chat, code fix, code review, dev, doc gen, test gen, transformation) | 每天/每用户 |
+| `_tool_q_dev_chat_log` | 逐条 chat 交互 (prompt/response 长度, model, conversation, steering, spec mode, code refs, web links) | 秒级/每请求 |
+| `_tool_q_dev_completion_log` | 逐条 inline completion (file, context length, completions count) | 秒级/每请求 |
+
+### GitHub Copilot 插件
+| 表名 | 数据内容 | 粒度 |
+|---|---|---|
+| `_tool_copilot_enterprise_daily_metrics` | DAU/WAU/MAU, code gen/acceptance activity, LOC suggested/added, PR created/reviewed by Copilot | 每天/企业级 |
+| `_tool_copilot_user_daily_metrics` | user_login, code gen/acceptance activity | 每天/每用户 |
+| `_tool_copilot_metrics_by_ide` | 按 IDE 分的使用量 | 每天 |
+| `_tool_copilot_metrics_by_feature` | 按功能 (chat_panel, inline_chat 等) 分 | 每天 |
+| `_tool_copilot_metrics_by_language_feature` | 按编程语言+功能分 | 每天 |
+| `_tool_copilot_seats` | license 分配和最后活跃时间 | 快照 |
+
+### 传统 DevOps 数据 (Domain Layer)
+| 数据域 | 表数 | 关键表 |
+|---|---|---|
+| Code | 11 | repos, commits, commit_files, pull_requests, refs |
+| DevOps/CICD | 8 | cicd_pipelines, cicd_deployments, cicd_deployment_commits |
+| Tickets | 18 | issues, boards, sprints |
+| Code Quality | 5 | cq_projects, cq_issues, cq_file_metrics |
+| QA | 4 | qa_test_cases, qa_test_case_executions |
+| Cross-domain | 18 | users, accounts, project_pr_metrics |
+
+### 已有 Dashboard (50+)
+- DORA 系列 (5 个): 四指标 + 明细
+- Copilot 系列 (2 个): Adoption + DORA Correlation
+- Kiro 系列 (4 个): Usage, Legacy Feature, Logging, Executive
+- 传统 DevOps: GitHub, GitLab, Jira, Jenkins, SonarQube 等
+
+---
+
+## 二、现有能力 vs AI 时代效能分析的差距
+
+### 已经有的
+- Kiro 使用数据 (credits, messages, feature-level metrics, prompt logs)
+- GitHub Copilot 采纳数据 (seats, acceptance rates, LOC)
+- Copilot + DORA 关联分析 (已有 dashboard, 含 Pearson's r 相关系数)
+- 传统 DevOps 指标 (commits, PRs, DORA 四指标, SonarQube)
+
+### 关键缺失:AI 对结果的影响闭环
+
+目前所有 AI 指标都是"输入侧"的 — 用了多少、接受了多少。但缺乏"输出侧"的闭环:
+
+| 维度 | 现状 | 缺失 |
+|---|---|---|
+| AI 代码命运追踪 | 知道 acceptance rate | 不知道接受后是否被 revert、是否引入 bug |
+| AI 对代码质量的影响 | 有 SonarQube 数据 | 没有 AI 使用量 vs code smell 的关联 |
+| AI 对效率的因果关系 | Copilot+DORA 有相关性(r值) | Kiro 没有同等的 DORA 关联 |
+| 多 AI 工具统一视图 | Copilot 和 Kiro 各自独立 | 无法对比/汇总跨工具的 AI 总效能 |
+| AI ROI (成本效益) | 有 credits_used | 没有 credits per PR merged / per deployment |
+| 用户身份统一 | 各插件独立 user_id | Kiro userId -> git author -> Copilot userLogin 无法打通 |
+
+---
+
+## 三、优化方向 (按优先级)
+
+### P0 — 短期可做 (利用现有数据,无需新数据源)
+
+#### 1. Kiro + DORA 关联 Dashboard
+- 类似已有的 Copilot+DORA correlation dashboard
+- 将 Kiro credits/messages 与 PR cycle time 关联
+- 按周聚合,计算 Pearson's r 相关系数
+- 分桶对比:AI 重度使用周 vs 轻度使用周的 DORA 表现
+- 数据来源: `_tool_q_dev_user_report` + `project_pr_metrics`
+
+#### 2. AI 成本效益 Dashboard
+- Credits per PR merged
+- Credits per deployment
+- Credits per accepted line of code (已有)
+- Credits per issue resolved
+- 趋势:成本效益是否随时间改善
+- 数据来源: `_tool_q_dev_user_report` + `pull_requests` + `cicd_deployments` + `issues`
+
+#### 3. 多 AI 工具对比 Dashboard
+- Copilot vs Kiro 并排对比
+- 统一指标: adoption rate, acceptance rate, LOC generated, active users
+- 趋势对比: 两个工具的采纳曲线
+- 数据来源: `_tool_copilot_enterprise_daily_metrics` + `_tool_q_dev_user_report`
+
+### P1 — 中期 (需要新的数据打通)
+
+#### 4. AI Code Quality 闭环
+- SonarQube findings 按 "AI 重度用户 vs 轻度用户" 分组
+- AI 辅助 code review vs 人工 review 的 finding 数量对比
+- 需要打通: AI 使用量 -> commit author -> SonarQube findings
+- 数据来源: `_tool_q_dev_user_data` + `commits` + `cq_issues`
+
+#### 5. 用户身份统一层
+- 建立 Kiro userId -> domain users -> Copilot userLogin 的映射
+- 可以通过 email 或 display name 做 fuzzy matching
+- 一旦打通,所有 AI 指标都可以跟 git/PR/issue 指标关联
+- 实现方式: 新的 cross-domain 映射表或扩展现有 user_accounts 表
+
+### P2 — 长期 (需要新数据源或复杂分析)
+
+#### 6. AI 代码存活率
+- 追踪 AI 生成代码从接受到被修改/删除的时间
+- 需要: commit diff 分析 + AI acceptance 时间戳关联
+- 指标: AI 代码平均存活天数, AI 代码 revert 率
+
+#### 7. AI 辅助 Code Review 效能
+- 衡量 AI 对 review 速度和质量的影响
+- 有 AI review (Kiro code review) vs 纯人工 review 的对比
+- 指标: review time, comments count, approval rate, rework rate
+
+#### 8. Developer Flow 与 AI 的关系
+- 分析开发者何时使用 AI (时段、任务类型)
+- AI 使用的上下文切换频率
+- AI prompt 复杂度随时间的演变 (学习曲线)
+- 数据来源: `_tool_q_dev_chat_log` (已有 timestamp, prompt_length, model_id)
+
+---
+
+## 四、可连接的数据节点
+
+```
+Kiro user_id ──────┐
+                    ├──> domain users.id ──> commits.author_id ──> PR, Issues, DORA
+Copilot user_login ─┘                   ──> cq_issues (SonarQube)
+                                         ──> cicd_deployments
+                                         ──> qa_test_case_executions
+
+_tool_q_dev_user_report.date ──> project_pr_metrics (weekly join for DORA correlation)
+_tool_q_dev_chat_log.timestamp ──> commits.created_date (intra-day correlation)
+_tool_copilot_enterprise_daily_metrics.day ──> project_pr_metrics (already done in copilot_impact)
+```
+
+---
+
+## 五、技术实现建议
+
+1. P0 的三个 dashboard 可以纯 Grafana SQL 实现,无需后端改动
+2. P1 的用户身份统一需要一个新的 convertor subtask 或者 domain layer 扩展
+3. P2 的代码存活率需要 git diff 分析能力 (git extractor 已有 commit_files 数据)
+4. 建议先做 P0 中的 "Kiro + DORA 关联",因为已有 Copilot+DORA 的模板可以参考
diff --git a/logs/ai-era-productivity-plan.md b/logs/ai-era-productivity-plan.md
new file mode 100644
index 000000000..1e897aec4
--- /dev/null
+++ b/logs/ai-era-productivity-plan.md
@@ -0,0 +1,140 @@
+# Plan: AI 时代效能分析增强
+
+## Context
+
+DevLake 已有 Kiro (Q-Dev) 和 GitHub Copilot 两套 AI 工具的数据采集,也有 Copilot+DORA 的关联分析 dashboard。但存在三个关键缺口:
+1. Kiro 的新格式数据(credits/messages)没有和 DORA 关联
+2. 没有跨 AI 工具的统一对比视图
+3. 没有 AI 成本效益指标(credits per PR/deployment)
+
+本计划分三个阶段实现,P0 纯 Grafana dashboard 不改后端。
+
+## Phase 1 (P0): 三个新 Grafana Dashboard — 无后端改动
+
+### Dashboard A: `grafana/dashboards/KiroCreditsDORA.json`
+**Kiro Credits + DORA Correlation**
+
+复用 `GithubCopilotDORACorrelation.json` 的模式(周级聚合 JOIN + Pearson's r)。
+
+关键面板:
+- Weekly Credits vs PR Cycle Time(双轴时序图)
+- Pearson's r 相关系数(stat panel)
+- High AI Usage vs Low AI Usage 周的 cycle time 对比
+- Credits vs Deployment Frequency / CFR / MTTR
+
+数据源:`_tool_q_dev_user_report`(周聚合 credits)JOIN `project_pr_metrics`(周聚合 cycle time)on `week_start`
+
+模板变量:`project` (from `project_pr_metrics`)
+
+### Dashboard B: `grafana/dashboards/AICostEfficiency.json`
+**AI Cost-Efficiency**
+
+关键面板:
+- Credits per Merged PR(周趋势)
+- Credits per Deployment(周趋势)
+- Credits per Issue Resolved(周趋势)
+- Summary Stats(总计 credits, credits/PR, credits/deploy)
+
+数据源:`_tool_q_dev_user_report` 周聚合 LEFT JOIN `pull_requests` / `cicd_deployment_commits` / `issues` 周聚合 on `week_start`
+
+### Dashboard C: `grafana/dashboards/MultiAIComparison.json`
+**Multi-AI Tool Comparison (Copilot vs Kiro)**
+
+关键面板:
+- Active Users 并排对比(周趋势)
+- Code Generation Activity 对比
+- LOC Accepted 对比
+- Acceptance Rate 对比(柱状图/表格)
+
+数据源:`_tool_q_dev_user_report` + `_tool_q_dev_user_data` vs `_tool_copilot_enterprise_daily_metrics`
+
+模板变量:`project`, `connection_id`/`scope_id`(Copilot 侧)
+
+## Phase 2 (P1): 用户身份映射 — 需要后端改动
+
+### 核心问题:Kiro userId 如何绑定 PR author
+
+**Kiro 侧数据:**
+- `user_id`: AWS Identity Store UUID(如 `6478a4a8-60a1-70d9-37bc-6aae85f6746a`)
+- `display_name`: 通过 AWS Identity Store API 解析的名字(如 `Yingchu Chen`)
+
+**PR 侧数据:**
+- `author_name`: git 提交者名字(如 `Yingchu Chen`)
+- `author_id`: 平台格式(如 `github:GithubAccount:1:12345`)
+
+**可行方案:**
+
+| 方案 | 做法 | 优点 | 缺点 |
+|---|---|---|---|
+| A: DisplayName 匹配 | Kiro display_name == PR author_name | 简单 | 名字可能不一致,多人同名 |
+| B: 手动配置映射 | 在 connection/scope config 里让用户配置映射 | 精确 | 需要手动维护 |
+| C: AWS SSO → 邮箱 | 扩展 Identity Client 获取用户邮箱,匹配 git commit 邮箱 | 自动且精确 | 需要额外 AWS API 权限 |
+| D: 聚合级别(不绑定用户) | P0 已用的方式:按周聚合整个团队 | 零改动 | 无法做 per-developer 分析 |
+
+**推荐路线:D(P0 先上)→ B+C(P1 实现)**
+
+### 新模型
+- `backend/core/models/domainlayer/crossdomain/ai_tool_user_mapping.go` — 映射 Kiro userId/DisplayName ↔ git AuthorName ↔ Copilot UserLogin
+
+### 新 Migration
+- `backend/core/models/migrationscripts/20260321_add_ai_tool_user_mapping.go`
+
+### 新 Task
+- `backend/plugins/q_dev/tasks/identity_mapper.go` — 从 `_tool_q_dev_user_report.display_name` 匹配 `pull_requests.author_name`(精确 + 模糊)
+- `backend/plugins/gh-copilot/tasks/identity_mapper.go` — 类似逻辑
+
+### 新 Dashboard
+- `grafana/dashboards/KiroUserProductivity.json` — 基于映射表的 per-developer AI productivity vs PR metrics
+
+## Phase 3 (P2): AI + Code Quality 关联
+
+### 新 Dashboard
+- `grafana/dashboards/AICodeQuality.json`
+- AI Usage Intensity vs 新增 Code Issues(周趋势)
+- Per-Developer AI Usage vs Code Quality(需 P1 映射表)
+- AI Code "Survival Rate"(高 AI 使用周 vs 低使用周的 PR revert 率)
+
+数据源:`cq_issues`(有 `commit_author_email` 可作为 join key)
+
+## 关键参考文件
+
+| 用途 | 文件路径 |
+|---|---|
+| Copilot+DORA 模板 | `grafana/dashboards/GithubCopilotDORACorrelation.json` |
+| QDev+DORA 现有 | `grafana/dashboards/QDevDORA.json` |
+| Kiro credits 模型 | `backend/plugins/q_dev/models/user_report.go` |
+| PR metrics 模型 | `backend/core/models/domainlayer/crossdomain/project_pr_metric.go` |
+| 身份解析参考 | `backend/plugins/q_dev/tasks/identity_client.go` |
+| 用户映射表参考 | `backend/core/models/domainlayer/crossdomain/user_account.go` |
+
+## 实施顺序
+
+| Step | Phase | 产出 | 依赖 |
+|------|-------|------|------|
+| 1 | P0 | `KiroCreditsDORA.json` | 无 |
+| 2 | P0 | `AICostEfficiency.json` | 无 |
+| 3 | P0 | `MultiAIComparison.json` | Copilot + Kiro 数据 |
+| 4 | P1 | `ai_tool_user_mapping.go` 模型 + migration | 无 |
+| 5 | P1 | `q_dev/tasks/identity_mapper.go` | Step 4 |
+| 6 | P1 | `gh-copilot/tasks/identity_mapper.go` | Step 4 |
+| 7 | P1 | `KiroUserProductivity.json` | Steps 5-6 |
+| 8 | P2 | `AICodeQuality.json` | Steps 5-6 + SonarQube 数据 |
+
+Steps 1-3 可并行。
+
+## 验证方法
+
+### P0 验证
+1. Import dashboard JSON 到 Grafana
+2. 确认 `$project` 变量从 `project_pr_metrics` 正确加载
+3. 确认 Pearson's r 值在 [-1, 1] 范围且至少有 4 个数据点
+4. Playwright E2E 截图每个 dashboard
+
+### P1 验证
+1. 单元测试精确匹配和模糊匹配逻辑
+2. 集成测试:插入测试数据 → 运行 mapper → 验证映射表
+3. 验证 per-developer dashboard 数据正确
+
+### P2 验证
+1. 需要 SonarQube 数据在 `cq_issues` 中
+2. 验证 `commit_author_email` 与映射表匹配