Skip to main content

Показатели использования Copilot на уровне команд

Создайте метрики использования на уровне GitHub Copilot команды, объединив ежедневный отчет пользовательских команд с ежедневным отчётом по показателям использования на пользователя.

Кто может использовать эту функцию?

Владельцы предприятий, администраторы организаций, менеджеры по биллингу и люди с корпоративной кастомной ролью с разрешением «Просмотреть корпоративные Copilot метрики».

Copilot API метрик использования не публикуют единого предварительно агрегированного командного отчёта. Метрики на уровне команд строятся путём объединения отчёта пользовательских команд (в котором указаны членства каждого пользователя в команде за определённый день) с отчётом по метрикам использования на пользователя (который содержит активность Copilot каждого пользователя за этот день). Агрегирование объединённых строк даёт team_id метрики на уровне команды.

Один и тот же рецепт объединения поддерживает любой командный срез: по (team, day), за (team, day, language), каждый (team, day, IDE), над вращающимися окнами и так далее.

Доставка отчётов

Два отчёта, упомянутые в этом руководстве, скачиваются в два шага. Сначала позвоните в конечную точку REST на нужный вам день. Конечная точка возвращает подписанные URL с ограничением времени, с которых можно скачать файлы отчёта. Затем скачайте JSON-файлы, на которые указывают эти URL. Строки команды пользователей и для каждого пользователя находятся в этих JSON-файлах; они не возвращаются в строке конечной точкой REST.

ОтчетEndpoint
Пользовательские команды организации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": [
    "https://example.com/copilot-user-teams-report-1.json"
  ],
  "report_day": "2026-05-07"
}

Скачайте файл по каждому URL в окне истечения срока действия ссылки, чтобы получить строки для этого отчёта.

Полные схемы запросов и ответов, требования к аутентификации и связанные конечные точки см. Конечные точки REST API для метрик использования Copilot. Для обзора того, как определяются отдельные поля метрик использования, см. Данные, доступные в метриках использования Copilot.

В течение нескольких дней звоните на ежедневные конечные точки один раз в день и агрегируйте ежедневные результаты. См. ниже отчёты команд по строительству с скользящим окном .

Задействованные отчёты

Метрики на уровне команд формируются за счёт объединения двух семейств отчетов: отчёты пользовательских команд по членству в команде и отчёты по метрикам использования на пользователя для активности.

Отчёты пользовательских команд

В этих отчётах указаны членства каждого пользователя в команде за определённый день.

ОтчетОбъемКлючевые поля
organization_user_teams_1_dayЧленство в организационной команде на день. Включает только организационные команды.
user_id, , user_login``organization_id``day``team_id,slug
enterprise_user_teams_1_dayЧленство в команде Enterprise на сегодня. Включает как корпоративные, так и бизнес-команды.
user_id, , user_login``enterprise_id``day``team_id,slug

Пользователь, входящий в несколько команд в один день, появляется в нескольких строках — по одной строке на пару (user, team) .

Внимание

Команды с менее чем 5 сидящими Copilot пользователями исключаются из отчётов пользовательских команд.

Последствия:

  • Команда с менее чем 5 сидящими пользователями в определённый день не появится в отчёте команд пользователей этого дня, даже если у её членов есть Copilot активность. Активность всё ещё присутствует в отчёте по метрикам использования пользователя, но в результате join нет командной строки.
  • Команда, которая пересекает порог в течение нескольких дней, присутствует в одни дни и отсутствует в другие. Только дни, когда команда превысила этот порог, влияют на итоговые очки.
  • Если суммировать ряды команд вместе, чтобы сравнить с общей суммой предприятия или организации, сумма будет меньше, чем сумма сущности. Недостаток — это активность пользователей, которые принадлежат только командам ниже порога — у них нет рядки команд в результате присоединения, поэтому их активность не отображается ни в одном командном агрегате.

Отчёты по метрикам использования на пользователя

Эти отчёты содержат активность Copilot каждого пользователя за определённый день.

ОтчетОбъемКлючевые поля
organization_users_1_dayОдна строка с (user_id, day, organization_id)Copilot активностью пользователя в этой организации за день.
user_id, day, organization_id``enterprise_id, , счётчики активности, массивы разбоя
users_1_dayОдна строка с (user_id, day, enterprise_id) активностью пользователя Copilot в этом предприятии за день.
user_id, day, enterprise_id, счётчики активности, массивы разбоя

