Prometheus Net.DotNetRuntime Versions Save

Exposes .NET core runtime metrics (GC, JIT, lock contention, thread pool) using the prometheus-net package

4.4.0

1 year ago
  • Allow recycling on .NET 6.0
  • Recycling remains defaulted to disabled on .NET 6.0
  • Updated README with explanation of recycling

4.3.0

1 year ago
  • Added a .net 6.0 targeted version of the package

4.2.3

2 years ago

4.2.0

2 years ago
  • Adds ability to track basic socket-level statistics via event counters
  • Fixes issue that required too high version of Microsoft.Extensions.DependencyInjection

For more info, see:

4.1.0

3 years ago

Summary

As new counter and event sources are added to .NET, this library needed a mechanism to determine what events and counters are available for a given runtime version. This version defines a mechanism for describing the minimum required .NET runtime version in order to use a set of events or counters.

New features

  • Added JIT-specific counters when running on .net50

4.0.0

3 years ago

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 EventListeners 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