-
Notifications
You must be signed in to change notification settings - Fork 83
V4 #43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Any plan for adding |
|
@WeihanLi I can add those as targets. Out of interest, what benefits do you see from targeting |
|
I had seen the roadmap on event counters, some counters may available only for Some well-known counters I'd seen before, hope it would help on the feature for event counters. @djluck I'd another question that if |
|
@WeihanLi I think the set of available counters is determined by the runtime version that the hosting application is using, not the SDK although I'll be testing this to be sure. |
|
Yeah, thanks for your reply. @djluck |
|
I can see you are actively working on incorporating EventCounters into the mix (among a bunch of other stuff). That's really great! Do you have a sense of the timeline for the 4.0 release? I was just about to fork this and add some stuff for EventCounters, but I really don't want to duplicate work if you are already moving on it. |
|
Hey @pcwiese, progress has been really solid recently, so I'm hoping to have a v4.0 beta available within the next week. |
## Summary A large refactor that aims to make this library far more stable and performant by default. Event counters are now the default source of metrics while more detailed events can be enabled manually when required (see `CaptureLevel`). ## Changes ### Breaking changes - Dropped support for `prometheus-net` v2. - Dropped support for `netcoreapp2.2` - `WithThreadPoolSchedulingStats` has been removed- it was both a performance hog and incorrect (the IDs of the start/stop events were not stable). May consider adding this in a later release as .NET 5.0 should have fixed the stable IDs issue. - `DotNetRuntimeStatsBuilder.Default()` now only uses event counters to generate metrics. JIT metrics will not be collected (there are no JIT-related event counters in .NET core 3.1). Plan to add support for .NET 5.0 in a later release. You can restore more detailed metrics by using `DotNetRuntimeStatsBuilder.Customize()` and passing a custom `CaptureLevel`. - Renamed `dotnet_gc_collection_reasons_total` -> `dotnet_gc_collection_count_total` ## Additions/ enhancements - Added new threadpool metrics: `dotnet_threadpool_throughput_total`, `dotnet_threadpool_queue_length` and `dotnet_threadpool_timer_count` - Added `dotnet_gc_memory_total_available_bytes` to track the total amount of memory .NET can allocate to (this takes into account docker memory limits) - Added ability to configure the source of majority of collectors- can either be driven solely by event counters (`CaptureLevel.Counters`) or event listeners for more detailed metrics. - Added support for recycling `EventListener`s periodically (`net5.0` only as `netcoreapp3.1` is impacted by dotnet/runtime#49804). - Improved the collection of debugging metrics available - Added documentation around metrics exposed - Added an example `docker-compose` stack that can be used for testing and experimentation ## Fixes - #9 - #10 - #20 - #33 - #35 - #39
Summary
A large refactor that aims to make this library far more stable and performant by default. Event counters are now the default source of metrics while more detailed events can be enabled manually when required (see
CaptureLevel).Changes
Breaking changes
prometheus-netv2.netcoreapp2.2WithThreadPoolSchedulingStatshas been removed- it was both a performance hog and incorrect (the IDs of the start/stop events were not stable). May consider adding this in a later release as .NET 5.0 should have fixed the stable IDs issue.DotNetRuntimeStatsBuilder.Default()now only uses event counters to generate metrics. JIT metrics will not be collected (there are no JIT-related event counters in .NET core 3.1). Plan to add support for .NET 5.0 in a later release. You can restore more detailed metrics by usingDotNetRuntimeStatsBuilder.Customize()and passing a customCaptureLevel.dotnet_gc_collection_reasons_total->dotnet_gc_collection_count_totalAdditions/ enhancements
dotnet_threadpool_throughput_total,dotnet_threadpool_queue_lengthanddotnet_threadpool_timer_countdotnet_gc_memory_total_available_bytesto track the total amount of memory .NET can allocate to (this takes into account docker memory limits)CaptureLevel.Counters) or event listeners for more detailed metrics.EventListeners periodically (net5.0only asnetcoreapp3.1is impacted by Deadlock on EventListeners being enabled/ re-enabled dotnet/runtime#49804).docker-composestack that can be used for testing and experimentationFixes