v8.0.0 - OpenMetrics, exemplars, performance optimizations and bugfixes
Added OpenMetrics exposition format support (#388).
Added exemplar support for Counter and Histogram (#388).
The ':' character is no longer allowed in metric or label names. For metric names, Prometheus standard practice is to use colon only in recording rules.
Publish symbol packages and add Source Link support for easier debugging experience.
Fix defect where metrics with different labels could overwrite each other in specific circumstances with multiple metric factories in use (#389).
Ensure even harder that MetricPusher flushes the final state before stopping (#383 and #384)
Simplify DotNetStats built-in collector code for ease of readability and more best practices (#365, #364)
Slightly improve Counter performance under concurrent load.
Reduce memory allocations performed during ASP.NET Core HTTP request tracking.
By default, EventCounterAdapter will only listen to a small predefined set of general-purpose useful event sources, to minimize resource consumption in the default configuration. A custom event source filter must now be provided to enable listening for additional event sources.
EventCounterAdapter will only refresh data every 10 seconds by default, to reduce amount of garbage generated in memory (.NET event counters are very noisy and create many temporary objects).
Added IManagedLifetimeMetricFactory.WithLabels() to enable simpler label enrichment in scenarios where lifetime-managed metric instances are used.
Added back .NET Standard 2.0 support as some customers had a hard dependency on .NET Standard 2.0 (despite not being a documented feature even earlier).
Added (Observable)UpDownCounter support to MeterAdapter (.NET 7 specific feature).
Added OpenMetrics exposition format support (#388).
Added exemplar support for Counter and Histogram (#388).
The ':' character is no longer allowed in metric or label names. For metric names, Prometheus standard practice is to use colon only in recording rules.
Publish symbol packages and add Source Link support for easier debugging experience.
Fix defect where metrics with different labels could overwrite each other in specific circumstances with multiple metric factories in use (#389).
Ensure even harder that MetricPusher flushes the final state before stopping (#383 and #384)
Simplify DotNetStats built-in collector code for ease of readability and more best practices (#365, #364)
Slightly improve Counter performance under concurrent load.
Reduce memory allocations performed during ASP.NET Core HTTP request tracking.
By default, EventCounterAdapter will only listen to a small predefined set of general-purpose useful event sources, to minimize resource consumption in the default configuration. A custom event source filter must now be provided to enable listening for additional event sources.
EventCounterAdapter will only refresh data every 10 seconds by default, to reduce amount of garbage generated in memory (.NET event counters are very noisy and create many temporary objects).
Added IManagedLifetimeMetricFactory.WithLabels() to enable simpler label enrichment in scenarios where lifetime-managed metric instances are used.
7.1.0
Added back .NET Standard 2.0 support as some customers had a hard dependency on .NET Standard 2.0 (despite not being a documented feature even earlier).
Added (Observable)UpDownCounter support to MeterAdapter (.NET 7 specific feature).
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps prometheus-net.AspNetCore from 7.0.0 to 8.0.0.
Release notes
Sourced from prometheus-net.AspNetCore's releases.
Changelog
Sourced from prometheus-net.AspNetCore's changelog.
Commits
a055f5b
Disambiguate osme overloads17e7c0f
Add back missing overload of CollectAndExportAsTextAsynca7c1277
MeterAdapter and EventCounterAdapter will only start the default listener onc...c35ac64
Fix timestamp math to use floating point division4f8f59c
We cannot record an exemplar every time we record an exemplar!baa6eb0
Fix bug: Exemplar.None was passed in some overloads when null (==default) was...f61e5d4
User low granularity time source for faster timestamping peformance0424d27
Mark in-parameters as suchafcc03c
Minor speedup by using non-constant-time comparison for exemplar labels2f1b711
Benchmark expansionDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)