Skip to content

Commit 2afaf67

Browse files
committed
Add KnownOperation telemetry and add more configuration to DI (#7867)
Progress on NuGet/Engineering#3020
1 parent ec483fa commit 2afaf67

14 files changed

Lines changed: 97 additions & 59 deletions

File tree

src/DatabaseMigrationTools/DatabaseMigrationTools.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
<PrivateAssets>all</PrivateAssets>
6565
</PackageReference>
6666
<PackageReference Include="NuGet.Services.Validation">
67-
<Version>2.69.0</Version>
67+
<Version>2.70.0</Version>
6868
</PackageReference>
6969
</ItemGroup>
7070
<ItemGroup>

src/GitHubVulnerabilities2Db/GitHubVulnerabilities2Db.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
<Version>4.3.0-dev-3453620</Version>
9090
</PackageReference>
9191
<PackageReference Include="NuGet.Services.Cursor">
92-
<Version>2.69.0</Version>
92+
<Version>2.70.0</Version>
9393
</PackageReference>
9494
</ItemGroup>
9595
<ItemGroup>

src/NuGetGallery.Core/NuGetGallery.Core.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -242,16 +242,16 @@
242242
</ItemGroup>
243243
<ItemGroup>
244244
<PackageReference Include="NuGet.Services.FeatureFlags">
245-
<Version>2.69.0</Version>
245+
<Version>2.70.0</Version>
246246
</PackageReference>
247247
<PackageReference Include="NuGet.Services.Messaging.Email">
248-
<Version>2.69.0</Version>
248+
<Version>2.70.0</Version>
249249
</PackageReference>
250250
<PackageReference Include="NuGet.Services.Validation">
251-
<Version>2.69.0</Version>
251+
<Version>2.70.0</Version>
252252
</PackageReference>
253253
<PackageReference Include="NuGet.Services.Validation.Issues">
254-
<Version>2.69.0</Version>
254+
<Version>2.70.0</Version>
255255
</PackageReference>
256256
<PackageReference Include="NuGet.StrongName.AnglicanGeek.MarkdownMailer">
257257
<Version>1.2.0</Version>

src/NuGetGallery.Services/Configuration/AppConfiguration.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.ComponentModel;
66
using System.ComponentModel.DataAnnotations;
77
using System.Net.Mail;
8+
using NuGet.Services.Configuration;
89

910
namespace NuGetGallery.Configuration
1011
{

src/NuGetGallery.Services/Configuration/ConfigurationService.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@
66
using System.ComponentModel;
77
using System.ComponentModel.DataAnnotations;
88
using System.Configuration;
9-
using System.Diagnostics;
109
using System.Globalization;
1110
using System.Linq;
1211
using System.Threading.Tasks;
1312
using System.Web;
1413
using System.Web.Configuration;
1514
using Microsoft.WindowsAzure.ServiceRuntime;
15+
using NuGet.Services.Configuration;
1616
using NuGet.Services.KeyVault;
1717

1818
namespace NuGetGallery.Configuration
1919
{
20-
public class ConfigurationService : IGalleryConfigurationService
20+
public class ConfigurationService : IGalleryConfigurationService, IConfigurationFactory
2121
{
2222
protected const string SettingPrefix = "Gallery.";
2323
protected const string FeaturePrefix = "Feature.";
@@ -73,6 +73,21 @@ public string GetSiteRoot(bool useHttps)
7373
return useHttps ? _httpsSiteRootThunk.Value : _httpSiteRootThunk.Value;
7474
}
7575

76+
public Task<T> Get<T>() where T : NuGet.Services.Configuration.Configuration, new()
77+
{
78+
// Get the prefix specified by the ConfigurationKeyPrefixAttribute on the class if it exists.
79+
var classPrefix = string.Empty;
80+
var configNamePrefixProperty = (ConfigurationKeyPrefixAttribute)typeof(T)
81+
.GetCustomAttributes(typeof(ConfigurationKeyPrefixAttribute), inherit: true)
82+
.FirstOrDefault();
83+
if (configNamePrefixProperty != null)
84+
{
85+
classPrefix = configNamePrefixProperty.Prefix;
86+
}
87+
88+
return ResolveConfigObject(Activator.CreateInstance<T>(), classPrefix);
89+
}
90+
7691
public async Task<T> ResolveConfigObject<T>(T instance, string prefix)
7792
{
7893
// Iterate over the properties
@@ -258,4 +273,4 @@ private string GetHttpsSiteRoot()
258273
return "https://" + siteRoot.Substring(7);
259274
}
260275
}
261-
}
276+
}

src/NuGetGallery.Services/Helpers/StringArrayConverter.cs

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/NuGetGallery.Services/NuGetGallery.Services.csproj

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@
143143
<Compile Include="Extensions\UriExtensions.cs" />
144144
<Compile Include="Extensions\UserExtensions.cs" />
145145
<Compile Include="Helpers\MailAddressConverter.cs" />
146-
<Compile Include="Helpers\StringArrayConverter.cs" />
147146
<Compile Include="Helpers\UploadHelper.cs" />
148147
<Compile Include="Models\LuceneIndexLocation.cs" />
149148
<Compile Include="Models\ReportPackageReason.cs" />
@@ -294,11 +293,11 @@
294293
<PackageReference Include="NuGet.Protocol">
295294
<Version>5.0.0-preview1.5665</Version>
296295
</PackageReference>
297-
<PackageReference Include="NuGet.Services.KeyVault">
298-
<Version>2.69.0</Version>
296+
<PackageReference Include="NuGet.Services.Configuration">
297+
<Version>2.70.0</Version>
299298
</PackageReference>
300299
<PackageReference Include="NuGet.Services.Logging">
301-
<Version>2.69.0</Version>
300+
<Version>2.70.0</Version>
302301
</PackageReference>
303302
<PackageReference Include="NuGet.StrongName.WebBackgrounder">
304303
<Version>0.2.0</Version>

