Skip to main content

Métriques d’utilisation Copilot au niveau de l’équipe

Créez des métriques d’utilisation au niveau GitHub Copilot de l’équipe en joignant le rapport quotidien des équipes utilisateur au rapport quotidien des métriques d’utilisation par utilisateur.

Qui peut utiliser cette fonctionnalité ?

Propriétaires d’entreprise, administrateurs d’organisation, responsables de facturation et personnes disposant d’un rôle personnalisé d’entreprise avec l’autorisation « Afficher les métriques d’entreprise Copilot ».

Les Copilot API de métriques d’utilisation ne publient pas de rapport d’équipe pré-agrégé unique. Les métriques au niveau de l’équipe sont construites en joignant le rapport des équipes utilisateur (qui répertorie les appartenances d’équipe de chaque utilisateur pour un jour donné) avec le rapport des métriques d’utilisation par utilisateur (qui contient l’activité de Copilot chaque utilisateur pour ce jour). L’agrégation des lignes jointes par team_id produit des métriques au niveau de l’équipe.

La même recette de jointure permet n’importe quel découpage au niveau de l’équipe dont vous avez besoin : par (team, day), par (team, day, language), par (team, day, IDE), sur des fenêtres glissantes, et ainsi de suite.

Extraction des rapports

Les deux rapports référencés dans ce guide sont téléchargés en deux étapes. Tout d’abord, appelez le point de terminaison REST pour le jour souhaité. Le point de terminaison retourne des URL signées limitées dans le temps à partir desquelles vous pouvez télécharger les fichiers de rapport. Téléchargez ensuite les fichiers JSON vers lesquels pointent ces URL. L’équipe utilisateur et les lignes par utilisateur se trouvent dans ces fichiers JSON ; ils ne sont pas retournés inline par le point de terminaison REST.

ReportPoint de terminaison
Équipes d’utilisateurs de l’organisationGET /orgs/{org}/copilot/metrics/reports/user-teams-1-day?day=YYYY-MM-DD
Équipes utilisateur d’entrepriseGET /enterprises/{enterprise}/copilot/metrics/reports/user-teams-1-day?day=YYYY-MM-DD
Métriques d’utilisation par utilisateur de l’organisationGET /orgs/{org}/copilot/metrics/reports/users-1-day?day=YYYY-MM-DD
Métriques d’utilisation par utilisateur d’entrepriseGET /enterprises/{enterprise}/copilot/metrics/reports/users-1-day?day=YYYY-MM-DD

Chaque point de terminaison retourne une réponse du formulaire :

{
  "download_links": [
    "https://example.com/copilot-user-teams-report-1.json"
  ],
  "report_day": "2026-05-07"
}

Téléchargez le fichier à chacune des URL avant l’expiration du lien afin de récupérer les lignes de ce rapport.

Pour obtenir des schémas de demande et de réponse complets, des exigences d’authentification et des points de terminaison associés, consultez Points de terminaison d’API REST pour les métriques d’utilisation Copilot. Pour obtenir une vue d’ensemble de la façon dont les champs de métrique d’utilisation individuels sont définis, consultez Données disponibles dans les métriques d’utilisation Copilot.

Pour une période de plusieurs jours, appelez les points de terminaison journaliers une fois par jour et agrégez les résultats quotidiens. Consultez ci-dessous la création de rapports d’équipe à fenêtre glissante.

Rapports impliqués

Les métriques au niveau de l’équipe proviennent de la jonction de deux familles de rapports : les rapports d’équipes utilisateur pour l’appartenance à l’équipe et les rapports de métriques d’utilisation par utilisateur pour l’activité.

Rapports d’équipes utilisateur

Ces rapports répertorient les appartenances d’équipe de chaque utilisateur le jour donné.

