@@ -8,6 +8,8 @@ import { RubyHelper } from './rubyHelper';
88import { PuppetStatusBar } from './PuppetStatusBar' ;
99import { PuppetLanguageClient } from './PuppetLanguageClient' ;
1010import { ConnectionConfiguration } from './configuration' ;
11+ import { reporter } from './telemetry/telemetry' ;
12+ import { PuppetVersionRequest } from './messages' ;
1113
1214const langID = 'puppet' ; // don't change this
1315const documentSelector = { scheme : 'file' , language : langID } ;
@@ -28,13 +30,15 @@ export class ConnectionManager implements IConnectionManager {
2830 private languageServerClient : LanguageClient ;
2931 private languageServerProcess : cp . ChildProcess ;
3032 private puppetLanguageClient : PuppetLanguageClient ;
33+ private timeSpent :number ;
3134
3235 constructor (
3336 context : vscode . ExtensionContext ,
3437 logger : ILogger ,
3538 statusBar : PuppetStatusBar ,
3639 connectionConfiguration : IConnectionConfiguration
3740 ) {
41+ this . timeSpent = Date . now ( ) ;
3842 this . logger = logger ;
3943 this . extensionContext = context ;
4044 this . connectionStatus = ConnectionStatus . NotStarted ;
@@ -77,6 +81,18 @@ export class ConnectionManager implements IConnectionManager {
7781
7882 this . connectionStatus = ConnectionStatus . Stopping ;
7983
84+ if ( this . languageServerClient !== undefined ) {
85+ this . timeSpent = Date . now ( ) - this . timeSpent ;
86+ this . languageServerClient . sendRequest ( PuppetVersionRequest . type ) . then ( versionDetails => {
87+ reporter . sendTelemetryEvent ( 'data' , {
88+ 'timeSpent' : this . timeSpent . toString ( ) ,
89+ 'puppetVersion' : versionDetails . puppetVersion ,
90+ 'facterVersion' : versionDetails . facterVersion ,
91+ 'languageServerVersion' : versionDetails . languageServerVersion ,
92+ } ) ;
93+ } ) ;
94+ }
95+
8096 // Close the language server client
8197 if ( this . languageServerClient !== undefined ) {
8298 this . languageServerClient . stop ( ) ;
0 commit comments