diff --git a/lib/Microsoft.VisualStudio.Telemetry.dll b/lib/Microsoft.VisualStudio.Telemetry.dll new file mode 100644 index 0000000..9de1cd0 Binary files /dev/null and b/lib/Microsoft.VisualStudio.Telemetry.dll differ diff --git a/src/Package/ExperimentalFeatures.csproj b/src/Package/ExperimentalFeatures.csproj index 19bc281..55fdd1d 100644 --- a/src/Package/ExperimentalFeatures.csproj +++ b/src/Package/ExperimentalFeatures.csproj @@ -88,6 +88,7 @@ + True True @@ -187,6 +188,10 @@ ..\..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll False + + False + ..\..\lib\Microsoft.VisualStudio.Telemetry.dll + ..\..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll False diff --git a/src/Package/ExperimentalFeaturesPackage.cs b/src/Package/ExperimentalFeaturesPackage.cs index f2a861a..32b1244 100644 --- a/src/Package/ExperimentalFeaturesPackage.cs +++ b/src/Package/ExperimentalFeaturesPackage.cs @@ -1,4 +1,5 @@ -using Microsoft.VisualStudio; +using ExperimentalFeatures.Telemetry; +using Microsoft.VisualStudio; using Microsoft.VisualStudio.ExtensionManager; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; @@ -48,6 +49,7 @@ protected override async Tasks.Task InitializeAsync(CancellationToken cancellati bool hasUpdates = await Installer.CheckForUpdatesAsync(); + PackageTelemetry.TelemetrySession.PackageLoaded(); #if !DEBUG if (!hasUpdates) return; diff --git a/src/Package/Telemetry/PackageTelemetry.cs b/src/Package/Telemetry/PackageTelemetry.cs new file mode 100644 index 0000000..dc2c0bf --- /dev/null +++ b/src/Package/Telemetry/PackageTelemetry.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.VisualStudio.Telemetry; + +namespace ExperimentalFeatures.Telemetry +{ + public class PackageTelemetry + { + public static PackageTelemetry TelemetrySession { get; private set; } + + static PackageTelemetry() + { + TelemetrySession = new PackageTelemetry(); + } + + public PackageTelemetry() + { + + } + + public void PackageLoaded() + { + var telEvent = new TelemetryEvent(TelemetryConstants.PackageLoadedEvent); + this.PostEventToDefaultSession(telEvent); + } + + private void PostEventToDefaultSession(TelemetryEvent vsTelemetryEvent) + { + TelemetryService.DefaultSession.PostEvent(vsTelemetryEvent); + } + + private static class TelemetryConstants + { + public const string ExperimentsEventPrefix = "WebTools/Experiments/"; + + public const string PackageLoadedEvent = ExperimentsEventPrefix + "PackageLoaded"; + } + } +}