@@ -7,6 +7,7 @@ import { sendError, sendInfo } from "vscode-extension-telemetry-wrapper";
77import { LSDaemon } from "./daemon" ;
88import { getExpService } from "../exp" ;
99import { TreatmentVariables } from "../exp/TreatmentVariables" ;
10+ import { workspace } from "vscode" ;
1011
1112const delay = promisify ( setTimeout ) ;
1213
@@ -85,8 +86,9 @@ const INTERNAL_ERROR_CODE: number = -32603; // Internal Error.
8586async function traceLSPPerformance ( javaExt : vscode . Extension < any > ) {
8687 const javaExtVersion = javaExt . packageJSON ?. version ;
8788 const isPreReleaseVersion = / ^ \d + \. \d + \. \d { 10 } / . test ( javaExtVersion ) ;
88- const isTreatment = ! isPreReleaseVersion &&
89- ( await getExpService ( ) ?. getTreatmentVariableAsync ( TreatmentVariables . VSCodeConfig , TreatmentVariables . JavaCompletionSampling , true /*checkCache*/ ) || false ) ;
89+ const redHatTelemetryEnabled = workspace . getConfiguration ( 'redhat.telemetry' ) . get ( 'enabled' , false ) ;
90+ const isTreatment = ! isPreReleaseVersion &&
91+ ( redHatTelemetryEnabled || await getExpService ( ) ?. getTreatmentVariableAsync ( TreatmentVariables . VSCodeConfig , TreatmentVariables . JavaCompletionSampling , true /*checkCache*/ ) ) ;
9092 const sampling : string = isPreReleaseVersion ? "pre-release" : ( isTreatment ? "sampling" : "" ) ;
9193 // Trace the interested LSP requests performance
9294 javaExt . exports ?. onDidRequestEnd ?.( ( traceEvent : any ) => {
@@ -122,30 +124,44 @@ async function traceLSPPerformance(javaExt: vscode.Extension<any>) {
122124 exception,
123125 javaversion : javaExtVersion ,
124126 remark : sampling ,
127+ data : redactDataProperties ( traceEvent . data ) ,
125128 } ) ;
126129 return ;
127130 }
128131
129132 if ( INTERESTED_REQUESTS . has ( traceEvent . type ) ) {
130133 // See https://github.com/redhat-developer/vscode-java/pull/3010
131134 // to exclude the invalid completion requests.
132- if ( ! traceEvent . resultLength && traceEvent . type === "textDocument/completion" ) {
135+ if ( ! traceEvent . resultLength && traceEvent . type === "textDocument/completion"
136+ && ( ! traceEvent . data ?. triggerKind || traceEvent . data ?. triggerCharacter === ' ' ) ) {
133137 return ;
134138 }
135139
136140 sendInfo ( "" , {
137141 name : "lsp" ,
138142 kind : escapeLspRequestName ( traceEvent . type ) ,
139143 duration : Math . trunc ( traceEvent . duration ) ,
140- resultLength : traceEvent . resultLength ,
144+ resultsize : traceEvent . resultLength === undefined ? "" : String ( traceEvent . resultLength ) ,
141145 javaversion : javaExtVersion ,
142146 remark : sampling ,
147+ data : redactDataProperties ( traceEvent . data ) ,
143148 } ) ;
144149 return ;
145150 }
146151 } ) ;
147152}
148153
154+ function redactDataProperties ( data : any ) : string {
155+ if ( data ?. triggerKind ) {
156+ return JSON . stringify ( {
157+ triggerKind : data . triggerKind ,
158+ triggerCharacter : data . triggerCharacter ,
159+ } ) ;
160+ }
161+
162+ return "" ;
163+ }
164+
149165async function traceJavaExtension ( javaExt : vscode . Extension < any > ) {
150166 const javaExtVersion = javaExt . packageJSON ?. version ;
151167 const isPreReleaseVersion = / ^ \d + \. \d + \. \d { 10 } / . test ( javaExtVersion ) ;
0 commit comments