Skip to content
FunCoding

Search

Search docs, Skills and MCP

构建团队用量报表

按同一天的用户用量与团队关系关联,处理五席门槛和重复成员。

This page has not been translated into English yet. The original Chinese version is shown below.

Usage metrics API 不提供一个已经完整聚合的团队报表。原始团队分析需要下载每日 user-teams 与 per-user 用量,按日期和实体关联。若只需 UI 中的团队采用分组,Impact 看板已有对应映射。

下载对应日期

数据REST 入口
组织团队关系GET /orgs/{org}/copilot/metrics/reports/user-teams-1-day?day=YYYY-MM-DD
企业团队关系GET /enterprises/{enterprise}/copilot/metrics/reports/user-teams-1-day?day=YYYY-MM-DD
组织逐用户用量GET /orgs/{org}/copilot/metrics/reports/users-1-day?day=YYYY-MM-DD
企业逐用户用量GET /enterprises/{enterprise}/copilot/metrics/reports/users-1-day?day=YYYY-MM-DD

接口先返回 download_links 与 report_day,再从具有有效期限的签名链接下载 NDJSON;用户和团队行不是直接嵌在首次 REST 响应中。本来源未给统一链接有效秒数,不自行设定。

关联键

组织将 organization_user_teams_1_day 与 organization_users_1_day 按 (user_id, day, organization_id) 关联;企业将 enterprise_user_teams_1_day 与 users_1_day 按 (user_id, day, enterprise_id) 关联。

组织团队报告仅含组织 teams;企业报告包含 enterprise teams 和 business teams。必须同时匹配三个键,不能仅凭用户名关联不同日期。

关联后按 team_id 分组,slug 用于显示;事件量用 SUM,人数用 COUNT(DISTINCT user_id)。实体预聚合报告没有 user_id / team_id,不能通过同一方法拆出团队。

门槛与重复

当天少于 5 个已授予 Copilot 席位用户的团队不会出现在 user-teams 中。这个门槛是席位用户数,不是当天必须五人活跃;缺少团队行也不表示其成员没有用量。

同一用户属于多个团队时,会贡献到每个团队。例如 Alice 在前端与后端,Bob 只在前端;前端可合计两人的活动,后端包含 Alice 的活动。两队相加会重复 Alice。

因此,低于门槛会漏掉团队结果中的部分活动,多团队关系又会重复活动,团队总和不保证与实体总和相等或固定偏大/偏小。实体总数应直接使用用户或实体报告。

处理多日窗口

逐日下载,按当天成员关系与用量关联后,再汇总需要的窗口。不要拿一个日期的团队快照关联用户 28 天总量,否则会把期间所有活动错归到该日团队。

事件量可以跨天相加;活跃人数必须对整个窗口的用户 ID 去重,不能相加每日人数。团队在期间跨过五席门槛时,只有进入报告的日期会贡献团队统计。

Inner join 只保留当日有活动的匹配结果;若需要列出已进入 user-teams 但当日无活动的团队,可以从团队关系 left join,把缺少的活动计数处理为零。此方法仍不能补回被五席门槛排除的团队。

拆分维度

语言、IDE、功能、模型使用不同明细数组,应展开所需数组并汇总对应条目的计数。语言与 IDE 不在同一数组,不能做笛卡尔乘积冒充真实的语言×IDE 联合事件;官方说明需分别查询并在应用中组合。

第三方 agent 用 agent_id 聚合嵌套 job 数;逐用户数据没有该 agent 的 session_count,不能推导团队会话数。