ReportÉtendueChamps clés
organization_user_teams_1_dayAppartenance à l’équipe de l’organisation pour la journée. Inclut uniquement les équipes de l’organisation.
user_id, , user_login, day``organization_id, , team_id``slug
enterprise_user_teams_1_dayAdhésion à l’équipe Enterprise pour un jour. Inclut à la fois les équipes d’entreprise et les équipes métier.
user_id, , user_login, day``enterprise_id, , team_id``slug

Un utilisateur appartenant à plusieurs équipes le même jour apparaît dans plusieurs lignes : une ligne par (user, team) paire.

Important

Les équipes avec moins de 5 utilisateurs assis Copilot sont exclues des rapports des équipes d’utilisateurs.

Implications:

  • Une équipe avec moins de 5 utilisateurs assis sur une journée donnée n’apparaît pas dans le rapport des équipes utilisateur de ce jour, même si ses membres ont Copilot une activité. L’activité figure toujours dans le rapport des métriques d’utilisation par utilisateur, mais aucune ligne pour l’équipe n’existe dans le résultat de jointure.
  • Une équipe qui franchit le seuil pendant une période de plusieurs jours est présente sur certains jours et absente sur d’autres. Seuls les jours où l’équipe était au-dessus du seuil contribuent à ses totaux.
  • Si vous additionnez de nouveau les lignes de l’équipe pour les comparer à un total d’entreprise ou d’organisation, la somme est inférieure au total de l’entité. L’écart provient de l’activité des utilisateurs qui appartiennent uniquement à des équipes en dessous du seuil : ils n’ont aucune ligne d’équipe dans le résultat de la jointure, de sorte que leur activité n’est représentée dans aucun agrégat d’équipe.

Rapports de métriques d’utilisation par utilisateur

Ces rapports contiennent l’activité de Copilot chaque utilisateur pour une journée donnée.

ReportÉtendueChamps clés
organization_users_1_dayUne ligne par (user_id, day, organization_id) avec l’activité Copilot de l’utilisateur au sein de cette organisation pour cette journée.
user_id, day, , organization_id``enterprise_id, compteurs d’activité, tableaux de répartition
users_1_dayUne ligne par (user_id, day, enterprise_id), avec l’activité de l’utilisateurCopilot au sein de cette entreprise pour ce jour.
user_id, day, , enterprise_idcompteurs d’activité, tableaux de répartition

Pour obtenir la liste complète des champs disponibles dans ces rapports, consultez Données disponibles dans les métriques d’utilisation Copilot.

Avertissement

Ne combinez pas les rapports par utilisateur sur 28 jours glissants (users_28_day, organization_users_28_day) avec le rapport quotidien utilisateur-équipes. Le rapport sur les équipes des utilisateurs reflète l’appartenance à une équipe à une date donnée. Par conséquent, le fait de joindre 28 jours d’activité à un instantané d’appartenance pris sur une seule journée attribue l’ensemble des 28 jours d’activité aux équipes auxquelles l’utilisateur appartient le jour de la jointure. Cela attribue incorrectement l’activité aux mauvaises équipes chaque fois que la composition des équipes a changé pendant la période. Associez toujours l’activité quotidienne aux équipes d’utilisateurs quotidiennes, puis agrégez selon la période souhaitée.

Rapports au niveau de l’entité

Les rapports au niveau de l’entité (enterprise_28_day, , organization_28_day, enterprise_1_day``organization_1_day) sont des totaux pré-agrégés pour l’ensemble de l’entreprise ou de l’organisation. Ils n’incluent pas user_id ni team_id, et ne peuvent pas être combinés avec le rapport sur les équipes d’utilisateurs pour produire des répartitions par équipe. Utilisez-les directement lorsque vous souhaitez obtenir les totaux de l’entreprise ou de l’organisation ; pour les totaux au niveau de l’équipe, utilisez la jointure entre les user-teams quotidiens et les métriques quotidiennes par utilisateur décrite ci-dessous.

Example

