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

Commit ef79f0e

Browse files
authored
[Package Signing] Add telemetry to Validate Certificate (#337)
1 parent 15cc88c commit ef79f0e

4 files changed

Lines changed: 50 additions & 7 deletions

File tree

src/Validation.PackageSigning.ValidateCertificate/CertificateValidationService.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using System.Data.Entity;
77
using System.Data.Entity.Infrastructure;
88
using System.Linq;
9-
using System.Security.Cryptography.X509Certificates;
109
using System.Threading.Tasks;
1110
using Microsoft.Extensions.Logging;
1211
using NuGet.Jobs.Validation.PackageSigning.Messages;

src/Validation.PackageSigning.ValidateCertificate/Job.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Threading.Tasks;
77
using Autofac;
88
using Autofac.Extensions.DependencyInjection;
9+
using Microsoft.ApplicationInsights;
910
using Microsoft.Extensions.Configuration;
1011
using Microsoft.Extensions.DependencyInjection;
1112
using Microsoft.Extensions.Logging;
@@ -151,6 +152,7 @@ private void ConfigureJobServices(IServiceCollection services, IConfigurationRoo
151152
services.AddTransient<ICertificateVerifier, OnlineCertificateVerifier>();
152153
services.AddTransient<ICertificateValidationService, CertificateValidationService>();
153154
services.AddTransient<ITelemetryService, TelemetryService>();
155+
services.AddSingleton(new TelemetryClient());
154156
}
155157

156158
private static IServiceProvider CreateProvider(IServiceCollection services)

src/Validation.PackageSigning.ValidateCertificate/TelemetryService.cs

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,67 @@
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

44
using System;
5+
using System.Collections.Generic;
6+
using Microsoft.ApplicationInsights;
57
using NuGet.Services.Validation;
68

79
namespace Validation.PackageSigning.ValidateCertificate
810
{
911
public class TelemetryService : ITelemetryService
1012
{
13+
private const string PackageSignatureMayBeInvalidated = "PackageSignatureMayBeInvalidated";
14+
private const string PackageSignatureShouldBeInvalidated = "PackageSignatureShouldBeInvalidated";
15+
private const string UnableToValidateCertificate = "UnableToValidateCertificate";
16+
17+
private const string PackageId = "PackageId";
18+
private const string PackageNormalizedVersion = "PackageNormalizedVersion";
19+
private const string PackageSignatureId = "PackageSignatureId";
20+
private const string CertificateId = "CertificateId";
21+
private const string CertificateThumbprint = "CertificateThumbprint";
22+
23+
private readonly TelemetryClient _telemetryClient;
24+
25+
public TelemetryService(TelemetryClient telemetryClient)
26+
{
27+
_telemetryClient = telemetryClient ?? throw new ArgumentNullException(nameof(telemetryClient));
28+
}
29+
1130
public void TrackPackageSignatureMayBeInvalidatedEvent(PackageSignature signature)
1231
{
13-
// TODO
14-
throw new NotImplementedException();
32+
_telemetryClient.TrackMetric(
33+
PackageSignatureMayBeInvalidated,
34+
1,
35+
new Dictionary<string, string>
36+
{
37+
{ PackageId, signature.PackageSigningState.PackageId },
38+
{ PackageNormalizedVersion, signature.PackageSigningState.PackageNormalizedVersion },
39+
{ PackageSignatureId, signature.Key.ToString() }
40+
});
1541
}
1642

1743
public void TrackPackageSignatureShouldBeInvalidatedEvent(PackageSignature signature)
1844
{
19-
// TODO
20-
throw new NotImplementedException();
45+
_telemetryClient.TrackMetric(
46+
PackageSignatureShouldBeInvalidated,
47+
1,
48+
new Dictionary<string, string>
49+
{
50+
{ PackageId, signature.PackageSigningState.PackageId },
51+
{ PackageNormalizedVersion, signature.PackageSigningState.PackageNormalizedVersion },
52+
{ PackageSignatureId, signature.Key.ToString() }
53+
});
2154
}
2255

2356
public void TrackUnableToValidateCertificateEvent(EndCertificate certificate)
2457
{
25-
// TODO
26-
throw new NotImplementedException();
58+
_telemetryClient.TrackMetric(
59+
PackageSignatureMayBeInvalidated,
60+
1,
61+
new Dictionary<string, string>
62+
{
63+
{ CertificateId, certificate.Key.ToString() },
64+
{ CertificateThumbprint, certificate.Thumbprint }
65+
});
2766
}
2867
}
2968
}

src/Validation.PackageSigning.ValidateCertificate/Validation.PackageSigning.ValidateCertificate.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@
8888
<PackageReference Include="Autofac.Extensions.DependencyInjection">
8989
<Version>4.2.0</Version>
9090
</PackageReference>
91+
<PackageReference Include="Microsoft.ApplicationInsights">
92+
<Version>2.2.0</Version>
93+
</PackageReference>
9194
<PackageReference Include="Microsoft.Extensions.Configuration">
9295
<Version>1.1.2</Version>
9396
</PackageReference>

0 commit comments

Comments
 (0)