|
19 | 19 | // SPDX-License-Identifier: Apache-2.0 |
20 | 20 | // |
21 | 21 |
|
22 | | -== Major changes to previous versions |
| 22 | += Release Notes |
| 23 | + |
23 | 24 |
|
24 | 25 | Changes marked with icon:bolt[role="red"] are breaking changes relative to previous versions of the spec. |
25 | 26 |
|
26 | | -* Changes in 2.3 |
| 27 | +[[release_notes_2_3]] |
| 28 | +== Changes in 2.3 |
| 29 | + |
| 30 | +A full list of changes may be found on the link:https://github.com/eclipse/microprofile-metrics/milestone/9[MicroProfile Metrics 2.3 Milestone] |
| 31 | + |
| 32 | +=== API/SPI Changes |
| 33 | +** Introduced the simple timer (`@SimplyTimed`) metric. (https://github.com/eclipse/microprofile-metrics/issues/496[#496]) |
| 34 | +** Added `withOptional*` methods to the `MetadataBuilder`, they don't fail when null values are passed to them (https://github.com/eclipse/microprofile-metrics/issues/464[#464]) |
| 35 | +** Added the `MetricID.getTagsAsArray()` method to the API. (https://github.com/eclipse/microprofile-metrics/issues/457[#457]) |
| 36 | +** Added the method `MetricType.fromClassName` (https://github.com/eclipse/microprofile-metrics/issues/455[#455]) |
| 37 | + |
| 38 | +=== Functional Changes |
27 | 39 | ** Introduced a new base metric derived from RESTful stats into the base scope. |
28 | | -*** `rest.request` : Tracks the total count of requests and total elapsed time spent at the REST endpoint |
29 | | -** Introduced the simple timer (`@SimplyTimed`) metric. |
30 | | -** The API code no longer requires a correctly configured MP Config implementation to be available at runtime, so it is possible to slim down deployments if MP Config is not necessary |
31 | | -** Added ProcessCpuTime as a new optional base metric. |
32 | | -** Added `withOptional*` methods to the `MetadataBuilder`, they don't fail when null values are passed to them |
33 | | -** Added the `MetricID.getTagsAsArray()` method to the API. |
34 | | -** Added the method `MetricType.fromClassName` |
| 40 | +*** `REST.request` : Tracks the total count of requests and total elapsed time spent at the REST endpoint |
| 41 | +** Introduced the simple timer (`@SimplyTimed`) metric. (https://github.com/eclipse/microprofile-metrics/issues/496[#496]) |
| 42 | +** The API code no longer requires a correctly configured MP Config implementation to be available at runtime, so it is possible to slim down deployments if MP Config is not necessary (https://github.com/eclipse/microprofile-metrics/pull/466[#466]) |
| 43 | + |
| 44 | +=== Specification Changes |
| 45 | +** Introduced a new base metric derived from RESTful stats into the base scope. |
| 46 | +*** `REST.request` : Tracks the total count of requests and total elapsed time spent at the REST endpoint |
| 47 | +** Introduced the simple timer (`@SimplyTimed`) metric. (https://github.com/eclipse/microprofile-metrics/issues/496[#496]) |
| 48 | +** Added ProcessCpuTime as a new optional base metric. (https://github.com/eclipse/microprofile-metrics/issues/442[#442]) |
| 49 | + |
| 50 | +=== TCK enhancement |
35 | 51 | ** Improved TCK - Use WebArchive for deployment |
36 | 52 |
|
| 53 | +[[release_notes_2_2]] |
| 54 | +== Changes in 2.2 |
| 55 | + |
| 56 | +A full list of changes may be found on the link:https://github.com/eclipse/microprofile-metrics/milestone/12[MicroProfile Metrics 2.2.1 Milestone] |
| 57 | + |
| 58 | +=== API/SPI Changes |
| 59 | +** Reverted a problematic change from 2.1 where Gauges were required to return subclasses of `java.lang.Number` |
37 | 60 |
|
| 61 | +=== Functional Changes |
| 62 | +** Reverted a problematic change from 2.1 where Gauges were required to return subclasses of `java.lang.Number` |
| 63 | +** (2.2.1) Added ProcessCpuTime as a new optional base metric. (https://github.com/eclipse/microprofile-metrics/issues/480[#480]) |
38 | 64 |
|
39 | | -* Changes in 2.2 |
40 | | -** Reverted a problematic change from 2.1 where Gauges were required to return subclasses of `java.lang.Number` |
| 65 | +=== Specification Changes |
| 66 | +** (2.2.1) Added ProcessCpuTime as a new optional base metric. (https://github.com/eclipse/microprofile-metrics/issues/480[#480]) |
41 | 67 |
|
42 | | -* Changes in 2.1 |
43 | | -** (2.1.1) Added ProcessCpuTime as a new optional base metric. |
44 | | -** Clarified that metric registry implementations are required to be thread-safe. |
45 | | -** Clarified in the API code that Gauges must return values that extend `java.lang.Number`. [NOTE: this caused issues with backward compatibility and was reverted in 2.2] |
46 | | -** Clarified that implementations can, for JSON export of scopes containing no metrics, omit them, or that they can be present with an empty value. |
47 | | -** Clarified that metrics should not be created for private methods when a class is annotated (the TCK asserted this in 2.0 anyway) |
| 68 | + |
| 69 | +[[release_notes_2_1]] |
| 70 | +== Changes in 2.1 |
| 71 | + |
| 72 | +A full list of changes may be found on the link:https://github.com/eclipse/microprofile-metrics/milestone/5[MicroProfile Metrics 2.1 Milestone] and link:https://github.com/eclipse/microprofile-metrics/milestone/11[MicroProfile Metrics 2.1.1 Milestone] |
| 73 | + |
| 74 | +=== API/SPI Changes |
| 75 | +** Clarified in the API code that Gauges must return values that extend `java.lang.Number`. [NOTE: this caused issues with backward compatibility and was reverted in 2.2] (https://github.com/eclipse/microprofile-metrics/issues/304[#304]) |
| 76 | +** Added the `reusable(boolean)` method for MetadataBuilder (https://github.com/eclipse/microprofile-metrics/issues/407[#407]) |
| 77 | + |
| 78 | +=== Functional Changes |
| 79 | +** (2.1.1) Added ProcessCpuTime as a new optional base metric. (https://github.com/eclipse/microprofile-metrics/issues/454[#454]) |
| 80 | +** Clarified in the API code that Gauges must return values that extend `java.lang.Number`. [NOTE: this caused issues with backward compatibility and was reverted in 2.2] (https://github.com/eclipse/microprofile-metrics/issues/304[#304]) |
| 81 | +** Clarified that implementations can, for JSON export of scopes containing no metrics, omit them, or that they can be present with an empty value. (https://github.com/eclipse/microprofile-metrics/issues/416[#416]) |
| 82 | +** Clarified that metrics should not be created for private methods when a class is annotated (the TCK asserted this in 2.0 anyway) (https://github.com/eclipse/microprofile-metrics/issues/416[#416]) |
| 83 | +** Added the `reusable(boolean)` method for MetadataBuilder (https://github.com/eclipse/microprofile-metrics/issues/407[#407]) |
| 84 | + |
| 85 | +=== Specification Changes |
| 86 | +** (2.1.1) Added ProcessCpuTime as a new optional base metric. (https://github.com/eclipse/microprofile-metrics/issues/454[#454]) |
| 87 | +** Clarified that metric registry implementations are required to be thread-safe. (https://github.com/eclipse/microprofile-metrics/issues/300[#300]) |
| 88 | +** Clarified that implementations can, for JSON export of scopes containing no metrics, omit them, or that they can be present with an empty value. (https://github.com/eclipse/microprofile-metrics/issues/416[#416]) |
| 89 | +** Clarified that metrics should not be created for private methods when a class is annotated (the TCK asserted this in 2.0 anyway) (https://github.com/eclipse/microprofile-metrics/issues/416[#416]) |
| 90 | +** Added some text to the specification about programmatic creation of metrics (without annotations) (https://github.com/eclipse/microprofile-metrics/issues/399[#399]) |
| 91 | + |
| 92 | +=== TCK enhancement |
48 | 93 | ** TCKs are updated to use RestAssured 4.0 |
49 | | -** Added the `reusable(boolean)` method for MetadataBuilder |
| 94 | + |
| 95 | +=== Miscellaneous |
50 | 96 | ** Explicitly excluded the transitive dependency on `javax.el-api` from the build of the specification. It wasn't actually used anywhere in the build so there should be no impact. |
51 | | -Implementations can still support the Expression Language if they choose to. |
52 | | -** Added some text to the specification about programmatic creation of metrics (without annotations) |
| 97 | +Implementations can still support the Expression Language if they choose to. (https://github.com/eclipse/microprofile-metrics/issues/417[#417]) |
| 98 | + |
| 99 | +[[release_notes_2_0]] |
| 100 | +== Changes in 2.0 |
53 | 101 |
|
| 102 | +A full list of changes may be found on the link:https://github.com/eclipse/microprofile-metrics/milestone/4[MicroProfile Metrics 2.0 Milestone] and link:https://github.com/eclipse/microprofile-metrics/milestone/7[MicroProfile Metrics 2.0.1 Milestone] and link:https://github.com/eclipse/microprofile-metrics/milestone/8[MicroProfile Metrics 2.0.2 Milestone] |
54 | 103 |
|
55 | | -* Changes in 2.0 |
56 | | -** (2.0.3) Added ProcessCpuTime as a new optional base metric. |
57 | | -** icon:bolt[role="red"] Refactoring of Counters, as the old `@Counted` was misleading in practice. |
| 104 | +=== API/SPI Changes |
| 105 | +** icon:bolt[role="red"] Refactoring of Counters, as the old `@Counted` was misleading in practice. (https://github.com/eclipse/microprofile-metrics/issues/290[#290]) |
58 | 106 | *** Counters via `@Counted` are now always monotonic, the `monotonic` attribute is gone. |
59 | 107 | The `Counted` interface lost the `dec()` methods. |
60 | | -*** Former non-monotonic counters are now <<app-programming-model#ConcurrentGaugeDef,`@ConcurrentGauge`>> and also in the output reported as gauges. |
61 | | -*** See <<appendix#migration-hint-to-20, Migration hints>> about migration of applications using MicroProfile Metrics. |
62 | | -** Removed unnecessary `@InterceptorBinding` annotation from `org.eclipse.microprofile.metrics.annotation.Metric`. |
63 | | -** icon:bolt[role="red"] Removed deprecated `org.eclipse.microprofile.metrics.MetricRegistry.register(String name, Metric, Metadata)` |
64 | | -** icon:bolt[role="red"] `Metadata` is now immutable and built via a <<app-programming-model#pgm-metadata,`MetadataBuilder`>>. |
65 | | -** Introduced a Tag object which represents a singular tag key/value pair. |
66 | | -** icon:bolt[role="red"] Metrics are now uniquely identified by a <<architecture#metricid-data-def,MetricID>> (combination of the metric's name and tags). |
67 | | -** MetricFilter modified to filter with MetricID instead of name |
68 | | -** The 'Metadata' is mapped to a unique metric name in the `MetricRegistry` and this relationship is immutable. |
69 | | -** Tag key names for labels are restricted to match the regex `[a-zA-Z_][a-zA-Z0-9_]*`. |
70 | | -** Tag values defined through MP_METRICS_TAGS must escape equal signs `=` and commas `,` with a backslash `\`. |
| 108 | +*** Former non-monotonic counters are now <<app-programming-model#ConcurrentGaugeDef,`@ConcurrentGauge`>> and also in the output reported as gauges. (https://github.com/eclipse/microprofile-metrics/issues/290[#290]) |
| 109 | +*** See <<appendix#migration-hint-to-20, Migration hints>> about migration of applications using MicroProfile Metrics. (https://github.com/eclipse/microprofile-metrics/issues/290[#290]) |
| 110 | +** Removed unnecessary `@InterceptorBinding` annotation from `org.eclipse.microprofile.metrics.annotation.Metric`. (https://github.com/eclipse/microprofile-metrics/issues/188[#188]) |
| 111 | +** icon:bolt[role="red"] Removed deprecated `org.eclipse.microprofile.metrics.MetricRegistry.register(String name, Metric, Metadata)` (https://github.com/eclipse/microprofile-metrics/issues/268[#268]) |
| 112 | +** icon:bolt[role="red"] `Metadata` is now immutable and built via a <<app-programming-model#pgm-metadata,`MetadataBuilder`>>. (https://github.com/eclipse/microprofile-metrics/issues/228[#228]) |
| 113 | +** Introduced a Tag object which represents a singular tag key/value pair. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 114 | +** MetricFilter modified to filter with MetricID instead of name. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 115 | + |
| 116 | +=== Functional Changes |
| 117 | +** (2.0.3) Added ProcessCpuTime as a new optional base metric. (https://github.com/eclipse/microprofile-metrics/issues/454[#454]) |
| 118 | +** icon:bolt[role="red"] `Metadata` is now immutable and built via a <<app-programming-model#pgm-metadata,`MetadataBuilder`>>. (https://github.com/eclipse/microprofile-metrics/issues/228[#228]) |
| 119 | +** icon:bolt[role="red"] Metrics are now uniquely identified by a <<architecture#metricid-data-def,MetricID>> (combination of the metric's name and tags). (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 120 | +** MetricFilter modified to filter with MetricID instead of name. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 121 | +** The 'Metadata' is mapped to a unique metric name in the `MetricRegistry` and this relationship is immutable. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 122 | +** Tag key names for labels are restricted to match the regex `[a-zA-Z_][a-zA-Z0-9_]*`. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 123 | +** Tag values defined through MP_METRICS_TAGS must escape equal signs `=` and commas `,` with a backslash `\`. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
71 | 124 | ** icon:bolt[role="red"] <<rest-endpoints#json-format-def,JSON output format>> for GET requests now appends tags along with the metric in `metricName;tag=value;tag=value` format. |
72 | 125 | JSON format for OPTIONS requests have been modified such that the 'tags' attribute is a list of nested lists which holds tags from different metrics that |
73 | | - are associated with the metadata. |
| 126 | + are associated with the metadata. (https://github.com/eclipse/microprofile-metrics/issues/331[#381]) |
74 | 127 | ** OpenMetrics format - formerly called Prometheus format |
75 | | -*** Reserved characters in OpenMetrics format must be escaped. |
76 | | -*** icon:bolt[role="red"] In OpenMetrics output format, the separator between scope and metric name is now a `_` instead of a `:`. |
77 | | -*** icon:bolt[role="red"] Metric names with camelCase are no longer converted to snake_case for OpenMetrics output. |
78 | | -** icon:bolt[role="red"] The default value of the `reusable` attribute for metric objects created programmatically (not via annotations) is now `true` |
79 | | -** icon:bolt[role="red"] Some base metrics' names have changed to follow the convention of ending the name of accumulating counters with `total`. |
80 | | -** icon:bolt[role="red"] Some base metrics' types have changed from Counter to Gauge since Counters must now count monotonically. |
| 128 | +*** Reserved characters in OpenMetrics format must be escaped. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 129 | +*** icon:bolt[role="red"] In OpenMetrics output format, the separator between scope and metric name is now a `_` instead of a `:`. (https://github.com/eclipse/microprofile-metrics/issues/279[#279]) |
| 130 | +*** icon:bolt[role="red"] Metric names with camelCase are no longer converted to snake_case for OpenMetrics output. (https://github.com/eclipse/microprofile-metrics/issues/357[#357]) |
| 131 | +** icon:bolt[role="red"] The default value of the `reusable` attribute for metric objects created programmatically (not via annotations) is now `true` (https://github.com/eclipse/microprofile-metrics/issues/328[#328]) |
| 132 | +** icon:bolt[role="red"] Some base metrics' names have changed to follow the convention of ending the name of accumulating counters with `total`. (https://github.com/eclipse/microprofile-metrics/issues/375[#375]) |
| 133 | +** icon:bolt[role="red"] Some base metrics' types have changed from Counter to Gauge since Counters must now count monotonically. (https://github.com/eclipse/microprofile-metrics/issues/375[#375]) |
81 | 134 | ** icon:bolt[role="red"] Some base metrics' names have changed because they now use tags to distinguish metrics for multiple JVM objects. For example, |
82 | | -each existing garbage collector now has its own `gc.total` metric with the name of the garbage collector being in a tag. Names |
83 | | -of some base metrics in the OpenMetrics output are also affected by the removal of conversion from camelCase to snake_case. |
84 | | -** Added a set of recommendations how application servers with multiple deployed applications should behave if they support MP Metrics. |
| 135 | +each existing garbage collector now has its own `gc.total` metric with the name of the garbage collector being in a tag. Names |
| 136 | +of some base metrics in the OpenMetrics output are also affected by the removal of conversion from camelCase to snake_case. (https://github.com/eclipse/microprofile-metrics/issues/375[#375]) |
85 | 137 |
|
86 | | -* Changes in 1.1 |
87 | | -** Improved TCK |
| 138 | +=== Specification Changes |
| 139 | +** (2.0.3) Added ProcessCpuTime as a new optional base metric. (https://github.com/eclipse/microprofile-metrics/issues/454[#454]) |
| 140 | +** icon:bolt[role="red"] Refactoring of Counters, as the old `@Counted` was misleading in practice. (https://github.com/eclipse/microprofile-metrics/issues/290[#290]) |
| 141 | +*** Counters via `@Counted` are now always monotonic, the `monotonic` attribute is gone. |
| 142 | +The `Counted` interface lost the `dec()` methods. |
| 143 | +*** Former non-monotonic counters are now <<app-programming-model#ConcurrentGaugeDef,`@ConcurrentGauge`>> and also in the output reported as gauges. (https://github.com/eclipse/microprofile-metrics/issues/290[#290]) |
| 144 | +*** See <<appendix#migration-hint-to-20, Migration hints>> about migration of applications using MicroProfile Metrics. (https://github.com/eclipse/microprofile-metrics/issues/290[#290]) |
| 145 | +** icon:bolt[role="red"] Metrics are now uniquely identified by a <<architecture#metricid-data-def,MetricID>> (combination of the metric's name and tags). (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 146 | +** The 'Metadata' is mapped to a unique metric name in the `MetricRegistry` and this relationship is immutable. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 147 | +** Tag key names for labels are restricted to match the regex `[a-zA-Z_][a-zA-Z0-9_]*`. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 148 | +** Tag values defined through MP_METRICS_TAGS must escape equal signs `=` and commas `,` with a backslash `\`. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 149 | +** OpenMetrics format - formerly called Prometheus format |
| 150 | +*** Reserved characters in OpenMetrics format must be escaped. (https://github.com/eclipse/microprofile-metrics/issues/238[#238]) |
| 151 | +*** icon:bolt[role="red"] In OpenMetrics output format, the separator between scope and metric name is now a `_` instead of a `:`. (https://github.com/eclipse/microprofile-metrics/issues/279[#279]) |
| 152 | +*** icon:bolt[role="red"] Metric names with camelCase are no longer converted to snake_case for OpenMetrics output. (https://github.com/eclipse/microprofile-metrics/issues/357[#357]) |
| 153 | +** icon:bolt[role="red"] The default value of the `reusable` attribute for metric objects created programmatically (not via annotations) is now `true` (https://github.com/eclipse/microprofile-metrics/issues/328[#328]) |
| 154 | +** icon:bolt[role="red"] Some base metrics' names have changed to follow the convention of ending the name of accumulating counters with `total`. (https://github.com/eclipse/microprofile-metrics/issues/375[#375]) |
| 155 | +** icon:bolt[role="red"] Some base metrics' types have changed from Counter to Gauge since Counters must now count monotonically. (https://github.com/eclipse/microprofile-metrics/issues/375[#375]) |
| 156 | +** icon:bolt[role="red"] Some base metrics' names have changed because they now use tags to distinguish metrics for multiple JVM objects. For example, |
| 157 | +each existing garbage collector now has its own `gc.total` metric with the name of the garbage collector being in a tag. Names |
| 158 | +of some base metrics in the OpenMetrics output are also affected by the removal of conversion from camelCase to snake_case. (https://github.com/eclipse/microprofile-metrics/issues/375[#375]) |
| 159 | +** Added a set of recommendations how application servers with multiple deployed applications should behave if they support MP Metrics. (https://github.com/eclipse/microprofile-metrics/issues/240[#240]) |
| 160 | + |
| 161 | + |
| 162 | +[[release_notes_1_1]] |
| 163 | +== Changes in 1.1 |
| 164 | + |
| 165 | +A full list of changes may be found on the link:https://github.com/eclipse/microprofile-metrics/milestone/1[MicroProfile Metrics 1.1 Milestone] |
| 166 | + |
| 167 | +=== API/SPI Changes |
| 168 | +** `org.eclipse.microprofile.metrics.MetricRegistry.register(String name, Metric, Metadata)` is deprecated. |
| 169 | +Use `org.eclipse.microprofile.metrics.MetricRegistry.register(Metadata, Metric)` instead, where `Metadata` |
| 170 | +already has a field for the name. |
| 171 | + |
| 172 | +=== Functional Changes |
88 | 173 | ** `org.eclipse.microprofile.metrics.MetricRegistry.register(String name, Metric, Metadata)` is deprecated. |
89 | 174 | Use `org.eclipse.microprofile.metrics.MetricRegistry.register(Metadata, Metric)` instead, where `Metadata` |
90 | 175 | already has a field for the name. |
91 | | -** Global tags are now supplied via the means of MicroProfile Config (the env variable is still valid). |
| 176 | +** Global tags are now supplied via the means of MicroProfile Config (the env variable is still valid). (https://github.com/eclipse/microprofile-metrics/issues/165[#165]) |
| 177 | + |
| 178 | +=== Specification Changes |
92 | 179 | ** Annotations and `Metadata` can now have a flag `reusable` that indicates that the metric name can be registered |
93 | 180 | more than once. Default is `false` as in Metrics 1.0. See <<architecture#reusing_metrics>>. |
| 181 | + |
| 182 | +=== TCK enhancement |
| 183 | +** Improved TCK |
0 commit comments