Skip to content
Back to skills

Error Tracking

ASecurity

Error tracking and monitoring integration. Sentry, Datadog RUM, Bugsnag. Source maps, breadcrumbs, release tracking, performance monitoring, and alerting configuration. USE WHEN: user mentions "Sentry", "error tracking", "Bugsnag", "Datadog RUM", "crash reporting", "source maps", "release tracking", "error monitoring" DO NOT USE FOR: application logging - use logging skills; APM/tracing - use `opentelemetry`; structured error responses - use `error-handling`

  • 31 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
ai-agentstypescriptpythongoreactnodeexpressfastapispringdebugginggit

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add claude-dev-suite/claude-dev-suite --skill error-tracking --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Error Tracking?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Error Tracking
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/claude-dev-suite-error-tracking/badge)](https://www.skillsdirectory.com/skills/claude-dev-suite-error-tracking)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: error-tracking
description: |
  Error tracking and monitoring integration. Sentry, Datadog RUM, Bugsnag.
  Source maps, breadcrumbs, release tracking, performance monitoring,
  and alerting configuration.

  USE WHEN: user mentions "Sentry", "error tracking", "Bugsnag", "Datadog RUM",
  "crash reporting", "source maps", "release tracking", "error monitoring"

  DO NOT USE FOR: application logging - use logging skills;
  APM/tracing - use `opentelemetry`; structured error responses - use `error-handling`
allowed-tools: Read, Grep, Glob, Write, Edit
---
# Error Tracking

## Sentry (Node.js / Express)

```typescript
import * as Sentry from '@sentry/node';

Sentry.init({
  dsn: process.env.SENTRY_DSN,
  environment: process.env.NODE_ENV,
  release: process.env.APP_VERSION,
  tracesSampleRate: process.env.NODE_ENV === 'production' ? 0.1 : 1.0,
  integrations: [Sentry.expressIntegration()],
});

// Must be first middleware
app.use(Sentry.expressErrorHandler());

// Add context
app.use((req, res, next) => {
  Sentry.setUser({ id: req.user?.id, email: req.user?.email });
  Sentry.setTag('tenant', req.tenantId);
  next();
});

// Manual capture
try {
  await riskyOperation();
} catch (error) {
  Sentry.captureException(error, {
    extra: { orderId, userId },
    tags: { component: 'payment' },
  });
}
```

## Sentry (React)

```tsx
import * as Sentry from '@sentry/react';

Sentry.init({
  dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
  environment: process.env.NODE_ENV,
  integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],
  tracesSampleRate: 0.1,
  replaysSessionSampleRate: 0.1,
  replaysOnErrorSampleRate: 1.0,
});

// Error boundary
const SentryErrorBoundary = Sentry.withErrorBoundary(App, {
  fallback: <ErrorPage />,
  showDialog: true,
});

// Component-level
const ProfilePage = Sentry.withProfiler(Profile);
```

## Sentry (Python)

```python
import sentry_sdk
from sentry_sdk.integrations.fastapi import FastApiIntegration

sentry_sdk.init(
    dsn=os.environ["SENTRY_DSN"],
    environment=os.environ.get("ENV", "development"),
    traces_sample_rate=0.1,
    integrations=[FastApiIntegration()],
)
```

## Sentry (Spring Boot)

```xml
<dependency>
  <groupId>io.sentry</groupId>
  <artifactId>sentry-spring-boot-starter-jakarta</artifactId>
</dependency>
```
```yaml
sentry:
  dsn: ${SENTRY_DSN}
  environment: ${SPRING_PROFILES_ACTIVE}
  traces-sample-rate: 0.1
```

## Source Maps Upload (CI/CD)

```yaml
# GitHub Actions
- name: Upload source maps to Sentry
  run: |
    npx @sentry/cli sourcemaps upload \
      --release=${{ github.sha }} \
      --org=my-org --project=my-app \
      ./dist
  env:
    SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
```

## Breadcrumbs

```typescript
Sentry.addBreadcrumb({
  category: 'payment',
  message: `Processing payment for order ${orderId}`,
  level: 'info',
  data: { orderId, amount },
});
```

## Anti-Patterns

| Anti-Pattern | Fix |
|--------------|-----|
| 100% trace sample rate in production | Use 0.1-0.2 for production |
| No source maps uploaded | Upload in CI/CD for readable stack traces |
| No release tracking | Set `release` to git SHA or version |
| Capturing expected errors | Only capture unexpected errors |
| No user context | Set user ID/email for debugging |
| PII in error data | Scrub sensitive fields in `beforeSend` |

## Production Checklist

- [ ] DSN configured per environment
- [ ] Source maps uploaded in CI/CD
- [ ] Release version set to git SHA
- [ ] Sample rate tuned (0.1-0.2 for production)
- [ ] User context attached
- [ ] Alert rules configured for error spikes
- [ ] PII scrubbing enabled

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…