OpenTelemetry-dotnet: Support for true Delta UpDownCounters & ObservableGauges
abhishek8 opened this issue · comments
ABHISHEK RAJ ANAND commented
Discussed in #5753
Originally posted by abhishek8 July 17, 2024
Hi, I have just started using OpenTelemetry with .NET. I have a use case where I need to log specific data points, such as success and failure counts in the application. To avoid data duplication, I am using Delta temporality preference. While I’ve been successful with regular counters, I’m still encountering duplicate data issues with UpDownCounters and ObservableGauges. Can you fix delta temporality to work properly in case of UpdownCounters and ObservableGauges as well?
Below sample code for the same,
using var meterProvider = Sdk.CreateMeterProviderBuilder()
.AddMeter("MyCompany.MyProduct.MyLibrary")
.AddConsoleExporter((options, readerOptions) =>
{
readerOptions.TemporalityPreference = MetricReaderTemporalityPreference.Delta;
})
.Build();
var abc = new Main();
abc.Execute();
internal class Main
{
private readonly Meter _meter = new("MyCompany.MyProduct.MyLibrary");
public void Execute()
{
Console.WriteLine("Started...");
_meter.CreateCounter<long>("MyFruitCounter_v1")
.Add(3, new("name", "apple"), new("color", "red"), new("uid", "9161"));
_meter.CreateUpDownCounter<long>("MyFruitGauge_v1")
.Add(3, new("name", "apple"), new("color", "red"), new("uid", "9161"));
Console.WriteLine("Logged values!");
while (!Console.KeyAvailable)
{
Thread.Sleep(1000);
}
}
}