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 méthode de jointure prend en charge tout découpage au niveau des équipes 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 délimités par des sauts de ligne (NDJSON) auxquels ces URL renvoient. Les lignes d’appartenance utilisateur-équipe et les lignes par utilisateur se trouvent dans ces fichiers NDJSON ; elles ne sont pas renvoyées directement 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.ndjson"
  ],
  "report_day": "2026-05-07"
}

Téléchargez le fichier à chaque URL avant l’expiration du lien afin de récupérer les lignes correspondant à 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 des utilisateurs aux équipes de l’organisation pour la journée considéré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 de métriques d’utilisation par utilisateur, mais aucune ligne d’équipe n’existe dans le résultat de la 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 à nouveau les lignes d’équipe pour les comparer à un total d’entreprise ou d’organisation, la somme sera 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_id, compteurs 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 joignez pas les rapports par utilisateur sur 28 jours glissants (users_28_day, organization_users_28_day) avec le rapport quotidien utilisateur-équipe. 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. Joignez toujours l’activité quotidienne avec les données quotidiennes utilisateur-équipe, puis agrégez selon la fenêtre 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. Les exemples de lignes NDJSON ci-dessous pour chaque rapport d’entrée sont similaires aux 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 ont une activité Copilot le 07/05/2026 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_idslugutilisateurs_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 valeurs 12 et 88 de sa ligne sont comptabilisées dans frontend puis à nouveau dans backend. Cela correspond à l’objectif des métriques par équipe (chaque équipe voit l’activité de ses membres), mais réagréger les deux lignes d’équipe en un total unique pour l’organisation entraîne un double comptage d’Alice. Pour les totaux de l’organisation, interrogez directement organization_users_1_day sans effectuer la jointure utilisateur-équipe.

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 utilisateur-équipe.

  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 une journée donnée uniquement si au moins un de ses membres a eu une activité ce jour-là. Pour lister les équipes sans activité sur la journée, effectuez une jointure externe gauche à partir du rapport utilisateur-équipe et considérez les compteurs nuls comme égaux à zéro.

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

Les répartitions par dimension sont stockées dans des champs tableau sur chaque ligne utilisateur (totals_by_ide, totals_by_language_feature, totals_by_language_model, totals_by_model_feature). Pour regrouper par dimension, développez le tableau correspondant dans le cadre de la jointure, ajoutez les colonnes de dimension à votre regroupement, puis agrégez les compteurs propres à 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éation de rapports d’équipe sur fenêtre glissante

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

  1. Appelez les points de terminaison quotidiens pour chaque jour de 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 cumulables d’un jour à l’autre ; additionnez-les sur toute 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 quotidienne garantit que l’activité de chaque journée est attribuée aux équipes auxquelles l’utilisateur appartenait ce jour-là. Sans cela, les changements d’appartenance à une équipe au cours de la période entraîneraient une attribution incorrecte de l’activité à de mauvaises équipes.

Limitations et mises en garde

  • Les utilisateurs de plusieurs équipes contribuent à chaque équipe à laquelle ils appartiennent. Soyez prudent lorsque vous réagrégez les lignes d’équipe en un total d’organisation ou d’entreprise : les utilisateurs appartenant à plusieurs équipes seront comptés plusieurs 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 d’un cumul sur plusieurs jours, évaluez COUNT(DISTINCT user_id) sur les lignes jointes de l’ensemble de la fenêtre plutôt que d’additionner les décomptes quotidiens.
  •           **Davantage de surfaces fonctionnelles sont désormais suivies.** Les compteurs de volume (`code_generation_activity_count`, `code_acceptance_activity_count` et les compteurs `loc_*`) agrègent l’activité provenant de plusieurs surfacesCopilot : complétions en ligne dans l’IDE, actions dans le panneau de conversation et (pour les compteurs de lignes acceptées) modifications agent co-pilote. Pour en savoir plus sur la couverture par surface et par compteur, consultez [AUTOTITLE](/copilot/reference/copilot-usage-metrics/copilot-usage-metrics). Si vous utilisiez auparavant des métriques similaires provenant d’une surface qui ne comptabilisait que les complétions en ligne dans l’IDE, attendez-vous à des valeurs plus élevées dans ces compteurs et établissez une nouvelle référence plutôt que de comparer directement avant/après la transition.
    
  • Tirez parti des nouvelles dimensions. Des répartitions par IDE, par fonctionnalité, par (language, feature), par (language, model) et par-(model, feature) sont disponibles sur chaque ligne utilisateur, permettant de produire des rapports au niveau des équipes qui n’étaient pas pris en charge par les précédentes surfaces de métriques d’équipe.

Étapes suivantes