Skip to content
This repository was archived by the owner on Apr 14, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion src/LanguageServer/Impl/Definitions/ITelemetryService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Comment thread
MikhailArkhipov marked this conversation as resolved.
}

public sealed class TelemetryEvent {
public string EventName { get; set; }
public Dictionary<string, string> Properties { get; } = new Dictionary<string, string>();
public Dictionary<string, double> Measurements { get; } = new Dictionary<string, double>();
}
}
3 changes: 2 additions & 1 deletion src/LanguageServer/Impl/Implementation/ServerBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<TelemetryEventArgs> OnTelemetry;
[Obsolete]
public void Telemetry(TelemetryEventArgs e) => OnTelemetry?.Invoke(this, e);

public event EventHandler<CommandEventArgs> OnCommand;
Expand Down
3 changes: 0 additions & 3 deletions src/LanguageServer/Impl/LanguageServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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)
Expand All @@ -99,7 +97,6 @@ private class PublishDiagnosticsParams {
}

#region Events
private void OnTelemetry(object sender, TelemetryEventArgs e) => _telemetry.SendTelemetry(e.value);
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);

Expand Down
3 changes: 2 additions & 1 deletion src/LanguageServer/Impl/Services/TelemetryService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}