diff --git a/CHANGELOG.md b/CHANGELOG.md index ddb6d232..4e5b8837 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ project adheres to [Semantic Versioning](http://semver.org/). - Drop support for Node.js versions 16, 18, 20, 21 and 23 - Metric internal storage ('hashMap') changed to a separate object, LabelMap. If you have subclassed the built-in metric types you may need to adjust your code. +- Counter Exemplars now report the value rather than the delta ### Changed diff --git a/lib/counter.js b/lib/counter.js index 5a84c226..b96a021a 100644 --- a/lib/counter.js +++ b/lib/counter.js @@ -42,7 +42,7 @@ class Counter extends Metric { throw new Error('It is not possible to decrease a counter'); } - if (value === null || value === undefined) value = 1; + value = value ?? 1; this.store.validate(labels); this.store.setDelta(labels, value); @@ -68,7 +68,7 @@ class Counter extends Metric { exemplarLabels = this.defaultExemplarLabelSet, } = {}) { this.incWithoutExemplar(labels, value); - this.updateExemplar(labels, exemplarLabels, value); + this.updateExemplar(labels, exemplarLabels, this.store.get(labels)); } updateExemplar(labels, exemplarLabels, value) { diff --git a/test/exemplarsTest.js b/test/exemplarsTest.js index f573d810..e2c6ee71 100644 --- a/test/exemplarsTest.js +++ b/test/exemplarsTest.js @@ -33,8 +33,11 @@ describe('Exemplars', () => { labelNames: ['method', 'code'], enableExemplars: true, }); + + counterInstance.inc({ + labels: { method: 'get', code: '200' }, + }); // 1 counterInstance.inc({ - value: 2, labels: { method: 'get', code: '200' }, exemplarLabels: { traceId: 'trace_id_test', spanId: 'span_id_test' }, });