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.
| Report | Point de terminaison |
|---|---|
| Équipes d’utilisateurs de l’organisation | GET /orgs/{org}/copilot/metrics/reports/user-teams-1-day?day=YYYY-MM-DD |
| Équipes utilisateur d’entreprise | GET /enterprises/{enterprise}/copilot/metrics/reports/user-teams-1-day?day=YYYY-MM-DD |
| Métriques d’utilisation par utilisateur de l’organisation | GET /orgs/{org}/copilot/metrics/reports/users-1-day?day=YYYY-MM-DD |
| Métriques d’utilisation par utilisateur d’entreprise | GET /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 | Étendue | Champs clés |
|---|---|---|
organization_user_teams_1_day | Appartenance à 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_day | Adhé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 | Étendue | Champs clés |
|---|---|---|
organization_users_1_day | Une 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_day | Une 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) etbackend(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_id | limace | utilisateurs_actifs | nombre_d'activités_d'acceptation_du_code | loc_added_sum |
|---|---|---|---|---|
| 42 | frontend | 2 | 19 | 112 |
| 43 | Serveur principal | 1 | 12 | 88 |
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.
-
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 estorganization_id. - Pour les équipes grandes entreprises et commerciales, associez
enterprise_user_teams_1_dayàusers_1_day. L’ID d’entité partagée estenterprise_id.
- Pour les équipes de l’organisation, associez
-
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. -
Filtrer par
dayau jour où vous le souhaitez. Les deux rapports portent la mêmedayvaleur. -
Regrouper par
team_id(etslugpour 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 quecode_generation_activity_count,loc_added_sumetuser_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) :
- Appelez les points de terminaison quotidiens pour chaque jour dans la fenêtre.
- Joignez chaque jour le rapport de métriques d’utilisation par utilisateur (
organization_users_1_dayouusers_1_day) avec le rapport des équipes utilisateur (organization_user_teams_1_dayouenterprise_user_teams_1_day) du même jour sur(user_id, day, entity_id). - Filtrez
daydans la fenêtre et retirezdaydu 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_countet les compteursloc_*) 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
- Pour obtenir la référence complète du schéma et du champ pour le rapport des métriques d’utilisation par utilisateur, consultez Données disponibles dans les métriques d’utilisation Copilot.
- Pour obtenir des exemples de charges utiles JSON à partir des points de terminaison des métriques d’utilisation, consultez Exemple de schéma pour les métriques d’utilisation de Copilot.
- Pour obtenir des conseils sur la réconciliation des métriques entre le tableau de bord, les API et les exportations, consultez Rapprochement des métriques d’utilisation de Copilot entre les tableaux de bord, les API et les rapports.