Skip to content

Commit 426aace

Browse files
committed
Use explicit System.Diagnostics.DiagnosticSource to get access to Gauge and instrumentation advice
1 parent 06f1bc6 commit 426aace

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

src/Directory.Packages.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
<PackageVersion Include="ReactiveUI.WPF" Version="20.1.63" />
6464
<PackageVersion Include="ServiceControl.Contracts" Version="5.0.0" />
6565
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="8.0.1" />
66+
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.2" />
6667
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="8.0.1" />
6768
<PackageVersion Include="System.DirectoryServices.AccountManagement" Version="8.0.1" />
6869
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
@@ -89,4 +90,4 @@
8990
<GlobalPackageReference Include="Microsoft.Build.CopyOnWrite" Version="1.0.334" />
9091
<GlobalPackageReference Include="Particular.Packaging" Version="4.2.2" />
9192
</ItemGroup>
92-
</Project>
93+
</Project>

src/ServiceControl.Audit/Auditing/Metrics/IngestionMetrics.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ public IngestionMetrics(IMeterFactory meterFactory)
1515
{
1616
var meter = meterFactory.Create(MeterName, MeterVersion);
1717

18-
batchDuration = meter.CreateHistogram<double>(CreateInstrumentName("batch_duration_seconds"), unit: "seconds", "Message batch processing duration in seconds");
19-
ingestionDuration = meter.CreateHistogram<double>(CreateInstrumentName("message_duration_seconds"), unit: "seconds", description: "Audit message processing duration in seconds");
20-
consecutiveBatchFailureGauge = meter.CreateObservableGauge(CreateInstrumentName("consecutive_batch_failure_total"), () => consecutiveBatchFailures, description: "Consecutive audit ingestion batch failure");
18+
var durationBucketsInSeconds = new InstrumentAdvice<double> { HistogramBucketBoundaries = [0.01, 0.05, 0.1, 0.5, 1, 5] };
19+
20+
batchDuration = meter.CreateHistogram(CreateInstrumentName("batch_duration_seconds"), unit: "seconds", "Message batch processing duration in seconds", advice: durationBucketsInSeconds);
21+
ingestionDuration = meter.CreateHistogram(CreateInstrumentName("message_duration_seconds"), unit: "seconds", description: "Audit message processing duration in seconds", advice: durationBucketsInSeconds);
22+
consecutiveBatchFailureGauge = meter.CreateGauge<long>(CreateInstrumentName("consecutive_batch_failure_total"), description: "Consecutive audit ingestion batch failure");
2123
failureCounter = meter.CreateCounter<long>(CreateInstrumentName("failures_total"), description: "Audit ingestion failure count");
2224
}
2325

@@ -53,16 +55,16 @@ void RecordBatchOutcome(bool success)
5355
{
5456
consecutiveBatchFailures++;
5557
}
58+
59+
consecutiveBatchFailureGauge.Record(consecutiveBatchFailures);
5660
}
5761

5862
static string CreateInstrumentName(string instrumentName) => $"sc.audit.ingestion.{instrumentName.ToLower()}";
5963

6064
long consecutiveBatchFailures;
6165

6266
readonly Histogram<double> batchDuration;
63-
#pragma warning disable IDE0052
64-
readonly ObservableGauge<long> consecutiveBatchFailureGauge;
65-
#pragma warning restore IDE0052
67+
readonly Gauge<long> consecutiveBatchFailureGauge;
6668
readonly Histogram<double> ingestionDuration;
6769
readonly Counter<long> failureCounter;
6870

src/ServiceControl.Audit/ServiceControl.Audit.csproj

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,27 @@
3131
<PackageReference Include="NServiceBus.Extensions.Logging" />
3232
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
3333
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
34+
35+
36+
37+
38+
39+
40+
41+
42+
43+
44+
45+
46+
47+
48+
49+
50+
51+
52+
53+
54+
<PackageReference Include="System.Diagnostics.DiagnosticSource" />
3455
</ItemGroup>
3556

3657
<ItemGroup>

0 commit comments

Comments
 (0)