BunRuntimeMetrics
Collect Bun runtime health metrics such as memory usage, CPU utilization, and event loop utilization.
This integration only works in the Bun runtime.
Import name: Sentry.bunRuntimeMetricsIntegration
The bunRuntimeMetricsIntegration periodically collects Bun runtime health metrics and sends them to Sentry. Metrics include memory usage, CPU utilization, event loop utilization, and process uptime.
import * as Sentry from "@sentry/bun";
Sentry.init({
dsn: "___PUBLIC_DSN___",
integrations: [Sentry.bunRuntimeMetricsIntegration()],
});
The following metrics are emitted every 30 seconds by default:
| Metric | Type | Unit | Description |
|---|---|---|---|
bun.runtime.mem.rss | gauge | byte | Resident Set Size — actual process memory footprint |
bun.runtime.mem.heap_used | gauge | byte | Heap memory currently in use |
bun.runtime.mem.heap_total | gauge | byte | Total heap memory allocated |
bun.runtime.cpu.utilization | gauge | ratio | CPU time / wall-clock time ratio |
bun.runtime.event_loop.utilization | gauge | ratio | Fraction of time the event loop was active |
bun.runtime.process.uptime | counter | second | Cumulative process uptime |
Unlike the Node.js equivalent, event loop delay histogram metrics are not available in Bun because monitorEventLoopDelay is not supported by the Bun runtime.
Type: object
Configure which metrics to collect. You can enable opt-in metrics or disable default ones.
Opt-in metrics (off by default):
Sentry.bunRuntimeMetricsIntegration({
collect: {
cpuTime: true, // bun.runtime.cpu.user + bun.runtime.cpu.system
memExternal: true, // bun.runtime.mem.external + bun.runtime.mem.array_buffers
},
});
Disabling default metrics:
Sentry.bunRuntimeMetricsIntegration({
collect: {
uptime: false,
eventLoopUtilization: false,
},
});
Type: number
The interval in milliseconds between metric collections. Defaults to 30000 (30 seconds).
Sentry.bunRuntimeMetricsIntegration({
collectionIntervalMs: 60_000,
});
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").