Problem Statement
Potentially the following Error would never be seen within Sentry:
// file:src/index.ts
import diagnostics_channel from 'diagnostics_channel';
const channel = diagnostics_channel.channel('my-channel');
const app = new Hono();
// never been seen by Sentry
throw new Error();
// never been seen by Sentry
channel.publish({
some: 'data',
});
export default {
fetch: app.fetch,
scheduled: async (batch, env) => {},
}
Solution Brainstorm
Since we introduced cachedClients #23151 we could potentially inject an Sentry.init at the top of the workers entrypoint with Vite:
// file:src/index.ts
// following is being injected automatically and uses `Sentry.init`
import ./instrument.js`;
// ... the rest from above ...
Theoretically, instrument.js only sets up the client so we receive some data, and later the withSentry wrapped code would wrap everything as usual and reuses the previously created client.
Additional Context
This would only work with the v11's default cacheClient: true and the entrypoint would not be added when cacheClient: false
Priority
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it.
Problem Statement
Potentially the following Error would never be seen within Sentry:
Solution Brainstorm
Since we introduced cachedClients #23151 we could potentially inject an
Sentry.initat the top of the workers entrypoint with Vite:Theoretically,
instrument.jsonly sets up the client so we receive some data, and later thewithSentrywrapped code would wrap everything as usual and reuses the previously created client.Additional Context
This would only work with the v11's default
cacheClient: trueand the entrypoint would not be added whencacheClient: falsePriority
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding
+1orme too, to help us triage it.