-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
feat(node): pino
integration
#17584
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
feat(node): pino
integration
#17584
Conversation
size-limit report 📦
|
node-overhead report 🧳Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.
|
This is blocked by: |
…sentry-javascript into timfish/feat/pino-integration
I think these both need to be merged and released before we can use the hooks in production: |
…sentry-javascript into timfish/feat/pino-integration
…sentry-javascript into timfish/feat/pino-integration
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really happy with this. Once we lock down the options surface, we should be good to merge!
|
||
type PinoHookArgs = [MergeObject, string, number]; | ||
|
||
type Options = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we want to expose an options API surface that looks like this?
interface PinoOptions {
error: {
/**
* Levels that trigger capturing of events.
*
* @default ["error", "fatal"]
*/
levels?: LogSeverityLevel[];
/**
* By default, Sentry will mark captured errors as handled.
* Set this to `false` if you want to mark them as unhandled instead.
*
* @default true
*/
handled?: boolean;
};
log: {
/**
* Levels that trigger capturing of logs. Logs are only captured if
* `enableLogs` is enabled.
*
* @default ["trace", "debug", "info", "warn", "error", "fatal"]
*/
levels?: LogSeverityLevel[];
};
}
What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, like this!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I think we don't want the pino integration to capture errors by default, that should be opt-in (similar to how captureConsole
works in the SDK)
Just realised we probably also want an integration test for the latest Pino that includes the tracing channel! |
pino
for Sentry Structured Logs #15952This PR:
@apm-js-collab/tracing-hooks
as a dependency@apm-js-collab/tracing-hooks
ESM hook and require patching to be initialised later@apm-js-collab/*
dependencies only get included in a bundle when they are used by an integrationpinoIntegration
that:pino@9.10.0
eventLevels
Supported Node versions
We can't enable this integration by default because
TracingChannel
, injected by@apm-js-collab/code-transformer
requires Node >= v19.9.0 or v18.19.0.