From 3cd581cb3f0a21bc03a75d2117942d8389974731 Mon Sep 17 00:00:00 2001 From: MikhailArkhipov Date: Mon, 22 Oct 2018 12:27:34 -0700 Subject: [PATCH 1/3] Telemetry event structure --- src/LanguageServer/Impl/Definitions/ITelemetryService.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/LanguageServer/Impl/Definitions/ITelemetryService.cs b/src/LanguageServer/Impl/Definitions/ITelemetryService.cs index b6e510837..51d427ecc 100644 --- a/src/LanguageServer/Impl/Definitions/ITelemetryService.cs +++ b/src/LanguageServer/Impl/Definitions/ITelemetryService.cs @@ -14,10 +14,17 @@ // See the Apache Version 2.0 License for specific language governing // permissions and limitations under the License. +using System.Collections.Generic; using System.Threading.Tasks; namespace Microsoft.Python.LanguageServer { public interface ITelemetryService { - Task SendTelemetry(object o); + Task SendTelemetry(TelemetryEvent telemetryEvent); + } + + public sealed class TelemetryEvent { + public string EventName { get; set; } + public Dictionary Properties { get; } = new Dictionary(); + public Dictionary Measurements { get; } = new Dictionary(); } } From fafff4cd816edbf724d9acd0dd590836050ff799 Mon Sep 17 00:00:00 2001 From: MikhailArkhipov Date: Mon, 22 Oct 2018 13:45:38 -0700 Subject: [PATCH 2/3] Implementation --- src/LanguageServer/Impl/Implementation/ServerBase.cs | 3 ++- src/LanguageServer/Impl/LanguageServer.cs | 5 ++--- src/LanguageServer/Impl/Services/TelemetryService.cs | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/LanguageServer/Impl/Implementation/ServerBase.cs b/src/LanguageServer/Impl/Implementation/ServerBase.cs index 86970533c..4ecbee12f 100644 --- a/src/LanguageServer/Impl/Implementation/ServerBase.cs +++ b/src/LanguageServer/Impl/Implementation/ServerBase.cs @@ -128,8 +128,9 @@ public void ShowMessage(MessageType type, string message) public void LogMessage(MessageType type, string message) => OnLogMessage?.Invoke(this, new LogMessageEventArgs { type = type, message = message }); - + [Obsolete] public event EventHandler OnTelemetry; + [Obsolete] public void Telemetry(TelemetryEventArgs e) => OnTelemetry?.Invoke(this, e); public event EventHandler OnCommand; diff --git a/src/LanguageServer/Impl/LanguageServer.cs b/src/LanguageServer/Impl/LanguageServer.cs index ff0a46f80..23b0897c0 100644 --- a/src/LanguageServer/Impl/LanguageServer.cs +++ b/src/LanguageServer/Impl/LanguageServer.cs @@ -64,7 +64,6 @@ public CancellationToken Start(IServiceContainer services, JsonRpc rpc) { _server.OnLogMessage += OnLogMessage; _server.OnShowMessage += OnShowMessage; - _server.OnTelemetry += OnTelemetry; _server.OnPublishDiagnostics += OnPublishDiagnostics; _server.OnApplyWorkspaceEdit += OnApplyWorkspaceEdit; _server.OnRegisterCapability += OnRegisterCapability; @@ -73,7 +72,6 @@ public CancellationToken Start(IServiceContainer services, JsonRpc rpc) { _disposables .Add(() => _server.OnLogMessage -= OnLogMessage) .Add(() => _server.OnShowMessage -= OnShowMessage) - .Add(() => _server.OnTelemetry -= OnTelemetry) .Add(() => _server.OnPublishDiagnostics -= OnPublishDiagnostics) .Add(() => _server.OnApplyWorkspaceEdit -= OnApplyWorkspaceEdit) .Add(() => _server.OnRegisterCapability -= OnRegisterCapability) @@ -99,7 +97,8 @@ private class PublishDiagnosticsParams { } #region Events - private void OnTelemetry(object sender, TelemetryEventArgs e) => _telemetry.SendTelemetry(e.value); + [Obsolete] + private void OnTelemetry(object sender, TelemetryEventArgs e) { } private void OnShowMessage(object sender, ShowMessageEventArgs e) => _ui.ShowMessage(e.message, e.type); private void OnLogMessage(object sender, LogMessageEventArgs e) => _ui.LogMessage(e.message, e.type); diff --git a/src/LanguageServer/Impl/Services/TelemetryService.cs b/src/LanguageServer/Impl/Services/TelemetryService.cs index 3a2714d32..b1417a684 100644 --- a/src/LanguageServer/Impl/Services/TelemetryService.cs +++ b/src/LanguageServer/Impl/Services/TelemetryService.cs @@ -24,6 +24,7 @@ public sealed class TelemetryService : ITelemetryService { public TelemetryService(JsonRpc rpc) { _rpc = rpc; } - public Task SendTelemetry(object o) => _rpc.NotifyWithParameterObjectAsync("telemetry/event", o); + public Task SendTelemetry(TelemetryEvent telemetryEvent) + => _rpc.NotifyWithParameterObjectAsync("telemetry/event", telemetryEvent); } } From 3607c01c9bad98ef86f23cad8ec236967c188eab Mon Sep 17 00:00:00 2001 From: MikhailArkhipov Date: Tue, 23 Oct 2018 09:48:48 -0700 Subject: [PATCH 3/3] Remove member --- src/LanguageServer/Impl/LanguageServer.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/LanguageServer/Impl/LanguageServer.cs b/src/LanguageServer/Impl/LanguageServer.cs index 23b0897c0..71edcc6cd 100644 --- a/src/LanguageServer/Impl/LanguageServer.cs +++ b/src/LanguageServer/Impl/LanguageServer.cs @@ -97,8 +97,6 @@ private class PublishDiagnosticsParams { } #region Events - [Obsolete] - private void OnTelemetry(object sender, TelemetryEventArgs e) { } private void OnShowMessage(object sender, ShowMessageEventArgs e) => _ui.ShowMessage(e.message, e.type); private void OnLogMessage(object sender, LogMessageEventArgs e) => _ui.LogMessage(e.message, e.type);