diff --git a/doc/metrics.md b/doc/metrics.md index 661b495ddef..52735a7f1bd 100644 --- a/doc/metrics.md +++ b/doc/metrics.md @@ -504,8 +504,9 @@ const options = { port: 9464 }; const exporter = new PrometheusExporter(options); // Creates MeterProvider and installs the exporter as a MetricReader -const meterProvider = new MeterProvider(); -meterProvider.addMetricReader(exporter); +const meterProvider = new MeterProvider({ + readers: [exporter], +}); const meter = meterProvider.getMeter('example-prometheus'); // Now, start recording data @@ -541,12 +542,14 @@ const collectorOptions = { concurrencyLimit: 1, // an optional limit on pending requests }; const exporter = new OTLPMetricExporter(collectorOptions); -const meterProvider = new MeterProvider({}); - -meterProvider.addMetricReader(new PeriodicExportingMetricReader({ - exporter: metricExporter, - exportIntervalMillis: 1000, -})); +const meterProvider = new MeterProvider({ + readers: [ + new PeriodicExportingMetricReader({ + exporter, + exportIntervalMillis: 1000, + }), + ], +}); // Now, start recording data const meter = meterProvider.getMeter('example-meter'); diff --git a/examples/opentelemetry-web/examples/metrics/index.js b/examples/opentelemetry-web/examples/metrics/index.js index c3f86cfbe50..085710a52c0 100644 --- a/examples/opentelemetry-web/examples/metrics/index.js +++ b/examples/opentelemetry-web/examples/metrics/index.js @@ -18,14 +18,16 @@ function stopMetrics() { function startMetrics() { console.log('STARTING METRICS'); - const meterProvider = new MeterProvider(); + const meterProvider = new MeterProvider({ + readers: [ + new PeriodicExportingMetricReader({ + exporter: new OTLPMetricExporter(), + exportIntervalMillis: 1000 + }), + ], + }); metrics.setGlobalMeterProvider(meterProvider); - meterProvider.addMetricReader(new PeriodicExportingMetricReader({ - exporter: new OTLPMetricExporter(), - exportIntervalMillis: 1000 - })); - meter = meterProvider.getMeter('example-exporter-collector') const requestCounter = meter.createCounter('requests', { diff --git a/examples/otlp-exporter-node/metrics.js b/examples/otlp-exporter-node/metrics.js index 22507ef528b..9dcfef90ef9 100644 --- a/examples/otlp-exporter-node/metrics.js +++ b/examples/otlp-exporter-node/metrics.js @@ -39,16 +39,15 @@ const meterProvider = new MeterProvider({ [SEMRESATTRS_SERVICE_NAME]: 'basic-metric-service', }), views: [expHistogramView], + readers: [ + new PeriodicExportingMetricReader({ + exporter: metricExporter, + // exporter: new ConsoleMetricExporter(), + exportIntervalMillis: 1000, + }), + ], }); -meterProvider.addMetricReader( - new PeriodicExportingMetricReader({ - exporter: metricExporter, - // exporter: new ConsoleMetricExporter(), - exportIntervalMillis: 1000, - }) -); - const meter = meterProvider.getMeter('example-exporter-collector'); const requestCounter = meter.createCounter('requests', { diff --git a/experimental/examples/opencensus-shim/setup.js b/experimental/examples/opencensus-shim/setup.js index e3e189eae2d..14e201a8142 100644 --- a/experimental/examples/opencensus-shim/setup.js +++ b/experimental/examples/opencensus-shim/setup.js @@ -53,22 +53,24 @@ module.exports = function setup(serviceName) { spanProcessors: [ new BatchSpanProcessor(new OTLPTraceExporter(), { scheduledDelayMillis: 5000, - }) - ] + }), + ], }); tracerProvider.register(); - const meterProvider = new MeterProvider({ resource }); - meterProvider.addMetricReader( - new PrometheusExporter({ - metricProducers: [ - new OpenCensusMetricProducer({ - openCensusMetricProducerManager: - oc.Metrics.getMetricProducerManager(), - }), - ], - }) - ); + const meterProvider = new MeterProvider({ + resource, + readers: [ + new PrometheusExporter({ + metricProducers: [ + new OpenCensusMetricProducer({ + openCensusMetricProducerManager: + oc.Metrics.getMetricProducerManager(), + }), + ], + }), + ], + }); metrics.setGlobalMeterProvider(meterProvider); // Start OpenCensus tracing diff --git a/experimental/examples/prometheus/index.js b/experimental/examples/prometheus/index.js index 8f8dd96836d..df33bf65a4a 100644 --- a/experimental/examples/prometheus/index.js +++ b/experimental/examples/prometheus/index.js @@ -16,8 +16,9 @@ const exporter = new PrometheusExporter({}, () => { }); // Creates MeterProvider and installs the exporter as a MetricReader -const meterProvider = new MeterProvider(); -meterProvider.addMetricReader(exporter); +const meterProvider = new MeterProvider({ + readers: [exporter], +}); const meter = meterProvider.getMeter('example-prometheus'); // Creates metric instruments diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md index 5c87ab2527a..25bf7cd559a 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md @@ -36,12 +36,14 @@ const collectorOptions = { }; const metricExporter = new OTLPMetricExporter(collectorOptions); -const meterProvider = new MeterProvider({}); - -meterProvider.addMetricReader(new PeriodicExportingMetricReader({ - exporter: metricExporter, - exportIntervalMillis: 1000, -})); +const meterProvider = new MeterProvider({ + readers: [ + new PeriodicExportingMetricReader({ + exporter: metricExporter, + exportIntervalMillis: 1000, + }), + ], +}); ['SIGINT', 'SIGTERM'].forEach(signal => { process.on(signal, () => meterProvider.shutdown().catch(console.error)); diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md index 6458aaab672..49938ce7bdf 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md @@ -35,12 +35,14 @@ const collectorOptions = { concurrencyLimit: 1, // an optional limit on pending requests }; const metricExporter = new OTLPMetricExporter(collectorOptions); -const meterProvider = new MeterProvider({}); - -meterProvider.addMetricReader(new PeriodicExportingMetricReader({ - exporter: metricExporter, - exportIntervalMillis: 1000, -})); +const meterProvider = new MeterProvider({ + readers: [ + new PeriodicExportingMetricReader({ + exporter: metricExporter, + exportIntervalMillis: 1000, + }), + ], +}); // Now, start recording data const meter = meterProvider.getMeter('example-meter'); @@ -58,12 +60,14 @@ const collectorOptions = { concurrencyLimit: 1, // an optional limit on pending requests }; const metricExporter = new OTLPMetricExporter(collectorOptions); -const meterProvider = new MeterProvider({}); - -meterProvider.addMetricReader(new PeriodicExportingMetricReader({ - exporter: metricExporter, - exportIntervalMillis: 1000, -})); +const meterProvider = new MeterProvider({ + readers: [ + new PeriodicExportingMetricReader({ + exporter: metricExporter, + exportIntervalMillis: 1000, + }), + ], +}); // Now, start recording data const meter = meterProvider.getMeter('example-meter'); diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md index e1b3c9941a5..8408d80fa94 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md @@ -28,12 +28,14 @@ const collectorOptions = { url: '', // url is optional and can be omitted - default is http://localhost:4318/v1/metrics }; const metricExporter = new OTLPMetricExporter(collectorOptions); -const meterProvider = new MeterProvider({}); - -meterProvider.addMetricReader(new PeriodicExportingMetricReader({ - exporter: metricExporter, - exportIntervalMillis: 1000, -})); +const meterProvider = new MeterProvider({ + readers: [ + new PeriodicExportingMetricReader({ + exporter: metricExporter, + exportIntervalMillis: 1000, + }), + ], +}); // Now, start recording data const meter = meterProvider.getMeter('example-meter'); diff --git a/experimental/packages/opentelemetry-exporter-prometheus/README.md b/experimental/packages/opentelemetry-exporter-prometheus/README.md index 83c6ac14d5b..f2db43d807f 100644 --- a/experimental/packages/opentelemetry-exporter-prometheus/README.md +++ b/experimental/packages/opentelemetry-exporter-prometheus/README.md @@ -29,8 +29,9 @@ const options = {port: 9464}; const exporter = new PrometheusExporter(options); // Creates MeterProvider and installs the exporter as a MetricReader -const meterProvider = new MeterProvider(); -meterProvider.addMetricReader(exporter); +const meterProvider = new MeterProvider({ + readers: [exporter], +}); const meter = meterProvider.getMeter('example-prometheus'); // Now, start recording data diff --git a/experimental/packages/shim-opencensus/README.md b/experimental/packages/shim-opencensus/README.md index 66e4d6e3d75..bbd34beed87 100644 --- a/experimental/packages/shim-opencensus/README.md +++ b/experimental/packages/shim-opencensus/README.md @@ -79,16 +79,18 @@ OpenCensus metrics can be collected and sent to an OpenTelemetry exporter by pro through the OpenTelemetry Prometheus exporter: ```js -meterProvider.addMetricReader( - new PrometheusExporter({ - metricProducers: [ - new OpenCensusMetricProducer({ - openCensusMetricProducerManager: - oc.Metrics.getMetricProducerManager(), - }), - ], - }) -); +new MeterProvider({ + readers: [ + new PrometheusExporter({ + metricProducers: [ + new OpenCensusMetricProducer({ + openCensusMetricProducerManager: + oc.Metrics.getMetricProducerManager(), + }), + ], + }), + ], +}); ``` ## Example diff --git a/experimental/packages/shim-opencensus/src/OpenCensusMetricProducer.ts b/experimental/packages/shim-opencensus/src/OpenCensusMetricProducer.ts index 04d4a067384..92234e96bc3 100644 --- a/experimental/packages/shim-opencensus/src/OpenCensusMetricProducer.ts +++ b/experimental/packages/shim-opencensus/src/OpenCensusMetricProducer.ts @@ -46,12 +46,13 @@ interface OpenCensusMetricProducerOptions { * * @example * ``` - * const meterProvider = new MeterProvider(); * const reader = new PeriodicExportingMetricReader({ * metricProducers: [new OpenCensusMetricProducer()], * exporter: exporter, * }); - * meterProvider.addMetricReader(reader); + * const meterProvider = new MeterProvider({ + * readers: [reader], + * }); * ``` */ export class OpenCensusMetricProducer implements MetricProducer {