Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/pretty-ducks-raise.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@graphql-mesh/plugin-opentelemetry': patch
---

OpenTelemetry uncaught internal errors are no longer logged as stringified JSON.
1 change: 1 addition & 0 deletions packages/plugins/opentelemetry/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
"@graphql-mesh/utils": "^0.104.1",
"@graphql-tools/utils": "^10.8.1",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/core": "^1.30.0",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.57.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.57.0",
"@opentelemetry/exporter-zipkin": "^1.29.0",
Expand Down
15 changes: 10 additions & 5 deletions packages/plugins/opentelemetry/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
type TextMapGetter,
type Tracer,
} from '@opentelemetry/api';
import { setGlobalErrorHandler } from '@opentelemetry/core';
import { Resource } from '@opentelemetry/resources';
import { type SpanProcessor } from '@opentelemetry/sdk-trace-base';
import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
Expand Down Expand Up @@ -212,16 +213,20 @@ export function useOpenTelemetry(
provider = webProvider;
}
const pluginLogger = options.logger.child({ plugin: 'OpenTelemetry' });
const diagLogger = pluginLogger.child('OtelDiag');
diag.setLogger(
{
error: (message, ...args) => pluginLogger.error(message, ...args),
warn: (message, ...args) => pluginLogger.warn(message, ...args),
info: (message, ...args) => pluginLogger.info(message, ...args),
debug: (message, ...args) => pluginLogger.debug(message, ...args),
verbose: (message, ...args) => pluginLogger.debug(message, ...args),
error: (message, ...args) => diagLogger.error(message, ...args),
warn: (message, ...args) => diagLogger.warn(message, ...args),
info: (message, ...args) => diagLogger.info(message, ...args),
debug: (message, ...args) => diagLogger.debug(message, ...args),
verbose: (message, ...args) => diagLogger.debug(message, ...args),
},
DiagLogLevel.VERBOSE,
);
setGlobalErrorHandler((err) =>
diagLogger.error('Uncaught OTEL internal error', err),
);
tracer = options.tracer || trace.getTracer('gateway');
preparation$ = undefined;
});
Expand Down
3 changes: 2 additions & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4501,6 +4501,7 @@ __metadata:
"@graphql-mesh/utils": "npm:^0.104.1"
"@graphql-tools/utils": "npm:^10.8.1"
"@opentelemetry/api": "npm:^1.9.0"
"@opentelemetry/core": "npm:^1.30.0"
"@opentelemetry/exporter-trace-otlp-grpc": "npm:^0.57.0"
"@opentelemetry/exporter-trace-otlp-http": "npm:^0.57.0"
"@opentelemetry/exporter-zipkin": "npm:^1.29.0"
Expand Down Expand Up @@ -6523,7 +6524,7 @@ __metadata:
languageName: node
linkType: hard

"@opentelemetry/core@npm:1.30.1, @opentelemetry/core@npm:^1.30.1":
"@opentelemetry/core@npm:1.30.1, @opentelemetry/core@npm:^1.30.0, @opentelemetry/core@npm:^1.30.1":
version: 1.30.1
resolution: "@opentelemetry/core@npm:1.30.1"
dependencies:
Expand Down
Loading