|
1 | 1 | # CHANGELOG |
2 | 2 |
|
| 3 | +# Upcoming 3.0.0 / 2021-??-?? (not released yet, these are the merged PRs we'll release) |
| 4 | + |
| 5 | +This new major version includes some breaking changes. They should be reasonably easy to |
| 6 | +adapt to, but please read the details below: |
| 7 | + |
| 8 | +## Breaking changes |
| 9 | + |
| 10 | +- [#206](https://github.com/prometheus/client_ruby/pull/206) Include SCRIPT_NAME when |
| 11 | + determining path in Collector: |
| 12 | + When determining the path for a request, Rack::Request prefixes the |
| 13 | + SCRIPT_NAME. This was a problem with our code when using mountable engines, |
| 14 | + where the engine part of the path gets lost. This patch fixes that to include SCRIPT_NAME as part of the path. |
| 15 | + |
| 16 | + **This may be a breaking change**. Labels may change in existing metrics. |
| 17 | + |
| 18 | +- [#209](https://github.com/prometheus/client_ruby/pull/209) Automatically initialize metrics |
| 19 | + without labels. |
| 20 | + Following the [Prometheus Best Practices](https://prometheus.io/docs/practices/instrumentation/#avoid-missing-metrics), |
| 21 | + client libraries are expected to automatically export a 0 value when declaring a metric |
| 22 | + that has no labels. |
| 23 | + We missed this recommendation in the past, and this wasn't happening. Starting from this |
| 24 | + version, all metrics without labels will be immediately exported with `0` value, without |
| 25 | + need for an increment / observation. |
| 26 | + |
| 27 | + **This may be a breaking change**. Depending on your particular metrics, this may |
| 28 | + result in a significant increase to the number of time series being exported. We |
| 29 | + recommend you test this and make sure it doesn't cause problems. |
| 30 | + |
| 31 | +- [#220](https://github.com/prometheus/client_ruby/pull/220) Improvements to PushGateway client: |
| 32 | + - The `job` parameter is now mandatory when instantiating `Prometheus::Client::Push` |
| 33 | + and will raise `ArgumentError` if not specified, or if `nil` or an empty string/object |
| 34 | + are passed. |
| 35 | + - The `Prometheus::Client::Push` initializer now takes keyword arguments. |
| 36 | + - We now correctly handle an empty value for `instance` when generating the path to |
| 37 | + the PushGateway. |
| 38 | + - Fixed URI escaping of spaces in the path to PushGateway. In the past, spaces were |
| 39 | + being encoded as `+` instead of `%20`, which is invalid. |
| 40 | + |
| 41 | + **This is a breaking change if you use Pushgateway**. You will need to update your |
| 42 | + code to pass keyword arguments to the `Prometheus::Client::Push` initializer. |
| 43 | + |
| 44 | + |
| 45 | +# 2.2.0 / 2021-06-?? <-- TODO: update this date when we merge this and cut the new version |
| 46 | + |
| 47 | +## New Features |
| 48 | + |
| 49 | +- [#199](https://github.com/prometheus/client_ruby/pull/199) Add `port` filtering option |
| 50 | + to Exporter middleware. |
| 51 | + You can now specify a `port` when adding `Prometheus::Middleware::Exporter` to your |
| 52 | + middleware chain, and metrics will only be exported if the `/metrics` request comes |
| 53 | + through that port. |
| 54 | + |
| 55 | +- [#222](https://github.com/prometheus/client_ruby/pull/222) Enable configuring `Net::HTTP` |
| 56 | + timeouts for PushGateway calls. |
| 57 | + You can now specify `open_timeout` and `read_timeout` when instantiating |
| 58 | + `Prometheus::Client::Push`, to control these timeouts. |
| 59 | + |
| 60 | +## Code improvements and bug fixes |
| 61 | + |
| 62 | +- [#201](https://github.com/prometheus/client_ruby/pull/201) Make all registry methods |
| 63 | + thread safe. |
| 64 | + |
| 65 | +- [#227](https://github.com/prometheus/client_ruby/pull/227) Fix `with_labels` bug that |
| 66 | + made it completely non-functional, and occasionally resulted in `DirectFileStore` file |
| 67 | + corruption. |
| 68 | + |
| 69 | + |
3 | 70 | # 2.1.0 / 2020-06-29 |
4 | 71 |
|
5 | 72 | ## New Features |
|
0 commit comments