Requête Analytics personnalisée
Analytics API
Requête Analytics personnalisée
Requêtes Analytics flexibles avec selections, filtres et aggregations personnalisés pour les données Autocomplete, Chat, Command et PCW.
POST
Requête Analytics personnalisée
Aperçu
Requête
Votre clé de service avec l’autorisation « 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 des sélections de champs à récupérer
- filters (facultatif) : Tableau de filtres à appliquer
- aggregations (facultatif) : Tableau d’agrégations pour le regroupement
Selections
- field (obligatoire) : Nom du champ à sélectionner
- name (optionnel) : Alias du champ
- aggregation_function (optionnel) : Fonction d’agrégation à appliquer
Exemple de sélection
Filtres
- name (obligatoire) : Nom du champ à filtrer
- filter (obligatoire) : Opération de filtrage
- value (obligatoire) : Valeur à comparer
Exemple de filtre
Aggregations
- field (requis) : Nom du champ sur lequel effectuer le regroupement
- name (requis) : Alias du champ d’aggregation
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’autocomplétion | UNSPECIFIED, COUNT |
date UTC-x | Date avec décalage de fuseau horaire (p. ex. « date UTC-8 » pour le PST) | UNSPECIFIED, COUNT |
hour | Heure UTC de l’autocomplétion | UNSPECIFIED, COUNT |
language | Langage de programmation | UNSPECIFIED, COUNT |
ide | IDE utilisé | UNSPECIFIED, COUNT |
version | Version de Windsurf | UNSPECIFIED, COUNT |
num_acceptances | Nombre d’acceptations 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 | Couples distincts (utilisateur, jour) | UNSPECIFIED, COUNT |
distinct_developer_hours | Couples distincts (utilisateur, heure) | UNSPECIFIED, COUNT |
Données de Chat
Les données de Chat sont distinctes des données Cascade et correspondent à l’usage de nos plugins hérités non agentiques
| 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 de 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 Chat
CHAT_INTENT_GENERIC- Chat standardCHAT_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 Command
accepted pour filtrer les seules commandes acceptées.
| Field Name | Description | Valid Aggregations |
|---|---|---|
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 du 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 classique 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 de générationPROVIDER_SOURCE_COMMAND_EDIT- Mode d’é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 provenant d’Autocomplete | UNSPECIFIED |
codeium_bytes_by_command | Octets Codeium provenant 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 de la requête.
Exemples de demandes
Exemple de données utilisateur
Exemple de données de Chat
Exemple de données pour Command
Exemple de données PCW
Réponse
Exemples de réponses
Réponse de données utilisateur
Réponse de données de Chat
Réponse de données Command
Réponse de données PCW
Notes importantes
- PCW (Percent Code Written) présente une forte variabilité au cours d’une même journée ou pour un même utilisateur ; agrégerez les données sur plusieurs semaines pour obtenir des insights plus pertinents
- Tous les champs de sélection doivent soit avoir des fonctions d’agrégation, soit n’en avoir aucune (pas de mélange possible)
- Les champs avec le motif “distinct_*” ne peuvent pas être utilisés dans des agrégations
- Les alias de champs doivent être uniques dans l’ensemble des selections et aggregations
- Si aucune fonction d’agrégation n’est spécifiée, la valeur par défaut est UNSPECIFIED