public async Task TrackProjectGenAsync(ITemplateInfo template, UserSelectionContext context, TemplateCreationResult result, Guid vsProjectId, GenItemsTelemetryData genItemsTelemetryData = null, double?timeSpent = null, Dictionary <ProjectMetricsEnum, double> performanceCounters = null) { if (template == null) { throw new ArgumentNullException(nameof(template)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } if (template.GetTemplateType() != TemplateType.Project) { return; } GenStatusEnum telemetryStatus = result.Status == CreationResultStatus.Success ? GenStatusEnum.Completed : GenStatusEnum.Error; await TrackProjectAsync(telemetryStatus, template.GetTelemetryName(), context, vsProjectId, genItemsTelemetryData, timeSpent, performanceCounters, result.Status, result.Message); }
private async Task TrackProjectAsync(GenStatusEnum status, string templateName, UserSelectionContext context, Guid vsProjectId, GenItemsTelemetryData genItemsTelemetryData = null, double?timeSpent = null, Dictionary <ProjectMetricsEnum, double> performanceCounters = null, CreationResultStatus genStatus = CreationResultStatus.Success, string message = "") { // TODO: Remove TelemetryProperties.Framework and use TelemetryProperties.FrontendFramework var properties = new Dictionary <string, string>() { { TelemetryProperties.Status, status.ToString() }, { TelemetryProperties.ProjectType, context.ProjectType }, { TelemetryProperties.Framework, context.FrontEndFramework }, { TelemetryProperties.FrontendFramework, context.FrontEndFramework }, { TelemetryProperties.BackendFramework, context.BackEndFramework }, { TelemetryProperties.TemplateName, templateName }, { TelemetryProperties.GenEngineStatus, genStatus.ToString() }, { TelemetryProperties.GenEngineMessage, message }, { TelemetryProperties.EventName, TelemetryEvents.ProjectGen }, { TelemetryProperties.Language, context.Language }, { TelemetryProperties.VisualStudioActiveProjectGuid, vsProjectId.ToString() }, { TelemetryProperties.VsProjectCategory, context.Platform }, }; AddPropertiesFromPropertyBag(context, properties); var metrics = new Dictionary <string, double>(); if (genItemsTelemetryData.PagesCount.HasValue) { metrics.Add(TelemetryMetrics.PagesCount, genItemsTelemetryData.PagesCount.Value); } if (genItemsTelemetryData.FeaturesCount.HasValue) { metrics.Add(TelemetryMetrics.FeaturesCount, genItemsTelemetryData.FeaturesCount.Value); } if (genItemsTelemetryData.ServicesCount.HasValue) { metrics.Add(TelemetryMetrics.ServicesCount, genItemsTelemetryData.ServicesCount.Value); } if (genItemsTelemetryData.TestingCount.HasValue) { metrics.Add(TelemetryMetrics.TestingCount, genItemsTelemetryData.TestingCount.Value); } if (timeSpent.HasValue) { metrics.Add(TelemetryMetrics.TimeSpent, timeSpent.Value); } if (performanceCounters != null) { foreach (var perfCounter in performanceCounters) { metrics.Add(TelemetryMetrics.ProjectMetricsTimeSpent + perfCounter.Key.ToString(), perfCounter.Value); } } GenContext.ToolBox.Shell.SafeTrackProjectVsTelemetry(properties, genItemsTelemetryData.PageIdentities, genItemsTelemetryData.FeatureIdentities, genItemsTelemetryData.ServiceIdentities, genItemsTelemetryData.TestingIdentities, metrics, status == GenStatusEnum.Completed); await TelemetryService.Current.TrackEventAsync(TelemetryEvents.ProjectGen, properties, metrics).ConfigureAwait(false); }
private async Task TrackProjectAsync(GenStatusEnum status, string templateName, string appType, string appFx, string appPlatform, Guid vsProjectId, string language, GenItemsTelemetryData genItemsTelemetryData = null, double?timeSpent = null, Dictionary <ProjectMetricsEnum, double> performanceCounters = null, CreationResultStatus genStatus = CreationResultStatus.Success, string message = "") { var properties = new Dictionary <string, string>() { { TelemetryProperties.Status, status.ToString() }, { TelemetryProperties.ProjectType, appType }, { TelemetryProperties.Framework, appFx }, { TelemetryProperties.TemplateName, templateName }, { TelemetryProperties.GenEngineStatus, genStatus.ToString() }, { TelemetryProperties.GenEngineMessage, message }, { TelemetryProperties.EventName, TelemetryEvents.ProjectGen }, { TelemetryProperties.Language, language }, { TelemetryProperties.VisualStudioActiveProjectGuid, vsProjectId.ToString() }, { TelemetryProperties.VsProjectCategory, appPlatform }, }; var metrics = new Dictionary <string, double>(); if (genItemsTelemetryData.PagesCount.HasValue) { metrics.Add(TelemetryMetrics.PagesCount, genItemsTelemetryData.PagesCount.Value); } if (genItemsTelemetryData.FeaturesCount.HasValue) { metrics.Add(TelemetryMetrics.FeaturesCount, genItemsTelemetryData.FeaturesCount.Value); } if (timeSpent.HasValue) { metrics.Add(TelemetryMetrics.TimeSpent, timeSpent.Value); } if (performanceCounters != null) { foreach (var perfCounter in performanceCounters) { metrics.Add(TelemetryMetrics.ProjectMetricsTimeSpent + perfCounter.Key.ToString(), perfCounter.Value); } } TelemetryService.Current.SafeTrackProjectVsTelemetry(properties, genItemsTelemetryData.PageIdentities, genItemsTelemetryData.FeatureIdentities, metrics, status == GenStatusEnum.Completed); await TelemetryService.Current.TrackEventAsync(TelemetryEvents.ProjectGen, properties, metrics).ConfigureAwait(false); }
public async Task TrackNewItemAsync(TemplateType templateType, UserSelectionContext context, Guid vsProjectId, GenItemsTelemetryData genItemsTelemetryData = null, double?timeSpent = null, CreationResultStatus genStatus = CreationResultStatus.Success, string message = "") { var itemType = templateType.GetNewItemType(); var itemTypeString = itemType != null?itemType.ToString() : string.Empty; // TODO: Remove TelemetryProperties.Framework and use TelemetryProperties.FrontendFramework var properties = new Dictionary <string, string>() { { TelemetryProperties.ProjectType, context.ProjectType }, { TelemetryProperties.Framework, context.FrontEndFramework }, { TelemetryProperties.FrontendFramework, context.FrontEndFramework }, { TelemetryProperties.BackendFramework, context.BackEndFramework }, { TelemetryProperties.GenEngineStatus, genStatus.ToString() }, { TelemetryProperties.GenEngineMessage, message }, { TelemetryProperties.EventName, TelemetryEvents.NewItemGen }, { TelemetryProperties.VisualStudioActiveProjectGuid, vsProjectId.ToString() }, { TelemetryProperties.Language, context.Language }, { TelemetryProperties.VsProjectCategory, context.Platform }, { TelemetryProperties.NewItemType, itemTypeString }, }; AddPropertiesFromPropertyBag(context, properties); var metrics = new Dictionary <string, double>(); if (genItemsTelemetryData.PagesCount.HasValue) { metrics.Add(TelemetryMetrics.PagesCount, genItemsTelemetryData.PagesCount.Value); } if (timeSpent.HasValue) { metrics.Add(TelemetryMetrics.TimeSpent, timeSpent.Value); } if (genItemsTelemetryData.FeaturesCount.HasValue) { metrics.Add(TelemetryMetrics.FeaturesCount, genItemsTelemetryData.FeaturesCount.Value); } if (genItemsTelemetryData.ServicesCount.HasValue) { metrics.Add(TelemetryMetrics.ServicesCount, genItemsTelemetryData.ServicesCount.Value); } if (genItemsTelemetryData.TestingCount.HasValue) { metrics.Add(TelemetryMetrics.TestingCount, genItemsTelemetryData.TestingCount.Value); } GenContext.ToolBox.Shell.SafeTrackNewItemVsTelemetry(properties, genItemsTelemetryData.PageIdentities, genItemsTelemetryData.FeatureIdentities, genItemsTelemetryData.ServiceIdentities, genItemsTelemetryData.TestingIdentities, metrics); await TelemetryService.Current.TrackEventAsync(TelemetryEvents.NewItemGen, properties, metrics).ConfigureAwait(false); }
public async Task TrackNewItemAsync(TemplateType templateType, string appType, string appFx, string appPlatform, Guid vsProjectId, GenItemsTelemetryData genItemsTelemetryData = null, double?timeSpent = null, CreationResultStatus genStatus = CreationResultStatus.Success, string message = "") { var newItemType = templateType == TemplateType.Page ? NewItemType.Page : NewItemType.Feature; var properties = new Dictionary <string, string>() { { TelemetryProperties.ProjectType, appType }, { TelemetryProperties.Framework, appFx }, { TelemetryProperties.GenEngineStatus, genStatus.ToString() }, { TelemetryProperties.GenEngineMessage, message }, { TelemetryProperties.EventName, TelemetryEvents.NewItemGen }, { TelemetryProperties.VisualStudioActiveProjectGuid, vsProjectId.ToString() }, { TelemetryProperties.VsProjectCategory, appPlatform }, { TelemetryProperties.NewItemType, newItemType.ToString() }, }; var metrics = new Dictionary <string, double>(); if (genItemsTelemetryData.PagesCount.HasValue) { metrics.Add(TelemetryMetrics.PagesCount, genItemsTelemetryData.PagesCount.Value); } if (timeSpent.HasValue) { metrics.Add(TelemetryMetrics.TimeSpent, timeSpent.Value); } if (genItemsTelemetryData.FeaturesCount.HasValue) { metrics.Add(TelemetryMetrics.FeaturesCount, genItemsTelemetryData.FeaturesCount.Value); } TelemetryService.Current.SafeTrackNewItemVsTelemetry(properties, genItemsTelemetryData.PageIdentities, genItemsTelemetryData.FeatureIdentities, metrics); await TelemetryService.Current.TrackEventAsync(TelemetryEvents.NewItemGen, properties, metrics).ConfigureAwait(false); }