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

Commit 7803cdf

Browse files
authored
Merge pull request #683 from NuGet/dev
[ReleasePrep][2018.11.26]RI of dev into master
2 parents 781b094 + e9a40a1 commit 7803cdf

24 files changed

Lines changed: 236 additions & 34 deletions

File tree

src/Gallery.CredentialExpiration/Gallery.CredentialExpiration.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
<Version>9.0.1</Version>
104104
</PackageReference>
105105
<PackageReference Include="NuGet.Services.Messaging.Email">
106-
<Version>2.36.0</Version>
106+
<Version>2.39.0</Version>
107107
</PackageReference>
108108
<PackageReference Include="NuGet.Services.Storage">
109109
<Version>2.1.3</Version>

src/NuGet.Jobs.Common/NuGet.Jobs.Common.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,13 @@
105105
<PrivateAssets>all</PrivateAssets>
106106
</PackageReference>
107107
<PackageReference Include="NuGet.Services.Configuration">
108-
<Version>2.33.0</Version>
108+
<Version>2.39.0</Version>
109109
</PackageReference>
110110
<PackageReference Include="NuGet.Services.Logging">
111-
<Version>2.33.0</Version>
111+
<Version>2.39.0</Version>
112112
</PackageReference>
113113
<PackageReference Include="NuGet.Services.Sql">
114-
<Version>2.33.0</Version>
114+
<Version>2.39.0</Version>
115115
</PackageReference>
116116
<PackageReference Include="System.Net.Http">
117117
<Version>4.3.3</Version>

