Skip to content

Commit 26a20cd

Browse files
Hash queues for identification between reports (#5335)
* Update package * Calculate name hash for queues * Approve new usage report property * Use SHA256
1 parent 09d768f commit 26a20cd

File tree

3 files changed

+10
-26
lines changed

3 files changed

+10
-26
lines changed

src/Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.0" />
6161
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.0" />
6262
<PackageVersion Include="Particular.Approvals" Version="2.0.1" />
63-
<PackageVersion Include="Particular.LicensingComponent.Report" Version="1.0.0" />
63+
<PackageVersion Include="Particular.LicensingComponent.Report" Version="1.1.1" />
6464
<PackageVersion Include="Particular.Licensing.Sources" Version="6.1.0" />
6565
<PackageVersion Include="Particular.Obsoletes" Version="1.0.0" />
6666
<PackageVersion Include="Particular.ServicePulse.Core" Version="2.6.0" />

src/Particular.LicensingComponent.UnitTests/ApprovalFiles/ThroughputCollector_Report_Throughput_Tests.Should_generate_correct_report.approved.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"Queues": [
1313
{
1414
"QueueName": "REDACTED1",
15+
"NameHash": "66DB6BA4857B08195A497D6FA4BFAAC140B35A0B5925C0845E37AA39DB1A0050",
1516
"Throughput": 65,
1617
"EndpointIndicators": [
1718
"KnownEndpoint"
@@ -41,6 +42,7 @@
4142
},
4243
{
4344
"QueueName": "Endpoint2",
45+
"NameHash": "936C4C33C71B498D9C60C90F78138AF1ECF3C9F72089F054563E125C94B0A224",
4446
"Throughput": 65,
4547
"EndpointIndicators": [
4648
"KnownEndpoint"
@@ -70,6 +72,7 @@
7072
},
7173
{
7274
"QueueName": "Endpoint3",
75+
"NameHash": "8035D54FFAF0523F509245E1556BB1BD18C37B76A2D7DB4C928024B348A13132",
7376
"Throughput": 57,
7477
"EndpointIndicators": [
7578
"KnownEndpoint"
@@ -108,6 +111,7 @@
108111
},
109112
{
110113
"QueueName": "Endpoint4",
114+
"NameHash": "BBF022C092922A8B3A63455FC7583EAF35840E66F01B73AF997EACDCA8ABCEA4",
111115
"Throughput": 47,
112116
"EndpointIndicators": [],
113117
"UserIndicator": "PlannedToDecommission",
@@ -127,6 +131,7 @@
127131
},
128132
{
129133
"QueueName": "Endpoint5",
134+
"NameHash": "435D99844B95C6079607233709D2B6FA8F2EE5E67C187946F4BC476EBB8C9E42",
130135
"Throughput": 15,
131136
"EndpointIndicators": [],
132137
"UserIndicator": "NotNServiceBusEndpoint",

src/Particular.LicensingComponent/ThroughputCollector.cs

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using AuditThroughput;
77
using Contracts;
88
using MonitoringThroughput;
9+
using Particular.LicensingComponent.Report.Utility;
910
using Persistence;
1011
using Report;
1112
using ServiceControl.Transports.BrokerThroughput;
@@ -112,9 +113,8 @@ async Task<ReportGenerationState> GetReportGenerationStateForNonBroker(Cancellat
112113

113114
public async Task<SignedReport> GenerateThroughputReport(string spVersion, DateTime? reportEndDate, CancellationToken cancellationToken)
114115
{
115-
(string Mask, string Replacement)[] masks = [];
116116
var reportMasks = await dataStore.GetReportMasks(cancellationToken);
117-
CreateMasks(reportMasks.ToArray());
117+
var masker = new Masker([.. reportMasks]);
118118

119119
var queueThroughputs = new List<QueueThroughput>();
120120
List<string> ignoredQueueNames = [];
@@ -126,7 +126,8 @@ public async Task<SignedReport> GenerateThroughputReport(string spVersion, DateT
126126
//get all data that we have, including daily values
127127
var queueThroughput = new QueueThroughput
128128
{
129-
QueueName = Mask(endpointData.Name),
129+
NameHash = OneWayHasher.CalculateOneWayHash(endpointData.Name),
130+
QueueName = masker.Mask(endpointData.Name),
130131
UserIndicator = endpointData.UserIndicator,
131132
EndpointIndicators = endpointData.EndpointIndicators ?? [],
132133
NoDataOrSendOnly = endpointData.ThroughputData.Sum() == 0,
@@ -189,28 +190,6 @@ public async Task<SignedReport> GenerateThroughputReport(string spVersion, DateT
189190

190191
var throughputReport = new SignedReport { ReportData = report, Signature = Signature.SignReport(report) };
191192
return throughputReport;
192-
193-
void CreateMasks(string[] wordsToMask)
194-
{
195-
var number = 0;
196-
masks = wordsToMask
197-
.Select(mask =>
198-
{
199-
number++;
200-
return (mask, $"REDACTED{number}");
201-
})
202-
.ToArray();
203-
}
204-
205-
string Mask(string stringToMask)
206-
{
207-
foreach (var (mask, replacement) in masks)
208-
{
209-
stringToMask = stringToMask.Replace(mask, replacement, StringComparison.OrdinalIgnoreCase);
210-
}
211-
212-
return stringToMask;
213-
}
214193
}
215194

216195
async IAsyncEnumerable<EndpointData> GetDistinctEndpointData([EnumeratorCancellation] CancellationToken cancellationToken)

0 commit comments

Comments
 (0)