Полный список полей, доступных в этих отчетах, см. Данные, доступные в метриках использования Copilot.

Предупреждение

Не объединяйте текущие 28-дневные отчеты на пользователя (users_28_day, organization_users_28_day) с ежедневным отчетом команд пользователей. Отчёт пользовательских команд отражает членство в команде в один день, поэтому объединение 28 дней активности к однодневному снимку членства приписывает все 28 дней активности тем командам, к которым принадлежит пользователь в день присоединения. Это ошибочно приписывает активность неправильным командам, когда состав команд менялся в течение окна. Всегда объединяйте ежедневную активность с командами пользователей, а затем агрегируйте в нужное окно.

Отчёты на уровне сущности

Отчёты на уровне организации (enterprise_28_day, organization_28_day, enterprise_1_day``organization_1_day, ) — это заранее агрегированные итоги для всего предприятия или организации. Они не содержат user_id или team_id, и не могут быть объединены с отчётом пользовательских команд для создания разбивки по командам. Используйте их напрямую, когда вам нужны корпоративные или корпоративные итоги; Для итоговых показателей на уровне команды используйте присоединение Daily User-Teams + ежедневные метрики на пользователя, описанное ниже.

Пример

Этот минимальный сквозной пример даёт один день метрик организации и команды. JSON, показанный ниже для каждого входного отчёта, представляет собой образец строк, которые вы найдёте в файле, загруженном из одного из этих отчётов download_links (см. раздел «Получение отчётов » выше).

Два пользователя имеют Copilot активность на 07.05.2026 в 999организации:

  • Алиса (user_id=1001) принадлежит двум командам в тот день: frontend (team_id=42) и backend (team_id=43).
  • Боб (user_id=1002) принадлежит frontend только к (team_id=42)

Ввод: organization_user_teams_1_day

{"user_id": 1001, "user_login": "alice", "day": "2026-05-07", "organization_id": "999", "team_id": 42, "slug": "frontend"}
{"user_id": 1001, "user_login": "alice", "day": "2026-05-07", "organization_id": "999", "team_id": 43, "slug": "backend"}
{"user_id": 1002, "user_login": "bob",   "day": "2026-05-07", "organization_id": "999", "team_id": 42, "slug": "frontend"}

Алиса появляется дважды — по одному ряду в каждой команде, к которой она принадлежит.

Ввод: organization_users_1_day

{"user_id": 1001, "user_login": "alice", "day": "2026-05-07", "organization_id": "999", "enterprise_id": "13213",
 "user_initiated_interaction_count": 50, "code_generation_activity_count": 40, "code_acceptance_activity_count": 12,
 "loc_suggested_to_add_sum": 200, "loc_added_sum": 88, "used_chat": true,  "used_agent": true,  ...}
{"user_id": 1002, "user_login": "bob",   "day": "2026-05-07", "organization_id": "999", "enterprise_id": "13213",
 "user_initiated_interaction_count": 30, "code_generation_activity_count": 25, "code_acceptance_activity_count": 7,
 "loc_suggested_to_add_sum": 80,  "loc_added_sum": 24, "used_chat": true,  "used_agent": false, ...}

Один ряд на (user, day, organization). Итоги активности за день суммируются по всем поверхностям.

Объединённый и агрегированный результат

Соедините два отчёта внутрь (user_id, day, organization_id), затем группируем по team_id и агрегируем. Столбец active_users ниже — это агрегационный результат (COUNT(DISTINCT user_id)), а не поле в отчёте для каждого пользователя; оставшиеся числовые столбцы — это суммы соответствующих полей отчёта.

team_idслизнякactive_userscode_acceptance_activity_countloc_added_sum
42frontend219112
43серверная часть11288

Два ряда в день команды, по одному на команду. В ряде frontend собраны данные как Алисы, так и Боба. В backend ряду содержится только активность Алисы.

Деятельность Алисы способствует развитию обеих команд. 12 и 88 из её ряда засчитываются в frontend и снова в backend. Это соответствует замыслу метрик на уровне команд — каждая команда видит активность своих участников — но суммирование двух рядов команд в одну организацию даёт двойной подсчёт, Алиса. Для итоговых данных организации отправляйте organization_users_1_day запросы напрямую без присоединения пользовательских команд.

Как построить метрики на уровне команды

