prometheus-net 3.6.0

.NET client library for the Prometheus monitoring and alerting system

There is a newer prerelease version of this package available.
See the version list below for details.

Requires NuGet 2.8 or higher.

Install-Package prometheus-net -Version 3.6.0
dotnet add package prometheus-net --version 3.6.0
<PackageReference Include="prometheus-net" Version="3.6.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add prometheus-net --version 3.6.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

* 3.6.0
- Added ASP.NET Core health check publisher for publishing metrics on health check status. #203 #209
- Fixed hang in ASP.NET Web API exporter. #215
- Fixed ASP.NET Web API exporter exporting metrics from the wrong registry. #217
- Reduced memory use in MetricPusher implementation. Inspired by #208
- Added basic gRPC service metrics support. #212
- Reduce pointless log spam on cancelled scrapes - will silently ignore cancelled scrapes in the ASP.NET Core exporter. #220
* 3.5.0
- Exposed metric.Unpublish() method since there was already a matching Publish() there.
- When the scrape is aborted, stop collecting/serializing metrics. #189
- Added simple metric export handler for legacy ASP.NET Web API, to avoid having to deal with HttpListener complexity.
* 3.4.0
- Separate packaging for ASP.NET Core 3 to reduce package reference management complexity for users. #164
- Lazy-initialize the default sample metrics to reduce initialization cost for those who do not need them. #170
- ASP.NET Core middlware no longer disposes of output stream. #171
- Fix DotNetStats occasional data tearing under parallel collections. #173
- Improved wording of some error messages. #169
- Added Counter.IncTo(), Gauge.IncTo(), Gauge.DecTo(). #181
- Added Gauge.Set(DateTimeOffset) and Gauge.IncTo(DateTimeOffset). #181
- Improve .NET Framework 4.6.1 packaging to include the ValueTuple reference automatically. #179
- ASP.NET Core HTTP metrics now capture route data before it is overwritten by an exception handler. #177
- ASP.NET Core HTTP "in progress" metrics now include controller/action labels (ASP.NET Core 3 only).
- Fixed concurrently defect in HTTP metrics that may have caused label values from wrong request to apply. #182
- The HttpListener based MetricServer can now handle more than one concurrent request.
- Added asynchronous "before collect" callbacks, giving user code more flexibility in metric updates.
- Added .Remove() to labeled metric instances for more convenient removal API (previously had to call method on parent instance).
- Added .Unpublish() to labeled metric instances to support temporary unpublishing of a metric, without discarding collected data (e.g. histogram buckets), during periods of data unavailability.
* 3.3.0
- Add ability to filter requests by port number when exporting metrics. #160
* 3.2.1
- Fix NuGet packaging defect that caused reference failures after installing .2.0 on .NET Core 2.1 or newer. #158
* 3.2.0
- Enable custom HTTP client to be used in MetricPusher, allowing for Basic auth and more flexibility. #125
- Add DiagnosticSourceAdapter (.NET Core only). #153
- Improved compatibility with older .NET Framework versions. #155
* 3.1.4
- Fix timezone mismatch in Summary that led to unintended delays in buffer flushing. #149
* 3.1.3
- Fix regression introduced in 3.1.0 where MetricPusher does not always flush metrics before stopping.
* 3.1.2
- Fix defect where Histogram batch observations only incremented sum by one value, instead of entire batch. #147
* 3.1.1
- Added missing UTF-8 charset to Content-Type header, so non-ASCII characters are interpreted correctly by browsers.
* 3.1.0
- Added ICounter.NewTimer() (adds the value to the counter)
- Eliminated some needless allocations when trying to register a metric that is already registered. #134
- Added IHistogram.Count and IHistogram.Sum to expose aspects of collected data for inspection.
- Added Collector.GetAllLabelValues() to expose the list of child metrics by all their known label values.
- Metric export is now asynchronous internally to be compatible with ASP.NET Core 3.0 default configuration.
- Added CollectorRegistry.CollectAndExportAsTextAsync() to support metric data export via arbitrary custom endpoints.
* 3.0.3
- Now backward compatible with ASP.NET Core 2.1 (was 2.2+)
* 3.0.2
- Fix defect where histogram sum failed to increment.
* 3.0.1
- Fix ObjectDisposedException in MetricPusher.
* 3.0.0
- Added HTTP request metrics for ASP.NET Core.
- Somewhat more realistic examples in readme.
- Metrics exporter is now significantly more CPU and memory-efficient.
- Added Observe(value, count) to histogram metric, enabling multiple observations with the same value to be counted.
- Added CountExceptions() and MeasureInProgress() helper extensions.
- Adjusted API to better conform to Prometheus client library guidelines in terms of default values.
- Breaking change: assemblies are now strong-named.
- Breaking change: removed "windows" from built-in metric names as they are not Windows-specific.
- Breaking change: removed support for protobuf export format (it is no longer used by Prometheus).
- Breaking change: API surface cleaned up, removed some legacy methods, made many internal types actually internal.
- Breaking change: "on demand collectors" concept replaced with simpler "before collect callbacks". Works the same, just less code needed to use it and fewer possible error conditions.
- Breaking change: removed support for "custom collectors", as this was a very special use case that did not benefit at all from the main functionality of the library. Just generate a Prometheus exporter output document yourself if you need to export arbitrary data.
* 2.1.3
- Fixed wrong case used for metric type in the export data format. Should always be lowercase. #96
* 2.1.2
- Fixed potential conflict when using pushgateway and also other exporter libraries (see #89)
* 2.1.1
- Various minor fixes (see issues on GitHub for details).
* 2.1.0
- Add MetricOptions and subclasses for more extensible API (old API surface remains available)
- Add SuppressInitialValue to metric configuration (ref https://www.robustperception.io/existential-issues-with-metrics/)
- Add .WithLabels() as alternative to .Labels() for fewer annoying Intellisense conflicts.
* 2.0.0
- Targeting .NET Standard 2.0 as minimum version (.NET Framework 4.6.1, .NET Core 2.0 and Mono 5.4)
- Added ASP.NET Core middlware
- Added possibility to signal a failed scrape from on-demand collectors
- Removed dependency on Reactive Extensions
- Minor breaking changes to API
- Performance improvements for hot-path code
- Removed mostly obsolete PerfCounterCollector class
- Fixed NuGet package contents to remove assemblies from dependencies
- Various minor fixes (see issues on GitHub for details)
* 1.3.4
- Added support for .NET 4.5 using System.Reactive 3.1.1.
- .NET 4.0 support continues to target Rx 2.5
* 1.2.4:
- Fixed MetricPusher not flushing metrics when stopped
* 1.2.3:
- Fixed label values escaping for ASCII formatter
* 1.2.2:
- PushGateway support
- Various internal improvements (replaced locks with Interlocked operations)    
* 1.1.4:
- Fixed some metrics not updating, added process ID metric
- Replaced lock statements in Counter and Gauge with CAS
* 1.1.3:
- optionally use https in MetricServer
* 1.1.2:
- using UTF-8 in text formatter
- catching exceptions in MetricServer http loop
* 1.1.1:
- disposing of MetricServer loop on Stop()
* 1.1.0:
- Renamed some metric names to be in-line with prometheus guidelines (breaking change as far as the exported metrics are concerned)
* 1.0.0:
- Add CPU, num handles, start time, num threads metrics to dot net stats collector
- Made DotNetStatsCollector default (previously it was PerfCounterCollector)
* 0.0.11:
- Summary metric ported from go
* 0.0.10:
- Fix header writing order
* 0.0.9:
- Generalise scraping so it can be called externally without using the embedded http handler
* 0.0.8:
- Introduced interfaces for all the metrics to make unlabelled collectors and their children polymorph
* 0.0.7:
- Added the notion of OnDemandCollectors + a DotNetStatsCollector to avoid having to use .net perf counters
* 0.0.6:
- Do not create unlabelled metric if label names are specified
* 0.0.5:
- Allow specifying hostname in URL
- Fix null ref exception if 'Accept' header is not specified
* 0.0.3 - initial version

  • .NETCoreApp 2.1

    • No dependencies.
  • .NETFramework 4.6.1

  • .NETStandard 2.0

    • No dependencies.

NuGet packages (53)

Showing the top 5 NuGet packages that depend on prometheus-net:

Package Downloads
prometheus-net.AspNetCore
ASP.NET Core middleware and stand-alone Kestrel server for exporting metrics to Prometheus
prometheus-net.DotNetRuntime
Exposes .NET core runtime metrics (GC, JIT, lock contention, thread pool) using the prometheus-net package.
Takenet.Iris.Common
Iris common data types package
AspNetCore.HealthChecks.Publisher.Prometheus
[Deprecated! Use pull model with AspNetCore.HealthChecks.Prometheus.Metrics package instead] HealthChecks.Publisher.PrometheusGateway is the health check publisher for Prometheus Gateway.
Hafslund.Telemetry
Common logging/telemetry functionality to used by all services within the Hafslund Nett ecosystem.

GitHub repositories (9)

Showing the top 5 popular GitHub repositories that depend on prometheus-net:

Repository Stars
jellyfin/jellyfin
The Free Software Media System
MassTransit/MassTransit
Distributed Application Framework for .NET
Xabaril/AspNetCore.Diagnostics.HealthChecks
Enterprise HealthChecks for ASP.NET Core Diagnostics Package
Azure/iotedge
The IoT Edge OSS project
space-wizards/RobustToolbox
Client/Server Backend for Space Station 14

Version History

Version Downloads Last updated
4.0.0-pre-000134-2fea549 1,044 7/6/2020
3.6.0 194,940 6/19/2020
3.6.0-pre-000131-673cfe2 110 6/19/2020
3.6.0-pre-000129-bd91778 1,230 6/16/2020
3.5.0 842,717 3/9/2020
3.5.0-pre-000099-ee2bdbd 4,099 3/9/2020
3.5.0-pre-000098-f9cb93e 3,670 2/9/2020
3.4.0 647,885 12/26/2019
3.4.0-pre-000084-e9d0f37 108 12/26/2019
3.4.0-pre-000082-546478d 461 12/23/2019
3.4.0-pre-000081-1712a44 111 12/23/2019
3.4.0-pre-000079-eff2a83 114 12/22/2019
3.4.0-pre-000078-34a900d 167 12/22/2019
3.4.0-pre-000077-0ace5bd 210 12/20/2019
3.4.0-pre-000067-701dfdc 104 12/19/2019
3.3.1-pre-000052-0842664 897 12/13/2019
3.3.0 1,758,266 10/18/2019
3.3.0-pre-000042-252e89c 123 10/18/2019
3.2.1 159,029 10/2/2019
3.2.1-pre-000036-696f4ab 116 10/2/2019
3.2.0 554 10/1/2019
3.2.0-pre-000035-8d4cf7d 134 10/1/2019
3.2.0-pre-000032-9939133 146 9/25/2019
3.2.0-pre-000028-abe3225 128 9/25/2019
3.2.0-pre-000027-29e0fce 123 9/25/2019
3.1.5-pre-000023-d29ca37 466 9/24/2019
3.1.5-pre-000021-8c7b328 112 9/24/2019
3.1.5-pre-000020-5a2fc50 129 9/24/2019
3.1.4 916,734 6/20/2019
3.1.4-pre-000016-95d0170 169 6/20/2019
3.1.3 180,556 5/30/2019
3.1.3-pre-000009-505a08e 249 5/29/2019
3.1.3-cb-000009-505a08e 165 5/29/2019
3.1.2 367,145 4/27/2019
3.1.2-pre-006681-4f8ce09 3,616 4/23/2019
3.1.1 128,034 4/10/2019
3.1.1-pre-006463-cd3cd18 203 4/10/2019
3.1.0 68,720 3/29/2019
3.1.0-pre-006304-959164e 203 3/27/2019
3.1.0-pre-006267-9aac888 3,109 3/22/2019
3.1.0-pre-006177-d35e0b8 378 3/15/2019
3.0.3 263,628 2/11/2019
3.0.2 6,675 2/7/2019
3.0.1 2,973 2/6/2019
3.0.0 83,030 2/5/2019
3.0.0-pre-005830-d9493da 201 2/4/2019
3.0.0-pre-005828-27b7100 182 2/4/2019
3.0.0-pre-005823-68ad8e2 194 2/4/2019
3.0.0-pre-005803-4289c4a 195 2/1/2019
3.0.0-pre-005801-6f306bc 287 1/31/2019
3.0.0-pre-005800-ec1da05 203 1/31/2019
3.0.0-pre-005795-6aca95b 213 1/30/2019
3.0.0-pre-005647-e277cbe 1,729 1/9/2019
2.1.3 978,341 9/25/2018
2.1.3-pre-005238-380e4ab 254 9/25/2018
2.1.2 25,412 9/6/2018
2.1.2-pre-005131-012bc01 259 9/6/2018
2.1.1-pre-004445-bc00b93 4,326 5/25/2018
2.1.0 292,761 4/13/2018
2.1.0-pre-003985-910fb52 368 4/11/2018
2.1.0-pre-003982-37c9f93 322 4/11/2018
2.0.0 134,765 2/26/2018
2.0.0-pre-003523-49de0a3 1,553 2/22/2018
2.0.0-pre-003112-3de1c34 2,108 2/7/2018
2.0.0-pre-003077-0447c86 1,276 2/5/2018
2.0.0-pre-003054-ffb96c7 416 2/1/2018
2.0.0-pre-003051-6f12a46 544 2/1/2018
2.0.0-pre-003009-4e26344 5,925 1/27/2018
2.0.0-pre-002968-9fcb8aa 556 1/25/2018
1.3.6-rc 20,014 5/5/2017
1.3.5 61,962 3/18/2017
1.3.4 4,354 3/10/2017
1.3.4-beta 499 1/16/2017
1.2.4 6,570 11/9/2016
1.2.3 655 10/31/2016
1.2.2.1 15,156 8/20/2016
1.1.4 1,030 7/14/2016
1.1.3 1,284 6/1/2016
1.1.2 526 5/21/2016
1.1.1 573 4/25/2016
1.1.0 687 3/8/2016
0.0.11 678 1/11/2016
0.0.10 477 12/19/2015
0.0.9 509 12/4/2015
0.0.8 453 12/2/2015
0.0.7 446 11/26/2015
0.0.6 462 11/18/2015
0.0.5 767 11/6/2015
0.0.3 644 4/15/2015