src/NuGetGallery/App_Start/DefaultDependenciesModule.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,11 @@
2222
using Elmah;
2323
using Microsoft.ApplicationInsights.Extensibility;
2424
using Microsoft.ApplicationInsights.Extensibility.Implementation;
25-
using Microsoft.AspNet.TelemetryCorrelation;
2625
using Microsoft.Extensions.DependencyInjection;
2726
using Microsoft.Extensions.Http;
2827
using Microsoft.Extensions.Logging;
2928
using Microsoft.WindowsAzure.ServiceRuntime;
30-
using Microsoft.WindowsAzure.Storage;
29+
using NuGet.Services.Configuration;
3130
using NuGet.Services.Entities;
3231
using NuGet.Services.FeatureFlags;
3332
using NuGet.Services.KeyVault;
@@ -108,6 +107,10 @@ protected override void Load(ContainerBuilder builder)
108107
loggerConfiguration,
109108
telemetryConfiguration: applicationInsightsConfiguration.TelemetryConfiguration);
110109

110+
builder.RegisterInstance(applicationInsightsConfiguration.TelemetryConfiguration)
111+
.AsSelf()
112+
.SingleInstance();
113+
111114
builder.RegisterInstance(telemetryClient)
112115
.AsSelf()
113116
.As<ITelemetryClient>()
@@ -126,6 +129,7 @@ protected override void Load(ContainerBuilder builder)
126129

127130
builder.RegisterInstance(configuration)
128131
.AsSelf()
132+
.As<IConfigurationFactory>()
129133
.As<IGalleryConfigurationService>();
130134

131135
builder.Register(c => configuration.Current)
@@ -519,6 +523,7 @@ internal static ApplicationInsightsConfiguration ConfigureApplicationInsights(
519523
}
520524

521525
telemetryConfiguration.TelemetryInitializers.Add(new ClientInformationTelemetryEnricher());
526+
telemetryConfiguration.TelemetryInitializers.Add(new KnownOperationNameEnricher());
522527

523528
// Add processors
524529
telemetryConfiguration.TelemetryProcessorChainBuilder.Use(next =>

src/NuGetGallery/App_Start/Routes.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ public static void RegisterUIRoutes(RouteCollection routes)
223223
"packages/{id}/{version}",
224224
new
225225
{
226-
controller = "packages",
226+
controller = "Packages",
227227
action = "DisplayPackage",
228228
version = UrlParameter.Optional
229229
},

src/NuGetGallery/NuGetGallery.csproj

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -583,6 +583,7 @@
583583
<Compile Include="Services\ValidationService.cs" />
584584
<Compile Include="Telemetry\ClientInformationTelemetryEnricher.cs" />
585585
<Compile Include="Telemetry\ClientTelemetryPIIProcessor.cs" />
586+
<Compile Include="Telemetry\KnownOperationNameEnricher.cs" />
586587
<Compile Include="Telemetry\QuietExceptionLogger.cs" />
587588
<Compile Include="Infrastructure\PasswordValidationAttribute.cs" />
588589
<Compile Include="Migrations\201602181939424_RemovePackageStatistics.cs" />
@@ -2119,9 +2120,6 @@
21192120
<PackageReference Include="Microsoft.Extensions.Http.Polly">
21202121
<Version>2.2.0</Version>
21212122
</PackageReference>
2122-
<PackageReference Include="NuGet.Services.Licenses">
2123-
<Version>2.69.0</Version>
2124-
</PackageReference>
21252123
<PackageReference Include="NuGet.StrongName.AnglicanGeek.MarkdownMailer">
21262124
<Version>1.2.0</Version>
21272125
</PackageReference>
@@ -2298,14 +2296,14 @@
22982296
<PackageReference Include="NuGet.Protocol">
22992297
<Version>5.0.0-preview1.5665</Version>
23002298
</PackageReference>
2301-
<PackageReference Include="NuGet.Services.KeyVault">
2302-
<Version>2.69.0</Version>
2299+
<PackageReference Include="NuGet.Services.Licenses">
2300+
<Version>2.70.0</Version>
23032301
</PackageReference>
23042302
<PackageReference Include="NuGet.Services.Owin">
2305-
<Version>2.69.0</Version>
2303+
<Version>2.70.0</Version>
23062304
</PackageReference>
23072305
<PackageReference Include="NuGet.Services.Sql">
2308-
<Version>2.69.0</Version>
2306+
<Version>2.70.0</Version>
23092307
</PackageReference>
23102308
<PackageReference Include="Owin">
23112309
<Version>1.0.0</Version>

0 commit comments

Comments
 (0)