File tree Expand file tree Collapse file tree 2 files changed +43
-5
lines changed
Expand file tree Collapse file tree 2 files changed +43
-5
lines changed Original file line number Diff line number Diff line change @@ -43,6 +43,8 @@ export class TelemetryErrorHandler implements ErrorHandler {
4343 }
4444}
4545
46+ const errorMassagesToSkip = [ { text : 'Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED' , contains : true } ] ;
47+
4648export class TelemetryOutputChannel implements vscode . OutputChannel {
4749 constructor ( private readonly delegate : vscode . OutputChannel , private readonly telemetry : TelemetryService ) { }
4850
@@ -60,9 +62,38 @@ export class TelemetryOutputChannel implements vscode.OutputChannel {
6062
6163 private checkError ( value : string ) : void {
6264 if ( value . startsWith ( '[Error' ) || value . startsWith ( ' Message: Request' ) ) {
63- this . telemetry . send ( { name : 'yaml.server.error' , properties : { error : value } } ) ;
65+ if ( this . isNeedToSkip ( value ) ) {
66+ return ;
67+ }
68+ this . telemetry . send ( { name : 'yaml.server.error' , properties : { error : this . createErrorMessage ( value ) } } ) ;
6469 }
6570 }
71+
72+ private isNeedToSkip ( value : string ) : boolean {
73+ for ( const skip of errorMassagesToSkip ) {
74+ if ( skip . contains ) {
75+ if ( value . includes ( skip . text ) ) {
76+ return true ;
77+ }
78+ } else {
79+ const starts = value . startsWith ( skip . text ) ;
80+ if ( starts ) {
81+ return true ;
82+ }
83+ }
84+ }
85+
86+ return false ;
87+ }
88+
89+ private createErrorMessage ( value : string ) : string {
90+ if ( value . startsWith ( '[Error' ) ) {
91+ value = value . substr ( value . indexOf ( ']' ) + 1 , value . length ) . trim ( ) ;
92+ }
93+
94+ return value ;
95+ }
96+
6697 clear ( ) : void {
6798 this . delegate . clear ( ) ;
6899 }
Original file line number Diff line number Diff line change @@ -79,13 +79,20 @@ describe('Telemetry Test', () => {
7979 } ) ;
8080
8181 it ( 'should send telemetry if log error in "append"' , ( ) => {
82- telemetryChannel . append ( '[Error Some' ) ;
83- expect ( telemetry . send ) . calledOnceWith ( { name : 'yaml.server.error' , properties : { error : '[Error Some' } } ) ;
82+ telemetryChannel . append ( '[Error] Some' ) ;
83+ expect ( telemetry . send ) . calledOnceWith ( { name : 'yaml.server.error' , properties : { error : 'Some' } } ) ;
8484 } ) ;
8585
8686 it ( 'should send telemetry if log error on "appendLine"' , ( ) => {
87- telemetryChannel . appendLine ( '[Error Some' ) ;
88- expect ( telemetry . send ) . calledOnceWith ( { name : 'yaml.server.error' , properties : { error : '[Error Some' } } ) ;
87+ telemetryChannel . appendLine ( '[Error] Some error' ) ;
88+ expect ( telemetry . send ) . calledOnceWith ( { name : 'yaml.server.error' , properties : { error : 'Some error' } } ) ;
89+ } ) ;
90+
91+ it ( "shouldn't send telemetry if error should be skipped" , ( ) => {
92+ telemetryChannel . append (
93+ "[Error - 15:10:33] (node:25052) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification."
94+ ) ;
95+ expect ( telemetry . send ) . not . called ;
8996 } ) ;
9097 } ) ;
9198
You can’t perform that action at this time.
0 commit comments