getsentry

sentry-setup-tracing

5
0
# Install this skill:
npx skills add getsentry/agent-skills --skill "sentry-setup-tracing"

Install specific skill from multi-skill repository

# Description

Setup Sentry Tracing (Performance Monitoring) in any project. Use when asked to enable tracing, track transactions/spans, measure latency, or add performance monitoring. Supports JavaScript, Python, and Ruby.

# SKILL.md


name: sentry-setup-tracing
description: Setup Sentry Tracing (Performance Monitoring) in any project. Use when asked to enable tracing, track transactions/spans, measure latency, or add performance monitoring. Supports JavaScript, Python, and Ruby.


Setup Sentry Tracing

Configure Sentry's performance monitoring to track transactions and spans.

Invoke This Skill When

  • User asks to "enable tracing" or "add performance monitoring"
  • User wants to track API response times, page loads, or latency
  • User asks about tracesSampleRate or custom spans

Quick Reference

Platform Enable Custom Span
JS/Browser tracesSampleRate + browserTracingIntegration() Sentry.startSpan()
Next.js tracesSampleRate (auto-integrated) Sentry.startSpan()
Node.js tracesSampleRate Sentry.startSpan()
Python traces_sample_rate @sentry_sdk.trace or start_span()
Ruby traces_sample_rate start_span()

JavaScript Setup

Enable tracing

Sentry.init({
  dsn: "YOUR_DSN",
  tracesSampleRate: 1.0,  // 1.0 = 100%, lower for production
  integrations: [Sentry.browserTracingIntegration()],  // Browser/React only
  tracePropagationTargets: ["localhost", /^https:\/\/api\./],
});

Custom spans

// Async operation
const result = await Sentry.startSpan(
  { name: "fetch-user", op: "http.client" },
  async () => {
    return await fetch("/api/user").then(r => r.json());
  }
);

// Nested spans
await Sentry.startSpan({ name: "checkout", op: "transaction" }, async () => {
  await Sentry.startSpan({ name: "validate", op: "validation" }, validateCart);
  await Sentry.startSpan({ name: "payment", op: "payment" }, processPayment);
});

Dynamic sampling

tracesSampler: ({ name, parentSampled }) => {
  if (name.includes("healthcheck")) return 0;
  if (name.includes("checkout")) return 1.0;
  if (parentSampled !== undefined) return parentSampled;
  return 0.1;
},

Python Setup

Enable tracing

sentry_sdk.init(
    dsn="YOUR_DSN",
    traces_sample_rate=1.0,
)

Custom spans

# Decorator
@sentry_sdk.trace
def expensive_function():
    return do_work()

# Context manager
with sentry_sdk.start_span(name="process-order", op="task") as span:
    span.set_data("order.id", order_id)
    process(order_id)

Dynamic sampling

def traces_sampler(ctx):
    name = ctx.get("transaction_context", {}).get("name", "")
    if "healthcheck" in name: return 0
    if "checkout" in name: return 1.0
    return 0.1

sentry_sdk.init(dsn="YOUR_DSN", traces_sampler=traces_sampler)

Ruby Setup

Sentry.init do |config|
  config.dsn = "YOUR_DSN"
  config.traces_sample_rate = 1.0
end

Common Operation Types

op Value Use Case
http.client Outgoing HTTP
http.server Incoming HTTP
db / db.query Database
cache Cache operations
task Background jobs
function Function calls

Sampling Recommendations

Traffic Rate
Development 1.0
Low (<1K req/min) 0.5 - 1.0
Medium (1K-10K) 0.1 - 0.5
High (>10K) 0.01 - 0.1

Distributed Tracing

Configure tracePropagationTargets to send trace headers to your APIs:

tracePropagationTargets: ["localhost", "https://api.yourapp.com"],

For Next.js 14+ App Router, add to root layout:

export async function generateMetadata() {
  return { other: { ...Sentry.getTraceData() } };
}

Troubleshooting

Issue Solution
Transactions not appearing Check tracesSampleRate > 0, verify DSN
Browser traces missing Add browserTracingIntegration()
Distributed traces disconnected Check tracePropagationTargets, CORS headers
Too many transactions Lower sample rate, use tracesSampler to filter

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.