Для любого среза командного уровня действуют те же четыре шага.

  1. Выберите пару отчётов.

    • Для организационных команд сочетайте organization_user_teams_1_day с organization_users_1_day. Идентификатор общей сущности — organization_id.
    • Для корпоративных и бизнес-команд сочетайте enterprise_user_teams_1_day с users_1_day. Идентификатор общей сущности — enterprise_id.
  2. Внутреннее соединение двух отчётов о (user_id, day, entity_id). Все три ключа должны совпадать. Присоединение осуществляется по принципу «один к многим» на стороне команды — пользователь в нескольких командах совпадает с несколькими рядами пользовательских команд.

  3. Фильтруйте по day До того дня, который ты захочешь. Оба отчёта имеют одинаковую day ценность.

  4. Группа по team_idslug для отображённого имени команды) и агрегат. Использование:

    • COUNT(DISTINCT user_id) для различных пользователей, таких как активные пользователи.
    • SUM(...) для счетчиков объёмов, таких code_generation_activity_countкак , loc_added_sum, и user_initiated_interaction_count.

Соединение является внутренним объединением: команда появляется в результате за определённый день только если хотя бы один из её участников был активен в тот день. Чтобы указать команды, у которых не было активности в день, используйте left-join из отчета пользовательских команд и считайте нулевые счётчики нулем.

Монтаж по языку, IDE, функциям или модели

Разбивки по измерениям находятся в полях массива на каждой строке пользователя (totals_by_ide, totals_by_language_feature, totals_by_language_model, totals_by_model_feature). Чтобы сгруппировать по измерению, разверните соответствующий массив в составе объединения, добавьте столбцы размерности в группировку и агрегируйте счётчики по элементам, охватённые по этому измерению. language и ide находятся в отдельных массивах, поэтому кросс-вкладка на уровне (language × ide) команды принимает два запроса, объединённых в вашем приложении.

Отчёты команды с скользящим окном

Для создания отчёта команды с скользящим окном (например, 28-дневного сводного отчета):

  1. Звоните на ежедневные конечные точки каждого дня в окне.
  2. Присоединяйтесь к отчёту по метрикам использования пользователя за каждый день (organization_users_1_day или users_1_day) с отчётом команд пользователей того же дняorganization_user_teams_1_day (или enterprise_user_teams_1_day) на (user_id, day, entity_id).
  3. Отфильтруйте day к окну и выбросьте day из группировки.

Счётчики объёмов добавляются по дням; Подведите итоги над окном. Количество отдельных пользователей должно оцениваться по COUNT(DISTINCT user_id) объединённым строкам полного окна — их нельзя суммировать по дневным подсчётам.

Ежедневное присоединение — это то, что гарантирует, что активность каждого дня приписывается командам, в которых был пользователь в тот день. Без него изменения в составе команды в окне тихо ошибочно приписывают активность неправильным командам.

Ограничения и оговорки

  • Пользователи нескольких команд вносят вклад в каждую команду, к которой они принадлежат. Будьте осторожны при объединении рядов команд обратно в организационный или корпоративный итог — многокомандные пользователи будут считаться более одного раза. Используйте отчёт для пользователя напрямую (без присоединения пользовательских команд) для итогов организации или предприятия.
  • Команды с подпороговым уровнем отсутствуют в отчёте пользовательских команд. Команды с менее чем 5 сидящими Copilot пользователями в определённый день исключаются, поэтому их активность не отображается в результатах на уровне команды, даже если активность остаётся в отчёте для каждого пользователя.
  • Разные числа пользователей нельзя суммировать по дням. При сводке в течение многодневного окна оценивайте COUNT(DISTINCT user_id) по объединённым строкам за всё окно, а не суммируйте ежедневные счёты.
  • Отслеживается ещё больше поверхностей объектов. Счетчики объёмов (code_generation_activity_count, code_acceptance_activity_countи loc_* счётчики) агрегируют активность по нескольким Copilot поверхностям — встроенные IDE-завершения, действия в чат-панели и (для считателей принятых строк) агент Copilot редактирования. Для подробностей покрытия поверхности по стойке см. Данные, доступные в метриках использования Copilot. Если вы ранее использовали похожие метрики с поверхности, которая учитывала только встроенные IDE-завершения, ожидайте более высокие значения в этих счётчиках и пересмотре базы, а не дифференциации по отрезу.
  • Воспользуйтесь новыми измерениями. Для каждой строки пользователя доступны разбивки по IDE, по функциям, по(language, feature)``(language, model) параметрам и по(model, feature) пользователям, что позволяет отчёты на уровне команд, которые ранее не поддерживали поверхности метрик команды.

Дальнейшие действия