Cet exemple minimal de bout en bout génère les métriques des équipes de l’organisation pour une journée. Le code JSON indiqué ci-dessous pour chaque rapport d’entrée est un exemple de lignes que vous trouverez dans le fichier téléchargé à partir de l’un download_links de ces rapports (voir Extraction des rapports ci-dessus).

Deux utilisateurs présentent Copilot une activité le 2026-05-07 dans l’organisation 999 :

  • Alice (user_id=1001) appartient à deux équipes ce jour-là : frontend (team_id=42) et backend (team_id=43).
  • Bob (user_id=1002) appartient à frontend (team_id=42) uniquement.

Entrée : 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"}

Alice apparaît deux fois : une ligne par équipe à laquelle elle appartient.

Entrée : 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, ...}

Une ligne par (user, day, organization). Les totaux d’activité sont pour la journée, additionnés sur toutes les surfaces.

Résultat joint et agrégé

Effectuez une jointure interne entre les deux rapports sur (user_id, day, organization_id), puis regroupez par team_id et agrégez. La active_users colonne ci-dessous est une sortie d’agrégation (COUNT(DISTINCT user_id)et non un champ du rapport par utilisateur). Les colonnes numériques restantes sont des sommes des champs de rapport correspondants.

team_idlimaceutilisateurs_actifsnombre_d'activités_d'acceptation_du_codeloc_added_sum
42frontend219112
43Serveur principal11288

Deux lignes équipe-jour, une par équipe. La frontend ligne agrège à la fois l’activité d’Alice et de Bob. La backend ligne contient uniquement l’activité d’Alice.

L’activité d’Alice contribue aux deux équipes. Les 12 et 88 sont comptés dans son nombre de lignes en frontend puis de nouveau en backend. Cela correspond à l’objectif des métriques au niveau des équipes : chaque équipe voit l’activité de ses membres, mais en additionnant les deux lignes d’équipe pour obtenir un total unique pour l’organisation, on compte Alice deux fois. Pour les totaux de l’organisation, interrogez organization_users_1_day directement sans rejoindre les équipes utilisateur.

Comment construire des métriques au niveau de l’équipe

Pour n’importe quelle tranche au niveau de l’équipe, les quatre mêmes étapes s’appliquent.

  1. Sélectionnez la paire de rapports.

    • Pour les équipes de l’organisation, associez organization_user_teams_1_day à organization_users_1_day. L’ID d’entité partagée est organization_id.
    • Pour les équipes grandes entreprises et commerciales, associez enterprise_user_teams_1_day à users_1_day. L’ID d’entité partagée est enterprise_id.
  2. Effectuez une jointure interne entre les deux rapports sur (user_id, day, entity_id). Les trois clés doivent correspondre. La jointure est de type un-à-plusieurs du côté des équipes : un utilisateur appartenant à plusieurs équipes correspond à plusieurs lignes de la table user-teams.

  3. Filtrer par day au jour où vous le souhaitez. Les deux rapports portent la même day valeur.

  4. Regrouper par team_id (et slug pour le nom d’affichage de l’équipe), puis agréger. Utiliser :

    • COUNT(DISTINCT user_id) pour les nombres d’utilisateurs distincts, tels que les utilisateurs actifs.
    • SUM(...) pour les compteurs de volume tels que code_generation_activity_count, loc_added_sumet user_initiated_interaction_count.

La jointure est une jointure interne : une équipe apparaît dans le résultat pour un jour donné uniquement si au moins l’un de ses membres a eu une activité ce jour-là. Pour lister les équipes qui n’ont eu aucune activité ce jour-là, effectuez une jointure gauche à partir du rapport équipes-utilisateurs et considérez les compteurs nuls comme égaux à zéro.

Couper par langage, IDE, fonctionnalité ou modèle

