prometheus-net

Форк
0
/
History 
218 строк · 16.7 Кб
1
* 8.2.1
2
- Fix occasional "Collection was modified" exception when serializing metrics. #464
3
* 8.2.0
4
- .WithLabels() & similar now accept ReadOnlyMemory<string> as alternative to string[]. Same behavior, just easier to use if you already have a ReadOnlyMemory<string>.
5
- .WithLabels() & similar now accept ReadOnlySpan<string> as alternative to string[]. This enables allocation-free metric instance creation if a metric instance with these labels is already known.
6
- Incorporated various optimizations to reduce the required CPU time and allocated memory, including #410, #443 and other contributions.
7
- Observation of large histograms is now 10-30% faster on machines that support AVX2 instructions.
8
- health checks exposed via ForwardToPrometheus() no longer create a default metric if a custom metric is provided #444
9
* 8.1.1
10
- Fix bug in .NET Meters API adapter for UpDownCounter, which was incorrectly transformed to Prometheus metrics. #452 and #453
11
* 8.1.0
12
- Add support for capturing HttpClient metrics from all registered HttpClients (`services.UseHttpClientMetrics()`).
13
* 8.0.1
14
- Allow ObservableCounter<T> to be reset. Previously, the MeterAdapter output got stuck on its previous maximum if the underlying Meter reset its value to a lower value. Now we transform the value 1:1.
15
* 8.0.0
16
- Added OpenMetrics exposition format support (#388).
17
- Added exemplar support for Counter and Histogram (#388).
18
- 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.
19
- Publish symbol packages and add Source Link support for easier debugging experience.
20
- Fix defect where metrics with different labels could overwrite each other in specific circumstances with multiple metric factories in use (#389).
21
- Ensure even harder that MetricPusher flushes the final state before stopping (#383 and #384)
22
- Simplify DotNetStats built-in collector code for ease of readability and more best practices (#365, #364)
23
- Slightly improve Counter performance under concurrent load.
24
- Reduce memory allocations performed during ASP.NET Core HTTP request tracking.
25
- 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.
26
- 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).
27
- Added `IManagedLifetimeMetricFactory.WithLabels()` to enable simpler label enrichment in scenarios where lifetime-managed metric instances are used.
28
* 7.1.0
29
- 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).
30
- Added (Observable)UpDownCounter support to MeterAdapter (.NET 7 specific feature).
31
* 7.0.0
32
- .NET Core specific functionality now targeting .NET 6.0 or greater (all previous versions will be end of life by December 2022).
33
- Relaxed the API restriction that forbade you to create multiple metrics with the same name but different label names. While this is a Prometheus anti-pattern, it is a standard pattern in other metrics technologies and we will allow it in the name of interoperability.
34
- Added IMetricFactory.WithLabels() to define static labels per-factory and reduce the effort needed by users when defining static labels in specific scopes.
35
- Added automatic metric expiration feature, to remove timeseries when they are no longer used after a while. This improves interoperability with other metrics technologies such as .NET Meters.
36
- (Breaking change) Rewrite of the MeterAdapter functionality to bridge .NET 6 metrics to Prometheus. API remains equivalent, though options class changed. Output format (what metrics are published) is completely different. Now it translates metric names (instead of putting them in labels) and preserves tags (labels) provided via the .NET Meters API. Added sample project to demonstrate functionality. Ref #359
37
- (Breaking change) Dropped support for .NET Standard 2.0 - now will target specifically .NET 6.0 and .NET Framework 4.6.2. This was already documented before but there was "unofficial" support also for .NET Standard remaining. This is now removed.
38
- (Breaking change) EventCounterAdapter output format changed to translate counters to Prometheus metrics and to improve usability by publishing both counters and gauges from ambiguous event counters.
39
- EventCounterAdapter and MeterAdapter are now enabled on startup by default.
40
- Added some debug metrics to indicate the number of metric families, instances and timeseries being exported by prometheus-net.
41
- Added typical benchmark results to readme for easy reference, and to show relative speed of the simple versus complex instruments.
42
- Removed MetricConfiguration.StaticLabels because it had negative performance impact on many code paths that did not use it. The same functionality can be manually implemented in user code. Static labels remain available on registry and factory level.
43
- When a before-collection metrics update callback throws an exception, it is now logged and ignored instead of breaking all metrics collection.
44
- EventCounterAdapter now defaults to Informational events only, for reduced performance overhead. Can be configured via callback.
45
* 6.0.0
46
- Dropped library support for unsupported .NET runtime versions (.NET 2.1).
47
- If Razor Pages is enabled, the "page" label is now automatically added to the default HTTP server metrics, unless there is a user-defined label already present with this name.
48
- The "endpoint" label is now automatically added to the default HTTP server metrics, containing this endpoint routing route pattern of the request, unless there is a user-defined label already present with this name.
49
- Added integration with .NET EventCounters, which can now be easily exposed as Promtheus metrics (see EventCounterAdapter class).
50
- Added integration with .NET Meters, which can now be easily exposed as Promtheus metrics (see MeterAdapter class).
51
- Added ReplaceOnPush option to MetricPusher #305 #322.
52
- Minimum .NET Framework version is now 4.6.2.
53
* 5.1.0
54
- Add support for adding custom label value providers to HTTP server metrics. #347
55
* 5.0.2
56
- Bugfix: HttpClientMetrics under concurrent load with long-running requests were leading to broken response streams. #336
57
* 5.0.1
58
- Bugfix: PowersOfTenDividedBuckets did not work with >= 10 buckets due to overlap. Now skips overlapping region of generated series.
59
* 5.0.0
60
- Added HTTP client metric that measures the response duration (time until response content reading is finished).
61
- Added "client" label containing the name of HTTP client to HTTP client metrics.
62
- Added "code" label with HTTP response code to HTTP client metrics. #299
63
- HTTP client metrics now count responses when they are completed, not when started, to match with HTTP server metrics. Also renamed metric to httpclient_requests_sent_total since it said "received" previously (due to copy-paste error from HTTP server metrics).
64
- HTTP client metrics are now published via the netstandard package, without requiring ASP.NET Core. #314
65
- Added Counter.IncTo[Current]TimeUtc().
66
* 4.2.0
67
- Added Histogram.PowersOfTenDividedBuckets()
68
- Improved accuracy of histogram bucket calculations to reduce the likelyhood of seeing 0.00000000000000000001 offsets from expected value due to floating point math.
69
- Added ConfigureAwait(false) to MetricHandler to help avoid deadlocks in some rare scenarios. #308
70
- Fix defect where MetricPusher terminated when HttpClient signaled timeout. #302, #293
71
- No longer need to manually reference ASP.NET Core SDK in csproj file when installing prometheus-net.AspNetCore library. It gets automatically referenced now. #267
72
* 4.1.1
73
- Bugfix: HTTP request metrics in 4.1.0 got broken due to typo in middleware helper.
74
* 4.1.0
75
- Fixed HttpClient metrics duration that was incorrectly measured. #265
76
- prometheus-net.NetFramework.AspNet is now strong named, just like all the other assemblies. #273
77
- NetFx target is now conditional for Windows builds only, to allow easier development work on nonwindows platforms. #264
78
- MetricPusher now supports a callback for logging push errors. #186
79
- Added support for defining static labels on registry or metric level. #256
80
- Added ICollectorRegistry and IMetricFactory for mocking in test code. #268
81
- Ignore /metrics URL by default in HTTP request metrics.
82
- Fix overflow in Summary after observing more than uint.MaxValue events. #277
83
- Reduce allocations in hot paths. #276, #275
84
- Added request filtering (authorization) support to standalone MetricServer. #261
85
* 4.0.0
86
- Allow arbitrary ASP.NET Core route parameters to be exposed as HTTP metric labels. #225
87
- Breaking change: some HTTP metrics implementation classes were changed from public to internal. They were never supposed to be public and hopefully nobody ever used them directly. Public documented API did not change.
88
- Add HttpClient metrics with IHttpClientFactory integration.
89
* 3.6.0
90
- Added ASP.NET Core health check publisher for publishing metrics on health check status. #203 #209
91
- Fixed hang in ASP.NET Web API exporter. #215
92
- Fixed ASP.NET Web API exporter exporting metrics from the wrong registry. #217
93
- Reduced memory use in MetricPusher implementation. Inspired by #208
94
- Added basic gRPC service metrics support. #212
95
- Reduce pointless log spam on cancelled scrapes - will silently ignore cancelled scrapes in the ASP.NET Core exporter. #220
96
* 3.5.0
97
- Exposed metric.Unpublish() method since there was already a matching Publish() there.
98
- When the scrape is aborted, stop collecting/serializing metrics. #189
99
- Added simple metric export handler for legacy ASP.NET Web API, to avoid having to deal with HttpListener complexity.
100
* 3.4.0
101
- Separate packaging for ASP.NET Core 3 to reduce package reference management complexity for users. #164
102
- Lazy-initialize the default sample metrics to reduce initialization cost for those who do not need them. #170
103
- ASP.NET Core middlware no longer disposes of output stream. #171
104
- Fix DotNetStats occasional data tearing under parallel collections. #173
105
- Improved wording of some error messages. #169
106
- Added Counter.IncTo(), Gauge.IncTo(), Gauge.DecTo(). #181
107
- Added Gauge.Set(DateTimeOffset) and Gauge.IncTo(DateTimeOffset). #181
108
- Improve .NET Framework 4.6.1 packaging to include the ValueTuple reference automatically. #179
109
- ASP.NET Core HTTP metrics now capture route data before it is overwritten by an exception handler. #177
110
- ASP.NET Core HTTP "in progress" metrics now include controller/action labels (ASP.NET Core 3 only).
111
- Fixed concurrently defect in HTTP metrics that may have caused label values from wrong request to apply. #182
112
- The HttpListener based MetricServer can now handle more than one concurrent request.
113
- Added asynchronous "before collect" callbacks, giving user code more flexibility in metric updates.
114
- Added .Remove() to labeled metric instances for more convenient removal API (previously had to call method on parent instance).
115
- 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.
116
* 3.3.0
117
- Add ability to filter requests by port number when exporting metrics. #160
118
* 3.2.1
119
- Fix NuGet packaging defect that caused reference failures after installing .2.0 on .NET Core 2.1 or newer. #158
120
* 3.2.0
121
- Enable custom HTTP client to be used in MetricPusher, allowing for Basic auth and more flexibility. #125
122
- Add DiagnosticSourceAdapter (.NET Core only). #153
123
- Improved compatibility with older .NET Framework versions. #155
124
* 3.1.4
125
- Fix timezone mismatch in Summary that led to unintended delays in buffer flushing. #149
126
* 3.1.3
127
- Fix regression introduced in 3.1.0 where MetricPusher does not always flush metrics before stopping.
128
* 3.1.2
129
- Fix defect where Histogram batch observations only incremented sum by one value, instead of entire batch. #147
130
* 3.1.1
131
- Added missing UTF-8 charset to Content-Type header, so non-ASCII characters are interpreted correctly by browsers.
132
* 3.1.0
133
- Added ICounter.NewTimer() (adds the value to the counter)
134
- Eliminated some needless allocations when trying to register a metric that is already registered. #134
135
- Added IHistogram.Count and IHistogram.Sum to expose aspects of collected data for inspection.
136
- Added Collector.GetAllLabelValues() to expose the list of child metrics by all their known label values.
137
- Metric export is now asynchronous internally to be compatible with ASP.NET Core 3.0 default configuration.
138
- Added CollectorRegistry.CollectAndExportAsTextAsync() to support metric data export via arbitrary custom endpoints.
139
* 3.0.3
140
- Now backward compatible with ASP.NET Core 2.1 (was 2.2+)
141
* 3.0.2
142
- Fix defect where histogram sum failed to increment.
143
* 3.0.1
144
- Fix ObjectDisposedException in MetricPusher.
145
* 3.0.0
146
- Added HTTP request metrics for ASP.NET Core.
147
- Somewhat more realistic examples in readme.
148
- Metrics exporter is now significantly more CPU and memory-efficient.
149
- Added Observe(value, count) to histogram metric, enabling multiple observations with the same value to be counted.
150
- Added CountExceptions() and MeasureInProgress() helper extensions.
151
- Adjusted API to better conform to Prometheus client library guidelines in terms of default values.
152
- Breaking change: assemblies are now strong-named.
153
- Breaking change: removed "windows" from built-in metric names as they are not Windows-specific.
154
- Breaking change: removed support for protobuf export format (it is no longer used by Prometheus).
155
- Breaking change: API surface cleaned up, removed some legacy methods, made many internal types actually internal.
156
- 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.
157
- 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.
158
* 2.1.3
159
- Fixed wrong case used for metric type in the export data format. Should always be lowercase. #96
160
* 2.1.2
161
- Fixed potential conflict when using pushgateway and also other exporter libraries (see #89)
162
* 2.1.1
163
- Various minor fixes (see issues on GitHub for details).
164
* 2.1.0
165
- Add MetricOptions and subclasses for more extensible API (old API surface remains available)
166
- Add SuppressInitialValue to metric configuration (ref https://www.robustperception.io/existential-issues-with-metrics/)
167
- Add .WithLabels() as alternative to .Labels() for fewer annoying Intellisense conflicts.
168
* 2.0.0
169
- Targeting .NET Standard 2.0 as minimum version (.NET Framework 4.6.1, .NET Core 2.0 and Mono 5.4)
170
- Added ASP.NET Core middlware
171
- Added possibility to signal a failed scrape from on-demand collectors
172
- Removed dependency on Reactive Extensions
173
- Minor breaking changes to API
174
- Performance improvements for hot-path code
175
- Removed mostly obsolete PerfCounterCollector class
176
- Fixed NuGet package contents to remove assemblies from dependencies
177
- Various minor fixes (see issues on GitHub for details)
178
* 1.3.4
179
- Added support for .NET 4.5 using System.Reactive 3.1.1.
180
- .NET 4.0 support continues to target Rx 2.5
181
* 1.2.4:
182
- Fixed MetricPusher not flushing metrics when stopped
183
* 1.2.3:
184
- Fixed label values escaping for ASCII formatter
185
* 1.2.2:
186
- PushGateway support
187
- Various internal improvements (replaced locks with Interlocked operations)
188
* 1.1.4:
189
- Fixed some metrics not updating, added process ID metric
190
- Replaced lock statements in Counter and Gauge with CAS
191
* 1.1.3:
192
- optionally use https in MetricServer
193
* 1.1.2:
194
- using UTF-8 in text formatter
195
- catching exceptions in MetricServer http loop
196
* 1.1.1:
197
- disposing of MetricServer loop on Stop()
198
* 1.1.0:
199
- Renamed some metric names to be in-line with prometheus guidelines (breaking change as far as the exported metrics are concerned)
200
* 1.0.0:
201
- Add CPU, num handles, start time, num threads metrics to dot net stats collector
202
- Made DotNetStatsCollector default (previously it was PerfCounterCollector)
203
* 0.0.11:
204
- Summary metric ported from go
205
* 0.0.10:
206
- Fix header writing order
207
* 0.0.9:
208
- Generalise scraping so it can be called externally without using the embedded http handler
209
* 0.0.8:
210
- Introduced interfaces for all the metrics to make unlabelled collectors and their children polymorph
211
* 0.0.7:
212
- Added the notion of OnDemandCollectors + a DotNetStatsCollector to avoid having to use .net perf counters
213
* 0.0.6:
214
- Do not create unlabelled metric if label names are specified
215
* 0.0.5:
216
- Allow specifying hostname in URL
217
- Fix null ref exception if 'Accept' header is not specified
218
* 0.0.3 - initial version

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.