prometheus-net.DotNetRuntime icon indicating copy to clipboard operation
prometheus-net.DotNetRuntime copied to clipboard

Future of this project

Open djluck opened this issue 4 years ago • 3 comments

I haven't put much work into this project over the past few months due to work commitments but there's a few ideas I have for improvements:

  • Improved sampling (aka toggling noisy event sources on/ off to avoid perf overhead of continuously collecting these events)
  • Extracting the core "event timing" logic into a separate library to enable other metric libraries to expose these metrics
  • Expanded set of metrics collected by looking at other event sources (e.g. Sql commands, ASP.NET core, GRPC, etc.)

@sywhang I'd be interested in learning a bit about the roadmap for telemetry in .NET core if you could spare the time- I'm particularly interested in any future improvements around event collection + filtering and event counters.

djluck avatar Aug 05 '20 21:08 djluck

@djluck I was perusing through this repo and saw this issue had me mentioned, but somehow I didn't get a notification for it...? Anyways sorry for responding to this super late. On a positive side, I'm just getting around starting to work on the metrics story for .NET 6 so this may be a perfect timing for any improvements we can make over in .NET side : )

There are few improvements we're planning on making for .NET 6.

  • Improve performance and scalability of EventPipe: https://github.com/dotnet/runtime/issues/45518

I talked about this in a different issue, but there is currently a scalability issue with EventPipe that impacts the performance of EventListener. This is under active work.

  • Improve in-proc consumption of runtime metrics: https://github.com/dotnet/runtime/issues/45590

This is still under design phase - I'm starting to gather ideas from different people both in/out of Microsoft trying to understand how people are consuming metrics in-proc. The goal is to simplify consumption of metrics published by the runtime/framework libraries using EventCounter. Many of the .NET stack now publish these counters (i.e. System.Net.Http, ASP.NET Core, gRPC).

  • On top of these, we also are planning on adding Metrics API that will integrate with OpenTelemetry metrics spec.

As far as I understand, this library doesn't use the metrics exposed via EventCounters, probably because it doesn't give you the level of depth you're interested in consuming. That's fair, and I think it really just comes down to the perf cost of enabling them.

In addition to that, many of the frameworks you mentioned (Sql commands, ASP.NET Core, gRPC) now publish EventCounters starting from .NET 5.0 so this may be something you might be interested in consuming in the future.

Let me know if you have any questions and I'd be happy to discuss further : )

sywhang avatar Feb 18 '21 19:02 sywhang

Hey @sywhang, thanks for taking the time to provide this writeup- it's really useful 👍

djluck avatar Feb 21 '21 08:02 djluck

HI, are there any updates about this project?

Thank you.

leonids2005 avatar Aug 22 '22 21:08 leonids2005