Skip to content
This repository was archived by the owner on Jul 30, 2024. It is now read-only.

Commit f1c75c6

Browse files
authored
Updating orchestrator and validator jobs with service bus metrics changes (#478)
* Updated to the latest version of NuGet.Services.* in Orchestrator and ProcessSignature jobs. Updated appropriate telemetry services to implement ISubscriptionProcessorTelemetryService and updated DI settings to enable instantiating proper implementations. * Nuspec update to fix failed test * Updated the missed job. Added MessageType dimension. * Prefixed all validate certificate metrics
1 parent 5dbe2c6 commit f1c75c6

10 files changed

Lines changed: 103 additions & 29 deletions

File tree

src/NuGet.Services.Validation.Orchestrator/Job.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ private void ConfigureJobServices(IServiceCollection services, IConfigurationRoo
274274
services.AddTransient<IMessageService<Package>, PackageMessageService>();
275275
services.AddTransient<ICommonTelemetryService, CommonTelemetryService>();
276276
services.AddTransient<ITelemetryService, TelemetryService>();
277+
services.AddTransient<ISubscriptionProcessorTelemetryService, TelemetryService>();
277278
services.AddTransient<ITelemetryClient, TelemetryClientWrapper>();
278279
services.AddTransient<IDiagnosticsService, LoggerDiagnosticsService>();
279280
services.AddSingleton(new TelemetryClient());

src/NuGet.Services.Validation.Orchestrator/NuGet.Services.Validation.Orchestrator.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,10 @@
122122
<Version>1.2.0</Version>
123123
</PackageReference>
124124
<PackageReference Include="NuGet.Services.Sql">
125-
<Version>2.26.0-master-33196</Version>
125+
<Version>2.26.0-master-34394</Version>
126126
</PackageReference>
127127
<PackageReference Include="NuGet.Services.Validation.Issues">
128-
<Version>2.26.0-master-33196</Version>
128+
<Version>2.26.0-master-34394</Version>
129129
</PackageReference>
130130
</ItemGroup>
131131
<ItemGroup>

src/NuGet.Services.Validation.Orchestrator/Telemetry/TelemetryService.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
using System;
55
using System.Collections.Generic;
66
using NuGet.Services.Logging;
7+
using NuGet.Services.ServiceBus;
78
using NuGetGallery;
89

910
namespace NuGet.Services.Validation.Orchestrator.Telemetry
1011
{
11-
public class TelemetryService : ITelemetryService
12+
public class TelemetryService : ITelemetryService, ISubscriptionProcessorTelemetryService
1213
{
1314
private const string OrchestratorPrefix = "Orchestrator.";
1415
private const string PackageSigningPrefix = "PackageSigning.";
@@ -28,6 +29,8 @@ public class TelemetryService : ITelemetryService
2829
private const string MissingPackageForValidationMessage = OrchestratorPrefix + "MissingPackageForValidationMessage";
2930
private const string MissingNupkgForAvailablePackage = OrchestratorPrefix + "MissingNupkgForAvailablePackage";
3031
private const string DurationToHashPackageSeconds = OrchestratorPrefix + "DurationToHashPackageSeconds";
32+
private const string MessageDeliveryLag = OrchestratorPrefix + "MessageDeliveryLag";
33+
private const string MessageEnqueueLag = OrchestratorPrefix + "MessageEnqueueLag";
3134

3235
private const string DurationToStartPackageSigningValidatorSeconds = PackageSigningPrefix + "DurationToStartSeconds";
3336

@@ -45,6 +48,7 @@ public class TelemetryService : ITelemetryService
4548
private const string PackageSize = "PackageSize";
4649
private const string HashAlgorithm = "HashAlgorithm";
4750
private const string StreamType = "StreamType";
51+
private const string MessageType = "MessageType";
4852

4953
private readonly ITelemetryClient _telemetryClient;
5054

@@ -221,5 +225,23 @@ public IDisposable TrackDurationToStartPackageSigningValidator()
221225

222226
public IDisposable TrackDurationToStartPackageCertificatesValidator()
223227
=> _telemetryClient.TrackDuration(DurationToStartPackageCertificatesValidatorSeconds);
228+
229+
public void TrackMessageDeliveryLag<TMessage>(TimeSpan deliveryLag)
230+
=> _telemetryClient.TrackMetric(
231+
MessageDeliveryLag,
232+
deliveryLag.TotalSeconds,
233+
new Dictionary<string, string>
234+
{
235+
{ MessageType, typeof(TMessage).Name }
236+
});
237+
238+
public void TrackEnqueueLag<TMessage>(TimeSpan enqueueLag)
239+
=> _telemetryClient.TrackMetric(
240+
MessageEnqueueLag,
241+
enqueueLag.TotalSeconds,
242+
new Dictionary<string, string>
243+
{
244+
{ MessageType, typeof(TMessage).Name }
245+
});
224246
}
225247
}

src/Validation.Common.Job/Validation.Common.Job.csproj

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,19 +93,22 @@
9393
<Version>4.8.0-preview4.5289</Version>
9494
</PackageReference>
9595
<PackageReference Include="NuGet.Services.Configuration">
96-
<Version>2.25.0</Version>
96+
<Version>2.26.0-master-34394</Version>
9797
</PackageReference>
9898
<PackageReference Include="NuGet.Services.Logging">
99-
<Version>2.25.0</Version>
99+
<Version>2.26.0-master-34394</Version>
100+
</PackageReference>
101+
<PackageReference Include="NuGet.Services.ServiceBus">
102+
<Version>2.26.0-master-34394</Version>
100103
</PackageReference>
101104
<PackageReference Include="NuGet.Services.Sql">
102-
<Version>2.26.0-master-33196</Version>
105+
<Version>2.26.0-master-34394</Version>
103106
</PackageReference>
104107
<PackageReference Include="NuGet.Services.Storage">
105-
<Version>2.25.0</Version>
108+
<Version>2.26.0-master-34394</Version>
106109
</PackageReference>
107110
<PackageReference Include="NuGet.Services.Validation">
108-
<Version>2.26.0-master-33404</Version>
111+
<Version>2.26.0-master-34394</Version>
109112
</PackageReference>
110113
<PackageReference Include="NuGetGallery.Core">
111114
<Version>4.4.5-dev-34153</Version>

src/Validation.Common.Job/Validation.Common.Job.nuspec

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,22 @@
99
<description>NuGet.Services.Validation.Common.Job</description>
1010
<copyright>Copyright .NET Foundation</copyright>
1111
<dependencies>
12-
<dependency id="NuGet.Jobs.Common" version="$version$" />
13-
<dependency id="Autofac" version="4.6.2" />
14-
<dependency id="Autofac.Extensions.DependencyInjection" version="4.2.0" />
15-
<dependency id="Microsoft.ApplicationInsights" version="2.2.0" />
16-
<dependency id="Microsoft.Extensions.DependencyInjection" version="1.1.1" />
17-
<dependency id="Microsoft.Extensions.Options.ConfigurationExtensions" version="1.1.2" />
18-
<dependency id="NuGet.Packaging" version="4.8.0-preview4.5289" />
19-
<dependency id="NuGet.Services.Configuration" version="2.25.0" />
20-
<dependency id="NuGet.Services.Logging" version="2.25.0" />
21-
<dependency id="NuGet.Services.Sql" version="2.26.0-master-33196" />
22-
<dependency id="NuGet.Services.Storage" version="2.25.0" />
23-
<dependency id="NuGet.Services.Validation" version="2.26.0-master-33404" />
24-
<dependency id="NuGetGallery.Core" version="4.4.5-dev-34153" />
25-
<dependency id="Serilog" version="2.5.0" />
26-
<dependency id="System.Net.Http" version="4.3.3" />
12+
<dependency id="NuGet.Jobs.Common" version="$version$" />
13+
<dependency id="Autofac" version="4.6.2" />
14+
<dependency id="Autofac.Extensions.DependencyInjection" version="4.2.0" />
15+
<dependency id="Microsoft.ApplicationInsights" version="2.2.0" />
16+
<dependency id="Microsoft.Extensions.DependencyInjection" version="1.1.1" />
17+
<dependency id="Microsoft.Extensions.Options.ConfigurationExtensions" version="1.1.2" />
18+
<dependency id="NuGet.Packaging" version="4.8.0-preview4.5289" />
19+
<dependency id="NuGet.Services.Configuration" version="2.26.0-master-34394" />
20+
<dependency id="NuGet.Services.Logging" version="2.26.0-master-34394" />
21+
<dependency id="NuGet.Services.ServiceBus" version="2.26.0-master-34394" />
22+
<dependency id="NuGet.Services.Sql" version="2.26.0-master-34394" />
23+
<dependency id="NuGet.Services.Storage" version="2.26.0-master-34394" />
24+
<dependency id="NuGet.Services.Validation" version="2.26.0-master-34394" />
25+
<dependency id="NuGetGallery.Core" version="4.4.5-dev-34153" />
26+
<dependency id="Serilog" version="2.5.0" />
27+
<dependency id="System.Net.Http" version="4.3.3" />
2728
</dependencies>
2829
</metadata>
2930
</package>

src/Validation.PackageSigning.ProcessSignature/Job.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ protected override void ConfigureJobServices(IServiceCollection services, IConfi
4141
services.AddTransient<ICorePackageService, CorePackageService>();
4242

4343
services.AddTransient<ITelemetryService, TelemetryService>();
44+
services.AddTransient<ISubscriptionProcessorTelemetryService, TelemetryService>();
4445

4546
services.AddTransient<ICertificateStore>(p =>
4647
{

src/Validation.PackageSigning.ProcessSignature/Telemetry/TelemetryService.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@
55
using System.Collections.Generic;
66
using NuGet.Packaging.Signing;
77
using NuGet.Services.Logging;
8+
using NuGet.Services.ServiceBus;
89

910
namespace NuGet.Jobs.Validation.PackageSigning.Telemetry
1011
{
11-
public class TelemetryService : ITelemetryService
12+
public class TelemetryService : ITelemetryService, ISubscriptionProcessorTelemetryService
1213
{
1314
private const string Prefix = "ProcessSignature.";
1415
private const string StrippedRepositorySignatures = Prefix + "StrippedRepositorySignatures";
1516
private const string DurationToStripRepositorySignaturesSeconds = Prefix + "DurationToStripRepositorySignaturesSeconds";
17+
private const string MessageDeliveryLag = Prefix + "MessageDeliveryLag";
18+
private const string MessageEnqueueLag = Prefix + "MessageEnqueueLag";
1619

1720
private const string PackageId = "PackageId";
1821
private const string NormalizedVersion = "NormalizedVersion";
@@ -22,6 +25,7 @@ public class TelemetryService : ITelemetryService
2225
private const string OutputSignatureType = "OutputSignatureType";
2326
private const string OutputCounterSignatureCount = "OutputCounterSignatureCount";
2427
private const string Changed = "Changed";
28+
private const string MessageType = "MessageType";
2529

2630
private readonly ITelemetryClient _telemetryClient;
2731

@@ -78,5 +82,23 @@ public void TrackDurationToStripRepositorySignatures(
7882
duration.TotalSeconds,
7983
properties);
8084
}
85+
86+
public void TrackMessageDeliveryLag<TMessage>(TimeSpan deliveryLag)
87+
=> _telemetryClient.TrackMetric(
88+
MessageDeliveryLag,
89+
deliveryLag.TotalSeconds,
90+
new Dictionary<string, string>
91+
{
92+
{ MessageType, typeof(TMessage).Name }
93+
});
94+
95+
public void TrackEnqueueLag<TMessage>(TimeSpan enqueueLag)
96+
=> _telemetryClient.TrackMetric(
97+
MessageEnqueueLag,
98+
enqueueLag.TotalSeconds,
99+
new Dictionary<string, string>
100+
{
101+
{ MessageType, typeof(TMessage).Name }
102+
});
81103
}
82104
}

src/Validation.PackageSigning.ProcessSignature/Validation.PackageSigning.ProcessSignature.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
</ItemGroup>
8888
<ItemGroup>
8989
<PackageReference Include="NuGet.Services.Sql">
90-
<Version>2.26.0-master-33196</Version>
90+
<Version>2.26.0-master-34394</Version>
9191
</PackageReference>
9292
</ItemGroup>
9393
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

src/Validation.PackageSigning.ValidateCertificate/Job.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ protected override void ConfigureJobServices(IServiceCollection services, IConfi
4242
services.AddTransient<ICertificateVerifier, OnlineCertificateVerifier>();
4343
services.AddTransient<ICertificateValidationService, CertificateValidationService>();
4444
services.AddTransient<ITelemetryService, TelemetryService>();
45+
services.AddTransient<ISubscriptionProcessorTelemetryService, TelemetryService>();
4546
services.AddSingleton(new TelemetryClient());
4647
}
4748

src/Validation.PackageSigning.ValidateCertificate/TelemetryService.cs

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,26 @@
44
using System;
55
using System.Collections.Generic;
66
using Microsoft.ApplicationInsights;
7+
using NuGet.Services.ServiceBus;
78
using NuGet.Services.Validation;
89

910
namespace Validation.PackageSigning.ValidateCertificate
1011
{
11-
public class TelemetryService : ITelemetryService
12+
public class TelemetryService : ITelemetryService, ISubscriptionProcessorTelemetryService
1213
{
13-
private const string PackageSignatureMayBeInvalidated = "PackageSignatureMayBeInvalidated";
14-
private const string PackageSignatureShouldBeInvalidated = "PackageSignatureShouldBeInvalidated";
15-
private const string UnableToValidateCertificate = "UnableToValidateCertificate";
14+
private const string Prefix = "ValidateCertificate.";
15+
private const string PackageSignatureMayBeInvalidated = Prefix + "PackageSignatureMayBeInvalidated";
16+
private const string PackageSignatureShouldBeInvalidated = Prefix + "PackageSignatureShouldBeInvalidated";
17+
private const string UnableToValidateCertificate = Prefix + "UnableToValidateCertificate";
18+
private const string MessageDeliveryLag = Prefix + "MessageDeliveryLag";
19+
private const string MessageEnqueueLag = Prefix + "MessageEnqueueLag";
1620

1721
private const string PackageId = "PackageId";
1822
private const string PackageNormalizedVersion = "PackageNormalizedVersion";
1923
private const string PackageSignatureId = "PackageSignatureId";
2024
private const string CertificateId = "CertificateId";
2125
private const string CertificateThumbprint = "CertificateThumbprint";
26+
private const string MessageType = "MessageType";
2227

2328
private readonly TelemetryClient _telemetryClient;
2429

@@ -64,5 +69,23 @@ public void TrackUnableToValidateCertificateEvent(EndCertificate certificate)
6469
{ CertificateThumbprint, certificate.Thumbprint }
6570
});
6671
}
72+
73+
public void TrackMessageDeliveryLag<TMessage>(TimeSpan deliveryLag)
74+
=> _telemetryClient.TrackMetric(
75+
MessageDeliveryLag,
76+
deliveryLag.TotalSeconds,
77+
new Dictionary<string, string>
78+
{
79+
{ MessageType, typeof(TMessage).Name }
80+
});
81+
82+
public void TrackEnqueueLag<TMessage>(TimeSpan enqueueLag)
83+
=> _telemetryClient.TrackMetric(
84+
MessageEnqueueLag,
85+
enqueueLag.TotalSeconds,
86+
new Dictionary<string, string>
87+
{
88+
{ MessageType, typeof(TMessage).Name }
89+
});
6790
}
6891
}

0 commit comments

Comments
 (0)