getsentry / getsentry/sentry-javascript

Cloudflare capture crashes / data before we export the default fetch handler

Abierto
#24,375 1 comentario 0 reacciones 1 asignado Reclamado por @JPeer264 Ver en GitHub
Cloudflare Workers Feature
Lenguaje dominante
TypeScript
Estrellas
8.7k
Forks
1.8k
Merge medio
1 d 17 h
PR fusionados (30 d)
523

Descripción

### Problem Statement

Potentially the following Error would never be seen within Sentry:

```js
// 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:

```js
// 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.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.