From 7bded4748630da6fac781ba9c079ccdca7d4ffd5 Mon Sep 17 00:00:00 2001 From: Adam Ratzman Date: Tue, 20 May 2025 17:16:56 -0400 Subject: [PATCH] Add a counter to Stress app --- .../Stress.TelemetryService/CounterMetrics.cs | 26 +++++++++++++++++++ .../Stress/Stress.TelemetryService/Program.cs | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 playground/Stress/Stress.TelemetryService/CounterMetrics.cs diff --git a/playground/Stress/Stress.TelemetryService/CounterMetrics.cs b/playground/Stress/Stress.TelemetryService/CounterMetrics.cs new file mode 100644 index 00000000000..0229b68c0fb --- /dev/null +++ b/playground/Stress/Stress.TelemetryService/CounterMetrics.cs @@ -0,0 +1,26 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Diagnostics.Metrics; + +namespace Stress.TelemetryService; + +public class CounterMetrics(ILogger logger, IMeterFactory meterFactory) : BackgroundService +{ + protected override async Task ExecuteAsync(CancellationToken cancellationToken) + { + logger.LogInformation("Starting CounterMetrics"); + + var meter = meterFactory.Create("CounterMetrics"); + var counter = meter.CreateCounter( + name: "run.done.new.count", + description: "Count of new done run", + unit: "count"); + + for (var i = 0; i < 1000000; i++) + { + counter.Add(1); + await Task.Delay(20, cancellationToken); + } + } +} diff --git a/playground/Stress/Stress.TelemetryService/Program.cs b/playground/Stress/Stress.TelemetryService/Program.cs index 048e652ac57..cc27fdf3130 100644 --- a/playground/Stress/Stress.TelemetryService/Program.cs +++ b/playground/Stress/Stress.TelemetryService/Program.cs @@ -6,6 +6,7 @@ var builder = Host.CreateApplicationBuilder(args); builder.Services.AddHostedService(); builder.Services.AddHostedService(); +builder.Services.AddHostedService(); builder.AddServiceDefaults(); builder.Logging.SetMinimumLevel(LogLevel.Trace); @@ -14,6 +15,7 @@ .WithMetrics(metrics => { metrics.AddMeter("GaugeMetrics"); + metrics.AddMeter("CounterMetrics"); }); var app = builder.Build();