Les répartitions par dimension se trouvent dans des champs de type tableau de chaque ligne correspondant à un utilisateur (totals_by_ide, totals_by_language_feature, totals_by_language_model, totals_by_model_feature). Pour regrouper selon une dimension, développez le tableau concerné lors de la jointure, ajoutez les colonnes de dimension aux champs de regroupement et agrègez les compteurs par élément associés à cette dimension. language et ide se trouvent dans des tableaux distincts, donc un tableau croisé (language × ide) au niveau de l’équipe nécessite deux requêtes combinées dans votre application.

Créer des rapports d’équipe sur fenêtre glissante

Pour produire un rapport d’équipe sur une fenêtre glissante (par exemple, un cumul de 28 jours) :

  1. Appelez les points de terminaison quotidiens pour chaque jour dans la fenêtre.
  2. Joignez chaque jour le rapport de métriques d’utilisation par utilisateur (organization_users_1_day ou users_1_day) avec le rapport des équipes utilisateur (organization_user_teams_1_day ou enterprise_user_teams_1_day) du même jour sur (user_id, day, entity_id).
  3. Filtrez day dans la fenêtre et retirez day du regroupement.

Les compteurs de volume sont additifs sur plusieurs jours ; additionnez-les sur la fenêtre. Les nombres d’utilisateurs distincts doivent être évalués comme COUNT(DISTINCT user_id) sur les lignes jointes de la fenêtre complète. Ils ne peuvent pas être additionnés sur les nombres quotidiens.

La jointure par jour est ce qui garantit que l’activité quotidienne est attribuée aux équipes auxquelles l’utilisateur appartenait ce jour-là. Sans cela, les changements d’appartenance aux équipes pendant cette période attribuent silencieusement l’activité aux mauvaises équipes.

Limitations et mises en garde

  • Les utilisateurs de plusieurs équipes contribuent à chaque équipe à laquelle ils appartiennent. Soyez prudent lorsque vous recombinez les lignes des équipes dans un total de l’organisation ou de l’entreprise : les utilisateurs appartenant à plusieurs équipes seront comptés plus d’une fois. Utilisez directement le rapport par utilisateur (sans joindre les équipes utilisateur) pour les totaux de l’organisation ou de l’entreprise.
  • Les équipes en dessous du seuil sont absentes du rapport sur les équipes utilisateur. Les équipes avec moins de 5 utilisateurs assis sur Copilot une journée donnée sont exclues. Leur activité n’est donc pas représentée dans les résultats au niveau de l’équipe, même si l’activité est toujours dans le rapport par utilisateur.
  • Les nombres d’utilisateurs distincts ne peuvent pas être additionnés sur plusieurs jours. Lors du déploiement sur une fenêtre de plusieurs jours, évaluez COUNT(DISTINCT user_id) les lignes jointes pour l’ensemble de la fenêtre plutôt que de additioner les nombres quotidiens.
  • D’autres surfaces de fonctionnalités sont suivies. Les compteurs de volume (code_generation_activity_count, code_acceptance_activity_count et les compteurs loc_*) agrègent l’activité sur plusieurs interfaces Copilot — complétions en ligne dans l’IDE, actions du panneau de chat et, pour les compteurs de lignes acceptées, modifications dans agent co-pilote. Pour obtenir des détails sur la couverture de surface pour chaque compteur, consultez Données disponibles dans les métriques d’utilisation Copilot. Si vous avez précédemment utilisé des métriques similaires dans une interface qui ne comptait que les complétions intégrées de l’IDE, attendez-vous à des valeurs plus élevées pour ces compteurs et redéfinissez le niveau de référence plutôt que d’effectuer des comparaisons de part et d’autre du basculement.
  • Tirez parti des nouvelles dimensions. Des ventilations par IDE, par fonctionnalité, par-(language, feature), par-(language, model) et par-(model, feature) sont disponibles dans chaque ligne utilisateur, ce qui permet d’obtenir des rapports au niveau de l’équipe que les interfaces précédentes des métriques d’équipe ne prenaient pas en charge.

Étapes suivantes