Benutzerdefinierte Analytics-Abfrage
Analytics-API
Benutzerdefinierte Analytics-Abfrage
Flexible Analytics-Abfrage mit benutzerdefinierten selections, Filtern und aggregations für Autocomplete-, Chat-, Command- und PCW-Daten.
POST
Benutzerdefinierte Analytics-Abfrage
Übersicht
Anfrage
Ihr Service Key mit Berechtigungen „Analytics Read“
Ergebnisse auf Benutzer in einer bestimmten Gruppe einschränken (optional)
Array von Query-Request-Objekten, die die abzurufenden Daten definieren
Struktur der Query-Anfrage
- data_source (erforderlich): Abzufragende Datenquelle
- selections (erforderlich): Array von Feldselections, die abgerufen werden sollen
- filters (optional): Array von Filtern, die angewendet werden sollen
- aggregations (optional): Array von Aggregationen zur Gruppierung
Selections
- field (erforderlich): Name des auszuwählenden Felds
- name (optional): Alias für das Feld
- aggregation_function (optional): Anzuwendende Aggregationsfunktion
Beispielauswahl
Filter
- name (erforderlich): Feldname, nach dem gefiltert werden soll
- filter (erforderlich): Filteroperation
- value (erforderlich): Wert, mit dem verglichen werden soll
Beispiel für einen Filter
Aggregations
- field (erforderlich): Feldname, nach dem gruppiert werden soll
- name (erforderlich): Alias für das Aggregationsfeld
Beispiel für Aggregation
Verfügbare Felder
Benutzerdaten
| Feldname | Beschreibung | Gültige Aggregationen |
|---|---|---|
api_key | Hash des Benutzer-API-Schlüssels | UNSPECIFIED, COUNT |
date | UTC-Datum der Autocomplete-Vorschläge | UNSPECIFIED, COUNT |
date UTC-x | Datum mit Zeitzonenoffset (z. B. „date UTC-8“ für PST) | UNSPECIFIED, COUNT |
hour | UTC-Stunde der Autocomplete-Vorschläge | UNSPECIFIED, COUNT |
language | Programmiersprache | UNSPECIFIED, COUNT |
ide | Verwendetes IDE | UNSPECIFIED, COUNT |
version | Windsurf-Version | UNSPECIFIED, COUNT |
num_acceptances | Anzahl der Autocomplete-Annahmen | SUM, MAX, MIN, AVG |
num_lines_accepted | Akzeptierte Codezeilen | SUM, MAX, MIN, AVG |
num_bytes_accepted | Akzeptierte Bytes | SUM, MAX, MIN, AVG |
distinct_users | Eindeutige Benutzer | UNSPECIFIED, COUNT |
distinct_developer_days | Eindeutige (Benutzer, Tag)-Tupel | UNSPECIFIED, COUNT |
distinct_developer_hours | Eindeutige (Benutzer, Stunde)-Tupel | UNSPECIFIED, COUNT |
Chat-Daten
| Field Name | Description | Valid Aggregations |
|---|---|---|
api_key | Hash des Benutzer-API-Schlüssels | UNSPECIFIED, COUNT |
model_id | Chat-AI-Modell-ID | UNSPECIFIED, COUNT |
date | UTC-Datum der Chat-Antwort | UNSPECIFIED, COUNT |
date UTC-x | Datum mit Zeitzonen-Offset | UNSPECIFIED, COUNT |
ide | Verwendetes IDE | UNSPECIFIED, COUNT |
version | Windsurf-Version | UNSPECIFIED, COUNT |
latest_intent_type | Chat-Intent-Typ (siehe Intent-Typen unten) | UNSPECIFIED, COUNT |
num_chats_received | Anzahl empfangener Chat-Nachrichten | SUM, MAX, MIN, AVG |
chat_accepted | Ob der Chat angenommen wurde (Daumen hoch) | SUM, COUNT |
chat_inserted_at_cursor | Ob die Schaltfläche „Insert“ geklickt wurde | SUM, COUNT |
chat_applied | Ob die Schaltfläche „Apply Diff“ geklickt wurde | SUM, COUNT |
chat_loc_used | Aus dem Chat verwendete Codezeilen | SUM, MAX, MIN, AVG |
Chat-Intent-Typen
CHAT_INTENT_GENERIC- Regulärer ChatCHAT_INTENT_FUNCTION_EXPLAIN- CodeLens: FunktionserklärungCHAT_INTENT_FUNCTION_DOCSTRING- CodeLens: Funktions-DocstringCHAT_INTENT_FUNCTION_REFACTOR- CodeLens: Funktions-RefactoringCHAT_INTENT_CODE_BLOCK_EXPLAIN- CodeLens: Erklärung des CodeblocksCHAT_INTENT_CODE_BLOCK_REFACTOR- CodeLens: Refactoring des CodeblocksCHAT_INTENT_PROBLEM_EXPLAIN- CodeLens: ProblemerklärungCHAT_INTENT_FUNCTION_UNIT_TESTS- CodeLens: Unit-Tests für die Funktion
Command-Daten
accepted, um nur akzeptierte Befehle zu filtern.
| Feldname | Beschreibung | Gültige aggregations |
|---|---|---|
api_key | Hash des Benutzer-API-Schlüssels | UNSPECIFIED, COUNT |
date | UTC-Datum des Befehls | UNSPECIFIED, COUNT |
timestamp | UTC-Zeitstempel des Befehls | UNSPECIFIED, COUNT |
language | Programmiersprache | UNSPECIFIED, COUNT |
ide | Verwendetes IDE | UNSPECIFIED, COUNT |
version | Windsurf-Version | UNSPECIFIED, COUNT |
command_source | Auslöserquelle von Command (siehe Command Sources unten) | UNSPECIFIED, COUNT |
provider_source | Generierungs- oder Bearbeitungsmodus | UNSPECIFIED, COUNT |
lines_added | Hinzugefügte Codezeilen | SUM, MAX, MIN, AVG |
lines_removed | Entfernte Codezeilen | SUM, MAX, MIN, AVG |
bytes_added | Hinzugefügte Bytes | SUM, MAX, MIN, AVG |
bytes_removed | Entfernte Bytes | SUM, MAX, MIN, AVG |
selection_lines | Ausgewählte Zeilen (0 bei Generierungen) | SUM, MAX, MIN, AVG |
selection_bytes | Ausgewählte Bytes (0 bei Generierungen) | SUM, MAX, MIN, AVG |
accepted | Ob der Befehl akzeptiert wurde | SUM, COUNT |
Command-Quellen
COMMAND_REQUEST_SOURCE_LINE_HINT_CODE_LENSCOMMAND_REQUEST_SOURCE_DEFAULT- Typische Command-VerwendungCOMMAND_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
Anbieterdatenquellen
PROVIDER_SOURCE_COMMAND_GENERATE- GenerierungsmodusPROVIDER_SOURCE_COMMAND_EDIT- Bearbeitungsmodus
PCW-Daten
| Feldname | Beschreibung | Gültige Aggregationen |
|---|---|---|
percent_code_written | Berechnet als codeium_bytes / (codeium_bytes + user_bytes) | UNSPECIFIED |
codeium_bytes | Summe der von Codeium generierten Bytes | UNSPECIFIED |
user_bytes | Summe der vom Benutzer geschriebenen Bytes | UNSPECIFIED |
total_bytes | codeium_bytes + user_bytes | UNSPECIFIED |
codeium_bytes_by_autocomplete | Codeium-Bytes durch Autocomplete | UNSPECIFIED |
codeium_bytes_by_command | Codeium-Bytes durch Command | UNSPECIFIED |
PCW-Filter
| Feldname | Beschreibung | Beispiele |
|---|---|---|
language | Programmiersprache | KOTLIN, GO, JAVA |
ide | Verwendete IDE | jetbrains, vscode |
version | Windsurf-Version | 1.28.0, 130.0 |
start_timestamp und end_timestamp im Hauptanforderungstext der Anfrage.
Beispielanfragen
Beispiel für Nutzerdaten
Beispiel für Chat-Daten
Beispiel für Command-Daten
Beispiel für PCW-Daten
Antwort
Beispielantworten
Antwort mit Benutzerdaten
Antwort mit Chatdaten
Command-Datenantwort
PCW-Datenrückgabe
Wichtige Hinweise
- PCW (Percent Code Written) weist innerhalb einzelner Tage oder Nutzer eine hohe Varianz auf – für aussagekräftigere Erkenntnisse über mehrere Wochen aggregieren
- Alle Auswahlfelder müssen entweder Aggregationsfunktionen haben oder keines darf eine haben (Mischformen sind nicht zulässig)
- Felder mit dem Muster “distinct_*” können nicht in aggregations verwendet werden
- Feldaliase müssen über alle selections und aggregations hinweg eindeutig sein
- Wenn keine Aggregationsfunktion angegeben ist, wird standardmäßig UNSPECIFIED verwendet