Skip to content

Commit b970fd9

Browse files
committed
fix: manually pass a meterprovider to host metrics
This suppresses an annoying warning. The host metrics class already gets the global meter provider in the same way but logs a warning if it has to. This is a lot of noise in our logs.
1 parent 56d3039 commit b970fd9

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

packages/opentelemetry/lib/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const logger = require('@dotcom-reliability-kit/logger');
88

99
/**
1010
* @import { Instances, Options } from '@dotcom-reliability-kit/opentelemetry'
11+
* @import { MeterProvider } from '@opentelemetry/sdk-metrics'
1112
*/
1213

1314
/**
@@ -79,7 +80,10 @@ function setupOpenTelemetry({
7980

8081
// Set up host metrics if we have a metrics endpoint
8182
if (metricsOptions?.endpoint) {
82-
instances.hostMetrics = new HostMetrics();
83+
const meterProvider = /** @type {MeterProvider} */ (
84+
opentelemetry.api.metrics.getMeterProvider()
85+
);
86+
instances.hostMetrics = new HostMetrics({ meterProvider });
8387
instances.hostMetrics.start();
8488
}
8589

packages/opentelemetry/test/unit/lib/index.spec.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ describe('@dotcom-reliability-kit/opentelemetry', () => {
4343
createTracingConfig =
4444
require('../../../lib/config/tracing').createTracingConfig;
4545
api = require('@opentelemetry/sdk-node').api;
46+
api.metrics.getMeterProvider.mockReturnValue('mock-meter-provider');
4647
HostMetrics = require('@opentelemetry/host-metrics').HostMetrics;
4748
NodeSDK = require('@opentelemetry/sdk-node').NodeSDK;
4849
logger = require('@dotcom-reliability-kit/logger');
@@ -185,7 +186,9 @@ describe('@dotcom-reliability-kit/opentelemetry', () => {
185186

186187
it('instantiates and starts a HostMetrics collector', () => {
187188
expect(HostMetrics).toHaveBeenCalledTimes(1);
188-
expect(HostMetrics).toHaveBeenCalledWith();
189+
expect(HostMetrics).toHaveBeenCalledWith({
190+
meterProvider: 'mock-meter-provider'
191+
});
189192
expect(HostMetrics.prototype.start).toHaveBeenCalledTimes(1);
190193
});
191194

0 commit comments

Comments
 (0)