Skip to content

Commit a559f36

Browse files
committed
Add AI request ID to feedback telemetry events
Includes a unique AI request identifier in feedback telemetry to enable improved traceability and correlation of feedback to specific AI requests. Updates documentation and relevant interfaces to reflect the new field.
1 parent aad97f6 commit a559f36

File tree

5 files changed

+12
-8
lines changed

5 files changed

+12
-8
lines changed

docs/telemetry-events.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -145,16 +145,11 @@
145145
146146
```typescript
147147
{
148-
// Request duration if available
149-
'duration': number,
148+
'ai.request.id': string,
150149
// The AI feature that feedback was submitted for
151-
'feature': 'explain' | 'generateCommit' | 'generateRebase' | 'generateStash' | 'generateDraft' | 'generateChangelog' | 'generateCreatePullRequest',
150+
'feature': string,
152151
// Type of feedback provided
153152
'feedbackType': 'preset' | 'writeIn' | 'both',
154-
// Whether write-in feedback was provided
155-
'hasWriteInFeedback': boolean,
156-
// Input/output lengths if available
157-
'input.length': number,
158153
// Model information
159154
'model.id': string,
160155
'model.provider.id': 'anthropic' | 'azure' | 'deepseek' | 'gemini' | 'github' | 'gitkraken' | 'huggingface' | 'mistral' | 'ollama' | 'openai' | 'openaicompatible' | 'openrouter' | 'vscode' | 'xai',
@@ -165,11 +160,15 @@
165160
// The original rating that led to this feedback
166161
'rating': 'positive' | 'negative',
167162
'usage.completionTokens': number,
163+
'usage.limits.limit': number,
164+
'usage.limits.resetsOn': string,
165+
'usage.limits.used': number,
168166
// Token usage information if available
169167
'usage.promptTokens': number,
170168
'usage.totalTokens': number,
171169
// Length of write-in feedback if provided
172-
'writeInFeedback.length': number
170+
'writeInFeedback.length': number,
171+
'writeInFeedback.text': string
173172
}
174173
```
175174

src/commands/aiFeedback.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export interface AIFeedbackContext {
2727
resetsOn: Date;
2828
};
2929
};
30+
aiRequestId: string | undefined;
3031
outputLength: number;
3132
}
3233

@@ -72,6 +73,7 @@ function sendFeedbackEvent(
7273
'usage.limits.used': context.usage?.limits?.used,
7374
'usage.limits.limit': context.usage?.limits?.limit,
7475
'usage.limits.resetsOn': context.usage?.limits?.resetsOn?.toISOString(),
76+
'ai.request.id': context.aiRequestId,
7577
'output.length': context.outputLength,
7678
};
7779

src/commands/explainBase.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export abstract class ExplainCommandBase extends GlCommandBase {
6969
providerName: result.model.provider.name,
7070
},
7171
usage: result.usage,
72+
aiRequestId: result.id,
7273
outputLength: result.content?.length,
7374
};
7475

src/commands/generateRebase.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ export async function generateRebase(
359359
providerName: result.model.provider.name,
360360
},
361361
usage: result.usage,
362+
aiRequestId: result.id,
362363
outputLength: result.content?.length,
363364
};
364365
const telemetryEnabled = container.telemetry.enabled;

src/constants.telemetry.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,7 @@ export interface AIFeedbackEvent {
425425
'usage.limits.used'?: number;
426426
'usage.limits.limit'?: number;
427427
'usage.limits.resetsOn'?: string;
428+
'ai.request.id'?: string;
428429

429430
'output.length'?: number;
430431
}

0 commit comments

Comments
 (0)