Skip to content

Commit c31234a

Browse files
fix(opentelemetry): fix stringified internal errors in logs (#962)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 991e2a5 commit c31234a

File tree

5 files changed

+25
-6
lines changed

5 files changed

+25
-6
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@graphql-mesh/plugin-opentelemetry': patch
3+
---
4+
5+
dependencies updates:
6+
7+
- Added dependency [`@opentelemetry/core@^1.30.0` ↗︎](https://www.npmjs.com/package/@opentelemetry/core/v/1.30.0) (to `dependencies`)

.changeset/pretty-ducks-raise.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@graphql-mesh/plugin-opentelemetry': patch
3+
---
4+
5+
OpenTelemetry uncaught internal errors are no longer logged as stringified JSON.

packages/plugins/opentelemetry/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"@graphql-mesh/utils": "^0.104.1",
5151
"@graphql-tools/utils": "^10.8.1",
5252
"@opentelemetry/api": "^1.9.0",
53+
"@opentelemetry/core": "^1.30.0",
5354
"@opentelemetry/exporter-trace-otlp-grpc": "^0.57.0",
5455
"@opentelemetry/exporter-trace-otlp-http": "^0.57.0",
5556
"@opentelemetry/exporter-zipkin": "^1.29.0",

packages/plugins/opentelemetry/src/plugin.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
type TextMapGetter,
2323
type Tracer,
2424
} from '@opentelemetry/api';
25+
import { setGlobalErrorHandler } from '@opentelemetry/core';
2526
import { Resource } from '@opentelemetry/resources';
2627
import { type SpanProcessor } from '@opentelemetry/sdk-trace-base';
2728
import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
@@ -212,16 +213,20 @@ export function useOpenTelemetry(
212213
provider = webProvider;
213214
}
214215
const pluginLogger = options.logger.child({ plugin: 'OpenTelemetry' });
216+
const diagLogger = pluginLogger.child('OtelDiag');
215217
diag.setLogger(
216218
{
217-
error: (message, ...args) => pluginLogger.error(message, ...args),
218-
warn: (message, ...args) => pluginLogger.warn(message, ...args),
219-
info: (message, ...args) => pluginLogger.info(message, ...args),
220-
debug: (message, ...args) => pluginLogger.debug(message, ...args),
221-
verbose: (message, ...args) => pluginLogger.debug(message, ...args),
219+
error: (message, ...args) => diagLogger.error(message, ...args),
220+
warn: (message, ...args) => diagLogger.warn(message, ...args),
221+
info: (message, ...args) => diagLogger.info(message, ...args),
222+
debug: (message, ...args) => diagLogger.debug(message, ...args),
223+
verbose: (message, ...args) => diagLogger.debug(message, ...args),
222224
},
223225
DiagLogLevel.VERBOSE,
224226
);
227+
setGlobalErrorHandler((err) =>
228+
diagLogger.error('Uncaught OTEL internal error', err),
229+
);
225230
tracer = options.tracer || trace.getTracer('gateway');
226231
preparation$ = undefined;
227232
});

yarn.lock

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4501,6 +4501,7 @@ __metadata:
45014501
"@graphql-mesh/utils": "npm:^0.104.1"
45024502
"@graphql-tools/utils": "npm:^10.8.1"
45034503
"@opentelemetry/api": "npm:^1.9.0"
4504+
"@opentelemetry/core": "npm:^1.30.0"
45044505
"@opentelemetry/exporter-trace-otlp-grpc": "npm:^0.57.0"
45054506
"@opentelemetry/exporter-trace-otlp-http": "npm:^0.57.0"
45064507
"@opentelemetry/exporter-zipkin": "npm:^1.29.0"
@@ -6523,7 +6524,7 @@ __metadata:
65236524
languageName: node
65246525
linkType: hard
65256526

6526-
"@opentelemetry/core@npm:1.30.1, @opentelemetry/core@npm:^1.30.1":
6527+
"@opentelemetry/core@npm:1.30.1, @opentelemetry/core@npm:^1.30.0, @opentelemetry/core@npm:^1.30.1":
65276528
version: 1.30.1
65286529
resolution: "@opentelemetry/core@npm:1.30.1"
65296530
dependencies:

0 commit comments

Comments
 (0)