# Add Sentry to a Bun app

[Sentry](https://sentry.io) is an error tracking and performance monitoring platform. Its Bun SDK, `@sentry/bun`, instruments your application to automatically collect error and performance data.

If you don't have a Sentry account and project yet, create one at [sentry.io](https://sentry.io/signup/), then return to this page.

---

First, install the Sentry Bun SDK.

```sh terminal icon="terminal"
bun add @sentry/bun
```

---

Then initialize the SDK with your Sentry DSN in its own file. You can find your DSN in your Sentry project settings.

```ts sentry.ts icon="/icons/typescript.svg"
import * as Sentry from "@sentry/bun";

// Ensure to call this before importing any other modules!
Sentry.init({
  dsn: "__SENTRY_DSN__",

  // Add Performance Monitoring by setting tracesSampleRate
  // We recommend adjusting this value in production
  tracesSampleRate: 1.0,
});
```

---

Start your app with [`--preload`](/runtime) so this file runs before any of your app's modules. Bun evaluates a file's `import`s before its own code, so calling `Sentry.init()` at the top of your entry file would still run after everything that file imports.

```sh terminal icon="terminal"
bun --preload ./sentry.ts index.ts
```

---

Verify that Sentry is working by capturing a test error:

```ts sentry.ts icon="/icons/typescript.svg"
setTimeout(() => {
  try {
    foo();
  } catch (e) {
    Sentry.captureException(e);
  }
}, 99);
```

To view and resolve the recorded error, log into [sentry.io](https://sentry.io/) and open your project. Clicking the error's title opens a page with details, where you can mark it as resolved.

---

To learn more about the Sentry Bun SDK, see the [Sentry documentation](https://docs.sentry.io/platforms/javascript/guides/bun).
