The Sentry Deno SDK is in beta. Please help us improve the SDK by reporting any issues or giving us feedback.
To use this SDK, call Sentry.init(options) as early as possible in the main entry module. This will initialize the SDK
and hook into the environment. Note that you can turn off almost all side effects using the respective options.
import * as Sentry from 'npm:@sentry/deno';
Sentry.init({
dsn: '__DSN__',
// ...
});To set context information or send manual events, use the exported functions of the Deno SDK. Note that these functions
will not perform any action before you have called init():
// Set user information, as well as tags and further extras
Sentry.setExtra('battery', 0.7);
Sentry.setTag('user_mode', 'admin');
Sentry.setUser({ id: '4711' });
// Add a breadcrumb for future events
Sentry.addBreadcrumb({
message: 'My Breadcrumb',
// ...
});
// Capture exceptions, messages or manual events
Sentry.captureMessage('Hello, world!');
Sentry.captureException(new Error('Good bye'));
Sentry.captureEvent({
message: 'Manual',
stacktrace: [
// ...
],
});Some libraries (e.g. mysql) don't emit tracing signals on their
own. To instrument them, Sentry transforms them at load time so they
publish to node:diagnostics_channel.
Use the --preload argument to deno run to enable
these instrumentations.
$ deno run --preload=npm:@sentry/deno/import app.tsIf your deno.json maps @sentry/deno to the npm package, the bare
--preload=@sentry/deno/import form works as well.
Your app.ts should simply load Sentry as usual:
// app.ts
// initialize Sentry as early as possible
import * as Sentry from 'npm:@sentry/deno';
Sentry.init({ dsn: '__DSN__' });
// ... the rest of the app...