|
1 | 1 | // Licensed to the .NET Foundation under one or more agreements.
|
2 | 2 | // The .NET Foundation licenses this file to you under the MIT license.
|
3 | 3 |
|
4 |
| -using System; |
5 | 4 | using System.Composition;
|
6 | 5 | using Microsoft.CodeAnalysis.Razor.Telemetry;
|
| 6 | +using Microsoft.VisualStudio.Razor.Telemetry; |
| 7 | +using Microsoft.VisualStudio.Telemetry; |
7 | 8 |
|
8 | 9 | namespace Microsoft.VisualStudioCode.RazorExtension.Services;
|
9 | 10 |
|
10 |
| -// TODO: |
11 |
| - |
12 | 11 | [Shared]
|
| 12 | +[Export(typeof(VSCodeTelemetryReporter))] |
13 | 13 | [Export(typeof(ITelemetryReporter))]
|
14 |
| -internal class VSCodeTelemetryReporter : ITelemetryReporter |
| 14 | +internal sealed class VSCodeTelemetryReporter : TelemetryReporter |
15 | 15 | {
|
16 |
| - public TelemetryScope BeginBlock(string name, Severity severity, TimeSpan minTimeToReport) |
17 |
| - => TelemetryScope.Null; |
18 |
| - |
19 |
| - public TelemetryScope BeginBlock(string name, Severity severity, TimeSpan minTimeToReport, Property property) |
20 |
| - => TelemetryScope.Null; |
21 |
| - |
22 |
| - public TelemetryScope BeginBlock(string name, Severity severity, TimeSpan minTimeToReport, Property property1, Property property2) |
23 |
| - => TelemetryScope.Null; |
24 |
| - |
25 |
| - public TelemetryScope BeginBlock(string name, Severity severity, TimeSpan minTimeToReport, Property property1, Property property2, Property property3) |
26 |
| - => TelemetryScope.Null; |
27 |
| - |
28 |
| - public TelemetryScope BeginBlock(string name, Severity severity, TimeSpan minTimeToReport, params ReadOnlySpan<Property> properties) |
29 |
| - => TelemetryScope.Null; |
30 |
| - |
31 |
| - public void ReportEvent(string name, Severity severity) |
32 |
| - { |
33 |
| - } |
| 16 | + private TelemetryReporterWrapper? _reporter; |
34 | 17 |
|
35 |
| - public void ReportEvent(string name, Severity severity, Property property) |
36 |
| - { |
37 |
| - } |
38 |
| - |
39 |
| - public void ReportEvent(string name, Severity severity, Property property1, Property property2) |
40 |
| - { |
41 |
| - } |
| 18 | + public override bool IsEnabled => true; |
42 | 19 |
|
43 |
| - public void ReportEvent(string name, Severity severity, Property property1, Property property2, Property property3) |
| 20 | + internal void SetTelemetryReporter(TelemetryReporterWrapper reporter) |
44 | 21 | {
|
| 22 | + _reporter = reporter; |
45 | 23 | }
|
46 | 24 |
|
47 |
| - public void ReportEvent(string name, Severity severity, params ReadOnlySpan<Property> properties) |
48 |
| - { |
49 |
| - } |
| 25 | + // We override any method in the base class that does actual telemetry reporting, and redirect it |
| 26 | + // through our wrapper, to the Roslyn reporter. |
50 | 27 |
|
51 |
| - public void ReportFault(Exception exception, string? message, params object?[] @params) |
| 28 | + protected override void Report(TelemetryEvent telemetryEvent) |
52 | 29 | {
|
| 30 | + _reporter?.Report(telemetryEvent.Name, telemetryEvent.Properties); |
53 | 31 | }
|
54 | 32 |
|
55 |
| - public TelemetryScope TrackLspRequest(string lspMethodName, string lspServerName, TimeSpan minTimeToReport, Guid correlationId) |
56 |
| - => TelemetryScope.Null; |
57 |
| - |
58 |
| - public void ReportRequestTiming(string name, string? language, TimeSpan queuedDuration, TimeSpan requestDuration, TelemetryResult result) |
| 33 | + public override void ReportMetric(AggregatingTelemetryLog.TelemetryInstrumentEvent metricEvent) |
59 | 34 | {
|
| 35 | + _reporter?.Report(metricEvent.Event.Name, metricEvent.Event.Properties); |
60 | 36 | }
|
61 | 37 | }
|
0 commit comments