Requête Analytics personnalisée
Analytics API
Requête Analytics personnalisée
Interrogation Analytics flexible avec selections, filtres et aggregations personnalisés pour les données Autocomplete, Chat, Command et PCW.
POST
Requête Analytics personnalisée
Vue d’ensemble
Requête
Votre clé de service disposant des autorisations “Analytics Read”
Limiter les résultats aux utilisateurs d’un groupe spécifique (facultatif)
Tableau d’objets de requête définissant les données à récupérer
Structure de la requête
- data_source (obligatoire) : Source de données à interroger
- selections (obligatoire) : Tableau de sélections de champs à récupérer
- filters (facultatif) : Tableau de filtres à appliquer
- aggregations (facultatif) : Tableau d’aggregations pour le regroupement
Selections
- field (obligatoire) : nom du champ à sélectionner
- name (facultatif) : alias du champ
- aggregation_function (facultatif) : fonction d’agrégation à appliquer
Exemple de sélection
Filtres
- name (obligatoire) : Nom du champ sur lequel appliquer le filtre
- filter (obligatoire) : Opération de filtrage
- value (obligatoire) : Valeur à comparer
Exemple de filtre
Agrégations
- field (obligatoire) : Nom du champ à utiliser pour le regroupement
- name (obligatoire) : Alias du champ d’agrégation
Exemple d’agrégation
Champs disponibles
Données utilisateur
| Nom du champ | Description | Agrégations valides |
|---|---|---|
api_key | Hachage de la clé API de l’utilisateur | UNSPECIFIED, COUNT |
date | Date UTC de l’Autocompletion | UNSPECIFIED, COUNT |
date UTC-x | Date avec décalage de fuseau horaire (p. ex. « date UTC-8 » pour PST) | UNSPECIFIED, COUNT |
hour | Heure UTC de l’Autocompletion | UNSPECIFIED, COUNT |
language | Langage de programmation | UNSPECIFIED, COUNT |
ide | IDE utilisé | UNSPECIFIED, COUNT |
version | Version de Windsurf | UNSPECIFIED, COUNT |
num_acceptances | Nombre d’acceptations d’Autocomplete | SUM, MAX, MIN, AVG |
num_lines_accepted | Lignes de code acceptées | SUM, MAX, MIN, AVG |
num_bytes_accepted | Octets acceptés | SUM, MAX, MIN, AVG |
distinct_users | Utilisateurs distincts | UNSPECIFIED, COUNT |
distinct_developer_days | Paires distinctes (utilisateur, jour) | UNSPECIFIED, COUNT |
distinct_developer_hours | Paires distinctes (utilisateur, heure) | UNSPECIFIED, COUNT |
Données de Chat
| Field Name | Description | Valid Aggregations |
|---|---|---|
api_key | Hachage de la clé API de l’utilisateur | UNSPECIFIED, COUNT |
model_id | ID du modèle de Chat | UNSPECIFIED, COUNT |
date | Date UTC de la réponse du chat | UNSPECIFIED, COUNT |
date UTC-x | Date avec décalage de fuseau horaire | UNSPECIFIED, COUNT |
ide | IDE utilisé | UNSPECIFIED, COUNT |
version | Version de Windsurf | UNSPECIFIED, COUNT |
latest_intent_type | Type d’intention du Chat (voir Types d’intention ci‑dessous) | UNSPECIFIED, COUNT |
num_chats_received | Nombre de messages de chat reçus | SUM, MAX, MIN, AVG |
chat_accepted | Indique si le chat a été accepté (pouce levé) | SUM, COUNT |
chat_inserted_at_cursor | Indique si le bouton « Insert » a été cliqué | SUM, COUNT |
chat_applied | Indique si le bouton « Apply Diff » a été cliqué | SUM, COUNT |
chat_loc_used | Lignes de code utilisées à partir du chat | SUM, MAX, MIN, AVG |
Types d’intentions de Chat
CHAT_INTENT_GENERIC- Chat classiqueCHAT_INTENT_FUNCTION_EXPLAIN- CodeLens d’explication de fonctionCHAT_INTENT_FUNCTION_DOCSTRING- CodeLens de docstring de fonctionCHAT_INTENT_FUNCTION_REFACTOR- CodeLens de refactorisation de fonctionCHAT_INTENT_CODE_BLOCK_EXPLAIN- CodeLens d’explication de bloc de codeCHAT_INTENT_CODE_BLOCK_REFACTOR- CodeLens de refactorisation de bloc de codeCHAT_INTENT_PROBLEM_EXPLAIN- CodeLens d’explication de problèmeCHAT_INTENT_FUNCTION_UNIT_TESTS- CodeLens de tests unitaires de fonction
Données de Command
accepted pour filtrer uniquement les commandes acceptées.
| Nom du champ | Description | Agrégations valides |
|---|---|---|
api_key | Hachage de la clé API de l’utilisateur | UNSPECIFIED, COUNT |
date | Date UTC de la commande | UNSPECIFIED, COUNT |
timestamp | Horodatage UTC de la commande | UNSPECIFIED, COUNT |
language | Langage de programmation | UNSPECIFIED, COUNT |
ide | IDE utilisé | UNSPECIFIED, COUNT |
version | Version de Windsurf | UNSPECIFIED, COUNT |
command_source | Source de déclenchement de Command (voir Command Sources ci-dessous) | UNSPECIFIED, COUNT |
provider_source | Mode de génération ou d’édition | UNSPECIFIED, COUNT |
lines_added | Lignes de code ajoutées | SUM, MAX, MIN, AVG |
lines_removed | Lignes de code supprimées | SUM, MAX, MIN, AVG |
bytes_added | Octets ajoutés | SUM, MAX, MIN, AVG |
bytes_removed | Octets supprimés | SUM, MAX, MIN, AVG |
selection_lines | Lignes sélectionnées (zéro pour les générations) | SUM, MAX, MIN, AVG |
selection_bytes | Octets sélectionnés (zéro pour les générations) | SUM, MAX, MIN, AVG |
accepted | Indique si la commande a été acceptée | SUM, COUNT |
Sources de Command
COMMAND_REQUEST_SOURCE_LINE_HINT_CODE_LENSCOMMAND_REQUEST_SOURCE_DEFAULT- Utilisation typique de CommandCOMMAND_REQUEST_SOURCE_RIGHT_CLICK_REFACTORCOMMAND_REQUEST_SOURCE_FUNCTION_CODE_LENSCOMMAND_REQUEST_SOURCE_FOLLOWUPCOMMAND_REQUEST_SOURCE_CLASS_CODE_LENSCOMMAND_REQUEST_SOURCE_PLANCOMMAND_REQUEST_SOURCE_SELECTION_HINT_CODE_LENS
Sources du fournisseur
PROVIDER_SOURCE_COMMAND_GENERATE- Mode générationPROVIDER_SOURCE_COMMAND_EDIT- Mode édition
Données PCW
| Nom du champ | Description | Agrégations valides |
|---|---|---|
percent_code_written | Calculé comme codeium_bytes / (codeium_bytes + user_bytes) | UNSPECIFIED |
codeium_bytes | Nombre total d’octets générés par Codeium | UNSPECIFIED |
user_bytes | Nombre total d’octets écrits par l’utilisateur | UNSPECIFIED |
total_bytes | codeium_bytes + user_bytes | UNSPECIFIED |
codeium_bytes_by_autocomplete | Octets Codeium issus d’Autocomplete | UNSPECIFIED |
codeium_bytes_by_command | Octets Codeium issus de Command | UNSPECIFIED |
Filtres PCW
| Nom du champ | Description | Exemples |
|---|---|---|
language | Langage de programmation | KOTLIN, GO, JAVA |
ide | IDE utilisé | jetbrains, vscode |
version | Version de Windsurf | 1.28.0, 130.0 |
start_timestamp et end_timestamp dans le corps principal de la requête.
Exemples de demandes
Exemple de données utilisateur
Exemple de données pour Chat
Exemple de données de Command
Exemple de données PCW
Réponse
Exemples de réponses
Réponse de données de l’utilisateur
Réponse de données du Chat
Réponse de données de Command
Réponse de PCW concernant les données
Notes importantes
- Le PCW (Percent Code Written) présente une forte variance au cours d’une même journée ou pour un même utilisateur : agrégerez les données sur plusieurs semaines pour obtenir de meilleures informations
- Tous les champs de selections doivent soit avoir des fonctions d’agrégation, soit n’en avoir aucune (on ne peut pas mélanger)
- Les champs avec le motif “distinct_*” ne peuvent pas être utilisés dans des agrégations
- Les alias de champ doivent être uniques sur l’ensemble des selections et des aggregations
- Si aucune fonction d’agrégation n’est spécifiée, la valeur par défaut est UNSPECIFIED