src/NuGet.Services.Revalidate/NuGet.Services.Revalidate.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123
<PrivateAssets>all</PrivateAssets>
124124
</PackageReference>
125125
<PackageReference Include="NuGet.Services.Status">
126-
<Version>2.33.0</Version>
126+
<Version>2.39.0</Version>
127127
</PackageReference>
128128
</ItemGroup>
129129
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ namespace NuGet.Services.Validation.Orchestrator
4747
{
4848
public class Job : JobBase
4949
{
50+
/// <summary>
51+
/// The maximum number of concurrent connections that can be established to a single server.
52+
/// </summary>
53+
private const int MaximumConnectionsPerServer = 64;
54+
5055
private const string ConfigurationArgument = "Configuration";
5156
private const string ValidateArgument = "Validate";
5257

@@ -93,6 +98,8 @@ public class Job : JobBase
9398

9499
public override void Init(IServiceContainer serviceContainer, IDictionary<string, string> jobArgsDictionary)
95100
{
101+
ServicePointManager.DefaultConnectionLimit = MaximumConnectionsPerServer;
102+
96103
var configurationFilename = JobConfigurationManager.GetArgument(jobArgsDictionary, ConfigurationArgument);
97104
_validateOnly = JobConfigurationManager.TryGetBoolArgument(jobArgsDictionary, ValidateArgument, defaultValue: false);
98105

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@
167167
<PrivateAssets>all</PrivateAssets>
168168
</PackageReference>
169169
<PackageReference Include="NuGet.Services.Messaging.Email">
170-
<Version>2.36.0</Version>
170+
<Version>2.39.0</Version>
171171
</PackageReference>
172172
</ItemGroup>
173173
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Microsoft.Extensions.Options;
88
using NuGet.Services.Entities;
99
using NuGet.Services.Messaging.Email;
10+
using NuGetGallery.Infrastructure.Mail.Messages;
1011

1112
namespace NuGet.Services.Validation.Orchestrator
1213
{

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Microsoft.Extensions.Options;
88
using NuGet.Services.Entities;
99
using NuGet.Services.Messaging.Email;
10+
using NuGetGallery.Infrastructure.Mail.Messages;
1011

1112
namespace NuGet.Services.Validation.Orchestrator
1213
{

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,19 @@ public interface ITelemetryService
1717
/// </summary>
1818
void TrackDurationToValidationSetCreation(TimeSpan duration);
1919

20+
/// <summary>
21+
/// Track how long a package's backup takes.
22+
/// </summary>
23+
/// <param name="validationSet">The validation set that requested the backup.</param>
24+
/// <returns>Reports the duration when disposed.</returns>
25+
IDisposable TrackDurationToBackupPackage(PackageValidationSet validationSet);
26+
2027
/// <summary>
2128
/// A counter metric emitted when a package changes package status. This metric is not emitted if package status
2229
/// does not change. This metric is emitted for revalidation if the terminal state changes.
2330
/// </summary>
2431
/// <param name="fromStatus">The status that the package moved from.</param>
25-
/// <param name="toStatus">The status that the package moved tp.</param>
32+
/// <param name="toStatus">The status that the package moved to.</param>
2633
void TrackPackageStatusChange(PackageStatus fromStatus, PackageStatus toStatus);
2734

2835
/// <summary>

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class TelemetryService : ITelemetryService, ISubscriptionProcessorTelemet
1616
private const string PackageCertificatesPrefix = "PackageCertificates.";
1717

1818
private const string DurationToValidationSetCreationSeconds = OrchestratorPrefix + "DurationToValidationSetCreationSeconds";
19+
private const string DurationToBackupPackageSeconds = OrchestratorPrefix + "DurationToBackupPackageSeconds";
1920
private const string PackageStatusChange = OrchestratorPrefix + "PackageStatusChange";
2021
private const string TotalValidationDurationSeconds = OrchestratorPrefix + "TotalValidationDurationSeconds";
2122
private const string SentValidationTakingTooLongMessage = OrchestratorPrefix + "SentValidationTakingTooLongMessage";
@@ -31,6 +32,8 @@ public class TelemetryService : ITelemetryService, ISubscriptionProcessorTelemet
3132
private const string DurationToHashPackageSeconds = OrchestratorPrefix + "DurationToHashPackageSeconds";
3233
private const string MessageDeliveryLag = OrchestratorPrefix + "MessageDeliveryLag";
3334
private const string MessageEnqueueLag = OrchestratorPrefix + "MessageEnqueueLag";
35+
private const string MessageHandlerDurationSeconds = OrchestratorPrefix + "MessageHandlerDurationSeconds";
36+
private const string MessageLockLost = OrchestratorPrefix + "MessageLockLost";
3437
private const string SymbolsMessageEnqueued = OrchestratorPrefix + "SymbolsMessageEnqueued";
3538

3639
private const string DurationToStartPackageSigningValidatorSeconds = PackageSigningPrefix + "DurationToStartSeconds";
@@ -50,6 +53,8 @@ public class TelemetryService : ITelemetryService, ISubscriptionProcessorTelemet
5053
private const string HashAlgorithm = "HashAlgorithm";
5154
private const string StreamType = "StreamType";
5255
private const string MessageType = "MessageType";
56+
private const string CallGuid = "CallGuid";
57+
private const string Handled = "Handled";
5358
private const string ValidationId = "ValidationId";
5459
private const string OperationDateTime = "OperationDateTime";
5560

@@ -86,6 +91,18 @@ public void TrackDurationToValidationSetCreation(TimeSpan duration)
8691
duration.TotalSeconds);
8792
}
8893

94+
public IDisposable TrackDurationToBackupPackage(PackageValidationSet validationSet)
95+
{
96+
return _telemetryClient.TrackDuration(
97+
DurationToBackupPackageSeconds,
98+
new Dictionary<string, string>
99+
{
100+
{ ValidationTrackingId, validationSet.ValidationTrackingId.ToString() },
101+
{ PackageId, validationSet.PackageId },
102+
{ NormalizedVersion, validationSet.PackageNormalizedVersion }
103+
});
104+
}
105+
89106
public void TrackPackageStatusChange(PackageStatus fromStatus, PackageStatus toStatus)
90107
{
91108
_telemetryClient.TrackMetric(
@@ -238,6 +255,31 @@ public void TrackMessageDeliveryLag<TMessage>(TimeSpan deliveryLag)
238255
{ MessageType, typeof(TMessage).Name }
239256
});
240257

258+
public void TrackMessageHandlerDuration<TMessage>(TimeSpan duration, Guid callGuid, bool handled)
259+
{
260+
_telemetryClient.TrackMetric(
261+
MessageHandlerDurationSeconds,
262+
duration.TotalSeconds,
263+
new Dictionary<string, string>
264+
{
265+
{ MessageType, typeof(TMessage).Name },
266+
{ CallGuid, callGuid.ToString() },
267+
{ Handled, handled.ToString() }
268+
});
269+
}
270+
271+
public void TrackMessageLockLost<TMessage>(Guid callGuid)
272+
{
273+
_telemetryClient.TrackMetric(
274+
MessageLockLost,
275+
1,
276+
new Dictionary<string, string>
277+
{
278+
{ MessageType, typeof(TMessage).Name },
279+
{ CallGuid, callGuid.ToString() }
280+
});
281+
}
282+
241283
public void TrackEnqueueLag<TMessage>(TimeSpan enqueueLag)
242284
=> _telemetryClient.TrackMetric(
243285
MessageEnqueueLag,

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

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,22 @@ public Task CopyValidationPackageForValidationSetAsync(PackageValidationSet vali
118118

119119
public async Task BackupPackageFileFromValidationSetPackageAsync(PackageValidationSet validationSet)
120120
{
121-
_logger.LogInformation(
122-
"Backing up package for validation set {ValidationTrackingId} ({PackageId} {PackageVersion}).",
123-
validationSet.ValidationTrackingId,
124-
validationSet.PackageId,
125-
validationSet.PackageNormalizedVersion);
121+
using (_telemetryService.TrackDurationToBackupPackage(validationSet))
122+
{
123+
_logger.LogInformation(
124+
"Backing up package for validation set {ValidationTrackingId} ({PackageId} {PackageVersion}).",
125+
validationSet.ValidationTrackingId,
126+
validationSet.PackageId,
127+
validationSet.PackageNormalizedVersion);
126128

127-
var packageUri = await GetPackageForValidationSetReadUriAsync(
128-
validationSet,
129-
DateTimeOffset.UtcNow.Add(AccessDuration));
129+
var packageUri = await GetPackageForValidationSetReadUriAsync(
130+
validationSet,
131+
DateTimeOffset.UtcNow.Add(AccessDuration));
130132

131-
using (var packageStream = await _fileDownloader.DownloadAsync(packageUri, CancellationToken.None))
132-
{
133-
await StorePackageFileInBackupLocationAsync(validationSet, packageStream);
133+
using (var packageStream = await _fileDownloader.DownloadAsync(packageUri, CancellationToken.None))
134+
{
135+
await StorePackageFileInBackupLocationAsync(validationSet, packageStream);
136+
}
134137
}
135138
}
136139

0 commit comments

Comments
 (0)