typescript-sentry
Error monitoring and performance with Sentry SDK for Bun/Node.js/Next.js — error capture, breadcrumbs, spans, cron monitoring, source maps, structured logging, profiling. Use when adding Sentry, instrumenting cron, or uploading sourcemaps.
- License 许可
- MIT
- 最近更新
- 2026-11-15
- Stars
- ★ 60
- Forks
- 6
01 前言 Front Matter
- name
- typescript-sentry
- created
- 1769040000000
- modified
- 1790553600000
- reviewed
- 1769040000000
- description
- Error monitoring and performance with Sentry SDK for Bun/Node.js/Next.js — error capture, breadcrumbs, spans, cron monitoring, source maps, structured logging, profiling. Use when adding Sentry, instrumenting cron, or uploading sourcemaps.
- allowed-tools
- Bash, Read, Write, Edit, Grep, Glob, TodoWrite
- user-invocable
- false
02 资源文件 1
- 参考文档REFERENCE.md16.7 KB
03 SKILL.md 正文
TypeScript Sentry
This skill covers the SDK-side work: capture, spans, cron monitors, source maps, profiling, filtering. For project-level Sentry compliance (DSN hygiene, sourcemap-upload wiring in CI) use /configure:sentry; for local step-through debugging use typescript-debugging.
Core Expertise
Sentry provides error monitoring and performance tracking:
- Automatic error capture with stack traces
- Performance monitoring with distributed tracing
- Cron job monitoring for scheduled tasks
- Source map integration for readable TypeScript traces
- Rich context with tags, breadcrumbs, and user data
- Structured logging forwarded to Sentry (
enableLogs) - CPU/JS profiling (Node.js + browser)
- Session replay with privacy controls
- User feedback widget
- Enrichment helpers (custom contexts, breadcrumb categories, fingerprinting)
Installation
Bun
bun add @sentry/bun
Node.js
bun add @sentry/node
Next.js
bun add @sentry/nextjs @sentry/profiling-node
React/Browser
bun add @sentry/react
# or
bun add @sentry/browser
Error Capturing
captureException
try {
await riskyOperation();
} catch (error) {
Sentry.captureException(error);
throw error; // Re-throw if needed
}
With Context
Sentry.captureException(error, {
tags: {
feature: "checkout",
paymentProvider: "stripe",
},
extra: {
orderId: order.id,
userId: user.id,
cartItems: cart.items.length,
},
level: "error", // fatal, error, warning, info, debug
});
captureMessage
// Simple message
Sentry.captureMessage("User completed onboarding");
// With level
Sentry.captureMessage("Rate limit approaching", "warning");
// With context
Sentry.captureMessage("Payment failed", {
level: "error",
tags: { gateway: "stripe" },
extra: { errorCode: "card_declined" },
});
Agentic Optimizations
| Context | Command |
|---|---|
| Install Bun | bun add @sentry/bun |
| Install Node | bun add @sentry/node |
| Install Next.js | bun add @sentry/nextjs @sentry/profiling-node |
| Install React | bun add @sentry/react |
| Install CLI | bun add -D @sentry/cli |
| Upload maps | npx sentry-cli sourcemaps inject ./dist && npx sentry-cli sourcemaps upload ./dist |
| Setup wizard | npx @sentry/wizard@latest -i sourcemaps |
| Test capture | Sentry.captureMessage("Test from dev") |
Quick Reference
Capture Methods
| Method | Purpose |
|---|---|
captureException(error) |
Capture error with stack trace |
captureMessage(msg) |
Capture text message |
captureCheckIn(opts) |
Cron job check-in |
addBreadcrumb(crumb) |
Add navigation/action trail |
Context Methods
| Method | Purpose |
|---|---|
setTag(key, value) |
Add filterable tag |
setExtra(key, value) |
Add debug data |
setUser(user) |
Set user context |
withScope(callback) |
Scoped context |
Performance Methods
| Method | Purpose |
|---|---|
startSpan(opts, callback) |
Create performance span |
withMonitor(slug, callback) |
Monitor cron job |
Severity Levels
| Level | Use Case |
|---|---|
fatal |
App crash, unrecoverable |
error |
Error requiring attention |
warning |
Potential issue |
info |
Informational |
debug |
Debugging only |
Configuration Options
| Option | Description |
|---|---|
dsn |
Project data source name |
environment |
Environment name (production, staging) |
release |
Application version |
tracesSampleRate |
Transaction sample rate (0.0-1.0) |
tracesSampler |
Dynamic sampling function |
sendDefaultPii |
Capture IP/headers |
integrations |
SDK integrations array |
enableLogs |
Forward structured logs to Sentry |
profileSessionSampleRate |
Profiling sample rate (0.0-1.0) |
profileLifecycle |
"trace" profiles every traced request |
replaysSessionSampleRate |
Session replay sample rate |
replaysOnErrorSampleRate |
Replay capture rate on errors |
ignoreErrors |
Error patterns to suppress; strings match as substrings (see REFERENCE.md) |
beforeSend |
Filter/modify events before sending |
beforeSendTransaction |
Filter transactions before sending |
beforeSendLog |
Filter structured logs before sending |
For detailed examples, advanced patterns, and best practices, see REFERENCE.md.
04 同仓库更多 Skills
kitty-show-image
Show the user an image with a note on what to judge, via a file send or a labelled kitty tab. Use when the user must see an image, or icat fails with no /dev/tty.
kitty-session-persistence
Snapshot and restore kitty terminal sessions on macOS. Use when surviving WindowServer hangs without losing tabs, configuring snapshots, or restoring after a force-reboot.
kitty-remote-control
Safe kitty remote control from an agent — read panes with kitty @ ls/get-text, notify, and never mutate the live terminal unasked. Use when running inside kitty.
docs-reference-check
Dangling doc-reference gate: flag markdown naming repo paths or relative links that no longer exist. Use when docs cite moved/deleted files, or wiring a doc-drift lint.
youtube-upload
Upload a video to YouTube via the Data API v3 and edit its title, description, tags or thumbnail afterwards. Use when publishing or retitling a YouTube video.
youtube-studio-share
Share a private YouTube video with a whole Google Workspace organization by scripting YouTube Studio in the browser. Use when a video must be org-only.