Skip to content

Commit 9240d7c

Browse files
Trace API: give indicator of response success status (#3010)
Signed-off-by: Jinbo Wang <jinbwan@microsoft.com>
1 parent 6dbd1bf commit 9240d7c

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

src/TracingLanguageClient.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ export class TracingLanguageClient extends LanguageClient {
1919
const startAt: number = performance.now();
2020
return super.start().then(value => {
2121
if (isFirstTimeStart) {
22-
this.fireTraceEvent("initialize", startAt);
22+
this.fireTraceEvent("initialize", startAt, undefined);
2323
}
2424
return value;
2525
}, reason => {
2626
if (isFirstTimeStart) {
27-
this.fireTraceEvent("initialize", startAt, reason);
27+
this.fireTraceEvent("initialize", startAt, undefined, reason);
2828
}
2929
throw reason;
3030
});
@@ -45,10 +45,10 @@ export class TracingLanguageClient extends LanguageClient {
4545
const startAt: number = performance.now();
4646
const requestType: string = this.getRequestType(method, ...args);
4747
return this.sendRequest0(method, ...args).then(value => {
48-
this.fireTraceEvent(requestType, startAt);
48+
this.fireTraceEvent(requestType, startAt, this.getResultLength(value));
4949
return value;
5050
}, reason => {
51-
this.fireTraceEvent(requestType, startAt, reason);
51+
this.fireTraceEvent(requestType, startAt, undefined, reason);
5252
throw reason;
5353
});
5454
}
@@ -88,12 +88,21 @@ export class TracingLanguageClient extends LanguageClient {
8888
return requestType;
8989
}
9090

91-
private fireTraceEvent(type: string, startAt: number, reason?: any): void {
91+
private fireTraceEvent(type: string, startAt: number, resultLength: number | undefined, reason?: any): void {
9292
const duration: number = performance.now() - startAt;
9393
requestEventEmitter.fire({
9494
type,
9595
duration,
9696
error: reason,
97+
resultLength,
9798
});
9899
}
100+
101+
private getResultLength(value: any): number | undefined {
102+
if (!value) {
103+
return 0;
104+
}
105+
106+
return value?.length ?? value?.items?.length;
107+
}
99108
}

src/extension.api.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ export interface TraceEvent {
8686
* Error that occurs while processing a request.
8787
*/
8888
error?: any;
89+
/**
90+
* The number of results returned by a response.
91+
*/
92+
resultLength?: number | undefined;
8993
}
9094

9195
export const extensionApiVersion = '0.8';

0 commit comments

Comments
 (0)