diff --git a/packages/opentelemetry-api/src/metrics/Metric.ts b/packages/opentelemetry-api/src/metrics/Metric.ts index 4b02812723e..4023a733939 100644 --- a/packages/opentelemetry-api/src/metrics/Metric.ts +++ b/packages/opentelemetry-api/src/metrics/Metric.ts @@ -110,14 +110,14 @@ export interface Counter extends UnboundMetric { /** * Adds the given value to the current value. Values cannot be negative. */ - add(value: number, labels: Labels): void; + add(value: number, labels?: Labels): void; } export interface Measure extends UnboundMetric { /** * Records the given value to this measure. */ - record(value: number, labels: Labels): void; + record(value: number, labels?: Labels): void; record( value: number, diff --git a/packages/opentelemetry-metrics/src/Metric.ts b/packages/opentelemetry-metrics/src/Metric.ts index 5785fa0374b..9547d210e39 100644 --- a/packages/opentelemetry-metrics/src/Metric.ts +++ b/packages/opentelemetry-metrics/src/Metric.ts @@ -131,10 +131,10 @@ export class CounterMetric extends Metric implements api.Counter { /** * Adds the given value to the current value. Values cannot be negative. * @param value the value to add. - * @param labels key-values pairs that are associated with a specific metric + * @param [labels = {}] key-values pairs that are associated with a specific metric * that you want to record. */ - add(value: number, labels: api.Labels) { + add(value: number, labels: api.Labels = {}) { this.bind(labels).add(value); } } @@ -164,7 +164,7 @@ export class MeasureMetric extends Metric implements api.Measure { ); } - record(value: number, labels: api.Labels) { + record(value: number, labels: api.Labels = {}) { this.bind(labels).record(value); } } diff --git a/packages/opentelemetry-metrics/test/Meter.test.ts b/packages/opentelemetry-metrics/test/Meter.test.ts index e7172f1661e..5826f09a901 100644 --- a/packages/opentelemetry-metrics/test/Meter.test.ts +++ b/packages/opentelemetry-metrics/test/Meter.test.ts @@ -92,6 +92,19 @@ describe('Meter', () => { ); }); + it('should be able to call add with no labels', () => { + const counter = meter.createCounter('name', { + description: 'desc', + unit: '1', + disabled: false, + monotonic: true, + }); + counter.add(1); + meter.collect(); + const [record1] = meter.getBatcher().checkPointSet(); + assert.strictEqual(record1.aggregator.toPoint().value, 1); + }); + it('should pipe through resource', () => { const counter = meter.createCounter('name') as CounterMetric; assert.ok(counter.resource instanceof Resource);