private void EmitRestoreTelemetryEvent(IEnumerable <NuGetProject> projects, RestoreOperationSource source, DateTimeOffset startTime, double duration) { var sortedProjects = projects.OrderBy( project => project.GetMetadata <string>(NuGetProjectMetadataKeys.UniqueName)); var projectIds = sortedProjects.Select( project => project.GetMetadata <string>(NuGetProjectMetadataKeys.ProjectId)).ToArray(); var restoreTelemetryEvent = new RestoreTelemetryEvent( _nuGetProjectContext.OperationId.ToString(), projectIds, source, startTime, _status, _packageCount, _noOpProjectsCount, DateTimeOffset.Now, duration); TelemetryActivity.EmitTelemetryEvent(restoreTelemetryEvent); var sources = _sourceRepositoryProvider.PackageSourceProvider.LoadPackageSources().ToList(); var sourceEvent = SourceTelemetry.GetRestoreSourceSummaryEvent(_nuGetProjectContext.OperationId, sources); TelemetryActivity.EmitTelemetryEvent(sourceEvent); }
private void EmitRestoreTelemetryEvent(IEnumerable <NuGetProject> projects, bool forceRestore, RestoreOperationSource source, DateTimeOffset startTime, double duration, PackageSourceTelemetry.Totals protocolDiagnosticTotals, IntervalTracker intervalTimingTracker) { var sortedProjects = projects.OrderBy( project => project.GetMetadata <string>(NuGetProjectMetadataKeys.UniqueName)); var projectIds = sortedProjects.Select( project => project.GetMetadata <string>(NuGetProjectMetadataKeys.ProjectId)).ToArray(); var restoreTelemetryEvent = new RestoreTelemetryEvent( _nuGetProjectContext.OperationId.ToString(), projectIds, forceRestore, source, startTime, _status, packageCount: _packageCount, noOpProjectsCount: _noOpProjectsCount, upToDateProjectsCount: _upToDateProjectCount, DateTimeOffset.Now, duration, isSolutionLoadRestore: _isSolutionLoadRestore, intervalTimingTracker); TelemetryActivity.EmitTelemetryEvent(restoreTelemetryEvent); var sources = _sourceRepositoryProvider.PackageSourceProvider.LoadPackageSources().ToList(); var sourceEvent = SourceTelemetry.GetRestoreSourceSummaryEvent(_nuGetProjectContext.OperationId, sources, protocolDiagnosticTotals); TelemetryActivity.EmitTelemetryEvent(sourceEvent); }
private void EmitRestoreTelemetryEvent(IEnumerable <NuGetProject> projects, bool forceRestore, RestoreOperationSource source, DateTimeOffset startTime, double duration, PackageSourceTelemetry.Totals protocolDiagnosticTotals, IntervalTracker intervalTimingTracker) { var sortedProjects = projects.OrderBy( project => project.GetMetadata <string>(NuGetProjectMetadataKeys.UniqueName)); var projectIds = sortedProjects.Select( project => project.GetMetadata <string>(NuGetProjectMetadataKeys.ProjectId)).ToArray(); var projectDictionary = sortedProjects .GroupBy(x => x.ProjectStyle) .ToDictionary(x => x.Key, y => y.Count()); var packageSourceMapping = PackageSourceMapping.GetPackageSourceMapping(_settings); bool isPackageSourceMappingEnabled = packageSourceMapping?.IsEnabled ?? false; var restoreTelemetryEvent = new RestoreTelemetryEvent( _nuGetProjectContext.OperationId.ToString(), projectIds, forceRestore, source, startTime, _status, packageCount: _packageCount, noOpProjectsCount: _noOpProjectsCount, upToDateProjectsCount: _upToDateProjectCount, unknownProjectsCount: projectDictionary.GetValueOrDefault(ProjectStyle.Unknown, 0), // appears in DependencyGraphRestoreUtility projectJsonProjectsCount: projectDictionary.GetValueOrDefault(ProjectStyle.ProjectJson, 0), packageReferenceProjectsCount: projectDictionary.GetValueOrDefault(ProjectStyle.PackageReference, 0), legacyPackageReferenceProjectsCount: sortedProjects.Where(x => x.ProjectStyle == ProjectStyle.PackageReference && x is LegacyPackageReferenceProject).Count(), cpsPackageReferenceProjectsCount: sortedProjects.Where(x => x.ProjectStyle == ProjectStyle.PackageReference && x is CpsPackageReferenceProject).Count(), dotnetCliToolProjectsCount: projectDictionary.GetValueOrDefault(ProjectStyle.DotnetCliTool, 0), // appears in DependencyGraphRestoreUtility packagesConfigProjectsCount: projectDictionary.GetValueOrDefault(ProjectStyle.PackagesConfig, 0), DateTimeOffset.Now, duration, _trackingData, intervalTimingTracker, isPackageSourceMappingEnabled); TelemetryActivity.EmitTelemetryEvent(restoreTelemetryEvent); var sources = _sourceRepositoryProvider.PackageSourceProvider.LoadPackageSources().ToList(); var sourceEvent = SourceTelemetry.GetRestoreSourceSummaryEvent(_nuGetProjectContext.OperationId, sources, protocolDiagnosticTotals); TelemetryActivity.EmitTelemetryEvent(sourceEvent); }