From 2cb9daec428d5e9c902f876d36aa0d1aef5db795 Mon Sep 17 00:00:00 2001 From: Alan Storm Date: Wed, 6 May 2020 17:13:42 -0700 Subject: [PATCH 1/7] Make labels optional for add --- packages/opentelemetry-metrics/src/Metric.ts | 2 +- packages/opentelemetry-metrics/test/Meter.test.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/opentelemetry-metrics/src/Metric.ts b/packages/opentelemetry-metrics/src/Metric.ts index ce9d89df52..a8a4784665 100644 --- a/packages/opentelemetry-metrics/src/Metric.ts +++ b/packages/opentelemetry-metrics/src/Metric.ts @@ -133,7 +133,7 @@ export class CounterMetric extends Metric implements api.Counter { * @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); } } diff --git a/packages/opentelemetry-metrics/test/Meter.test.ts b/packages/opentelemetry-metrics/test/Meter.test.ts index ffa85fe634..ba4058372c 100644 --- a/packages/opentelemetry-metrics/test/Meter.test.ts +++ b/packages/opentelemetry-metrics/test/Meter.test.ts @@ -92,6 +92,19 @@ describe('Meter', () => { ); }); + it('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 return counter with resource', () => { const counter = meter.createCounter('name') as CounterMetric; assert.ok(counter.resource instanceof Resource); From abf279c2b104523d495e99a487052c3461740ff4 Mon Sep 17 00:00:00 2001 From: Alan Storm Date: Wed, 6 May 2020 18:24:58 -0700 Subject: [PATCH 2/7] updating interfaces, and MeasureMetric --- packages/opentelemetry-api/src/metrics/Metric.ts | 4 ++-- packages/opentelemetry-metrics/src/Metric.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/opentelemetry-api/src/metrics/Metric.ts b/packages/opentelemetry-api/src/metrics/Metric.ts index 4b02812723..4023a73393 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 a8a4784665..4e5b20ceb3 100644 --- a/packages/opentelemetry-metrics/src/Metric.ts +++ b/packages/opentelemetry-metrics/src/Metric.ts @@ -163,7 +163,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); } } From 0c4c82b8a0f599548eca57b4b8b9e6a037af4045 Mon Sep 17 00:00:00 2001 From: Alan Storm Date: Wed, 6 May 2020 18:29:24 -0700 Subject: [PATCH 3/7] lint --- packages/opentelemetry-metrics/test/Meter.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/opentelemetry-metrics/test/Meter.test.ts b/packages/opentelemetry-metrics/test/Meter.test.ts index ba4058372c..a017df9353 100644 --- a/packages/opentelemetry-metrics/test/Meter.test.ts +++ b/packages/opentelemetry-metrics/test/Meter.test.ts @@ -99,11 +99,11 @@ describe('Meter', () => { disabled: false, monotonic: true, }); - counter.add(1) - meter.collect() + counter.add(1); + meter.collect(); const [record1] = meter.getBatcher().checkPointSet(); assert.strictEqual(record1.aggregator.toPoint().value, 1); - }) + }); it('should return counter with resource', () => { const counter = meter.createCounter('name') as CounterMetric; From 276fedf962e33eeee321d69537aeba84f4986a38 Mon Sep 17 00:00:00 2001 From: Alan Storm Date: Wed, 6 May 2020 23:36:24 -0700 Subject: [PATCH 4/7] for a metri defined with label keys, but without metric values --- packages/opentelemetry-exporter-prometheus/src/prometheus.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/opentelemetry-exporter-prometheus/src/prometheus.ts b/packages/opentelemetry-exporter-prometheus/src/prometheus.ts index 9e745f6266..3672c9e1d1 100644 --- a/packages/opentelemetry-exporter-prometheus/src/prometheus.ts +++ b/packages/opentelemetry-exporter-prometheus/src/prometheus.ts @@ -184,7 +184,9 @@ export class PrometheusExporter implements MetricExporter { */ if (metric instanceof Counter) { metric.remove( - ...record.descriptor.labelKeys.map(k => record.labels[k].toString()) + ...record.descriptor.labelKeys.map( + k => record.labels[k] ? record.labels[k].toString() : '' + ) ); } From fb000c1a4d4a868b7600250df5639f1bc0cae433 Mon Sep 17 00:00:00 2001 From: Alan Storm Date: Wed, 6 May 2020 23:53:29 -0700 Subject: [PATCH 5/7] whatever you say lint --- packages/opentelemetry-exporter-prometheus/src/prometheus.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/opentelemetry-exporter-prometheus/src/prometheus.ts b/packages/opentelemetry-exporter-prometheus/src/prometheus.ts index 3672c9e1d1..08b329526b 100644 --- a/packages/opentelemetry-exporter-prometheus/src/prometheus.ts +++ b/packages/opentelemetry-exporter-prometheus/src/prometheus.ts @@ -184,8 +184,8 @@ export class PrometheusExporter implements MetricExporter { */ if (metric instanceof Counter) { metric.remove( - ...record.descriptor.labelKeys.map( - k => record.labels[k] ? record.labels[k].toString() : '' + ...record.descriptor.labelKeys.map(k => + record.labels[k] ? record.labels[k].toString() : '' ) ); } From 15a1cf7b6781d5831843af97ef4a48a7558635a9 Mon Sep 17 00:00:00 2001 From: Alan Storm Date: Fri, 8 May 2020 11:47:16 -0700 Subject: [PATCH 6/7] reverting "getValues" changes --- packages/opentelemetry-exporter-prometheus/src/prometheus.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/opentelemetry-exporter-prometheus/src/prometheus.ts b/packages/opentelemetry-exporter-prometheus/src/prometheus.ts index 08b329526b..9e745f6266 100644 --- a/packages/opentelemetry-exporter-prometheus/src/prometheus.ts +++ b/packages/opentelemetry-exporter-prometheus/src/prometheus.ts @@ -184,9 +184,7 @@ export class PrometheusExporter implements MetricExporter { */ if (metric instanceof Counter) { metric.remove( - ...record.descriptor.labelKeys.map(k => - record.labels[k] ? record.labels[k].toString() : '' - ) + ...record.descriptor.labelKeys.map(k => record.labels[k].toString()) ); } From 38cb3a9d2e2567992a3bef28ad61df70029bfe77 Mon Sep 17 00:00:00 2001 From: Alan Storm Date: Wed, 13 May 2020 07:29:08 -0700 Subject: [PATCH 7/7] adding shoulder, fixing param --- packages/opentelemetry-metrics/src/Metric.ts | 2 +- packages/opentelemetry-metrics/test/Meter.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/opentelemetry-metrics/src/Metric.ts b/packages/opentelemetry-metrics/src/Metric.ts index 4e5b20ceb3..93b5a3f622 100644 --- a/packages/opentelemetry-metrics/src/Metric.ts +++ b/packages/opentelemetry-metrics/src/Metric.ts @@ -130,7 +130,7 @@ 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 = {}) { diff --git a/packages/opentelemetry-metrics/test/Meter.test.ts b/packages/opentelemetry-metrics/test/Meter.test.ts index a017df9353..cdcbd67fbf 100644 --- a/packages/opentelemetry-metrics/test/Meter.test.ts +++ b/packages/opentelemetry-metrics/test/Meter.test.ts @@ -92,7 +92,7 @@ describe('Meter', () => { ); }); - it('be able to call add with no labels', () => { + it('should be able to call add with no labels', () => { const counter = meter.createCounter('name', { description: 'desc', unit: '1',