using-sentry

Capture exceptions, add context, create performance spans, and use structured logging with Sentry.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "using-sentry" with this command: npx skills add andrelandgraf/fullstackrecipes/andrelandgraf-fullstackrecipes-using-sentry

Working with Sentry

Capture exceptions, add context, create performance spans, and use structured logging with Sentry.

Implement Working with Sentry

Capture exceptions, add context, create performance spans, and use structured logging with Sentry.

See:

Capturing Exceptions

Manually capture errors that are handled but should be tracked:

import * as Sentry from "@sentry/nextjs";

try { await riskyOperation(); } catch (err) { Sentry.captureException(err); // Handle the error gracefully... }

Adding Context

Attach user and custom context to errors:

import * as Sentry from "@sentry/nextjs";

// Set user context (persists for session) Sentry.setUser({ id: session.user.id, email: session.user.email, });

// Add custom context to exceptions Sentry.captureException(err, { tags: { feature: "checkout", plan: "pro", }, extra: { orderId: "order_123", items: cart.items, }, });

Performance Tracing

Create spans for meaningful operations:

import * as Sentry from "@sentry/nextjs";

// Wrap async operations const result = await Sentry.startSpan( { op: "http.client", name: "GET /api/users", }, async () => { const response = await fetch("/api/users"); return response.json(); }, );

// Wrap sync operations Sentry.startSpan( { op: "ui.click", name: "Submit Button Click", }, (span) => { span.setAttribute("form", "checkout"); processSubmit(); }, );

Using the Sentry Logger

Sentry provides structured logging that appears in the Logs tab:

import * as Sentry from "@sentry/nextjs";

const { logger } = Sentry;

logger.info("Payment processed", { orderId: "123", amount: 99.99 }); logger.warn("Rate limit approaching", { current: 90, max: 100 }); logger.error("Payment failed", { orderId: "123", reason: "declined" });

Breadcrumbs

Add breadcrumbs to provide context for errors:

import * as Sentry from "@sentry/nextjs";

// Automatically captured: console logs, fetch requests, UI clicks // Manual breadcrumbs for custom events: Sentry.addBreadcrumb({ category: "auth", message: "User signed in", level: "info", });

Clearing User Context

Clear user data on sign out:

import * as Sentry from "@sentry/nextjs";

async function signOut() { Sentry.setUser(null); await authClient.signOut(); }

References

  • Sentry Next.js SDK

  • Custom Instrumentation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ralph-loop

No summary provided by upstream source.

Repository SourceNeeds Review
General

observability-monitoring

No summary provided by upstream source.

Repository SourceNeeds Review
General

stripe-subscriptions

No summary provided by upstream source.

Repository SourceNeeds Review