Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
getsentry avatar

Sentry Ruby Sdk

  • 1.7k installs
  • 243 repo stars
  • Updated July 27, 2026
  • getsentry/sentry-for-ai

The sentry-ruby-sdk Sentry for AI skill configures full Sentry monitoring for Ruby apps including Rails, Sinatra, and Rack stacks.

About

The sentry-ruby-sdk Sentry for AI skill configures full Sentry monitoring for Ruby apps including Rails, Sinatra, and Rack stacks. It covers error capture, performance tracing, structured logging, metrics, profiling, and cron monitors with migration notes from AppSignal, Honeybadger, Bugsnag, and Rollbar. Agents install gems, set DSN and environment, and verify event delivery. Use when adding or migrating Ruby error monitoring to Sentry. Full Sentry SDK setup for Ruby frameworks. Errors, tracing, logging, metrics, profiling, crons. Rails, Sinatra, and Rack configuration paths. Migration guidance from legacy error trackers. Verify DSN and event delivery after install. Add Sentry Ruby SDK for Rails, Sinatra, and Rack with errors, tracing, logging, metrics, and crons.

  • Full Sentry SDK setup for Ruby frameworks.
  • Errors, tracing, logging, metrics, profiling, crons.
  • Rails, Sinatra, and Rack configuration paths.
  • Migration guidance from legacy error trackers.
  • Verify DSN and event delivery after install.

Sentry Ruby Sdk by the numbers

  • 1,663 all-time installs (skills.sh)
  • +43 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #39 of 610 Debugging skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

sentry-ruby-sdk capabilities & compatibility

Capabilities
full sentry sdk setup for ruby frameworks. · errors, tracing, logging, metrics, profiling, cr · rails, sinatra, and rack configuration paths. · migration guidance from legacy error trackers.
Works with
sentry
From the docs

What sentry-ruby-sdk says it does

Full Sentry SDK setup for Ruby.
SKILL.md
npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-ruby-sdk

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.7k
repo stars243
Security audit3 / 3 scanners passed
Last updatedJuly 27, 2026
Repositorygetsentry/sentry-for-ai

How do I apply sentry-ruby-sdk for the workflow described in SKILL.md?

Add Sentry Ruby SDK for Rails, Sinatra, and Rack with errors, tracing, logging, metrics, and crons.

Who is it for?

Teams using sentry-ruby-sdk as documented in the skill repository.

Skip if: Tasks outside the sentry-ruby-sdk scope defined in SKILL.md.

When should I use this skill?

User mentions sentry-ruby-sdk or related skill triggers from the description.

What you get

Structured deliverables and steps from the sentry-ruby-sdk skill workflow.

  • Sentry Crons monitors
  • Check-in instrumentation code
  • Alert timelines for scheduled jobs

By the numbers

  • Minimum SDK version sentry-ruby v5.14.0+
  • Covers ActiveJob, Sidekiq-Cron, and manual check-in integration paths

Files

SKILL.mdMarkdownGitHub ↗
All Skills > SDK Setup > Ruby SDK

Sentry Ruby SDK

Opinionated wizard that scans the project and guides through complete Sentry setup.

Invoke This Skill When

  • User asks to "add Sentry to Ruby" or "set up Sentry" in a Ruby app
  • User wants error monitoring, tracing, logging, metrics, profiling, or crons in Ruby
  • User mentions sentry-ruby, sentry-rails, or the Ruby Sentry SDK
  • User is migrating from AppSignal, Honeybadger, Bugsnag, Rollbar, or Airbrake to Sentry
  • User wants to monitor exceptions, HTTP requests, or background jobs in Rails/Sinatra
Note: SDK APIs below reflect sentry-ruby v6.6.2.
Always verify against docs.sentry.io/platforms/ruby/ before implementing.

---

Phase 1: Detect

# Existing Sentry gems
grep -i sentry Gemfile 2>/dev/null

# Framework
grep -iE '\brails\b|\bsinatra\b' Gemfile 2>/dev/null

# Web server — Puma triggers queue time guidance
grep -iE '\bpuma\b' Gemfile 2>/dev/null

# Background jobs
grep -iE '\bsidekiq\b|\bresque\b|\bdelayed_job\b' Gemfile 2>/dev/null

# Yabeda metrics framework
grep -iE '\byabeda\b' Gemfile 2>/dev/null

# Competitor monitoring tools — triggers migration path if found
grep -iE '\bappsignal\b|\bhoneybadger\b|\bbugsnag\b|\brollbar\b|\bairbrake\b' Gemfile 2>/dev/null

# Scheduled jobs — triggers Crons recommendation
grep -iE '\bsidekiq-cron\b|\bclockwork\b|\bwhenever\b|\brufus-scheduler\b' Gemfile 2>/dev/null
grep -rn "Sidekiq::Cron\|Clockwork\|every.*do" config/ lib/ --include="*.rb" 2>/dev/null | head -10

# OpenTelemetry tracing — check for SDK + instrumentations
grep -iE '\bopentelemetry-sdk\b|\bopentelemetry-instrumentation\b' Gemfile 2>/dev/null
grep -rn "OpenTelemetry::SDK\.configure\|\.use_all\|\.in_span" config/ lib/ app/ --include="*.rb" 2>/dev/null | head -5

# Existing metric patterns (StatsD, Datadog, Prometheus)
grep -rE "(statsd|dogstatsd|prometheus|\.gauge|\.histogram|\.increment|\.timing)" \
  app/ lib/ --include="*.rb" 2>/dev/null | grep -v "_spec\|_test" | head -20

# Companion frontend
cat package.json frontend/package.json web/package.json 2>/dev/null | grep -E '"@sentry|"sentry-'

Route from what you find:

  • Competitor detected (appsignal, honeybadger, bugsnag, rollbar, airbrake) → load ${SKILL_ROOT}/references/migration.md first; delete the competitor initializer as part of migration
  • Sentry already present → skip to Phase 2 to configure features
  • Rails → use sentry-rails + config/initializers/sentry.rb
  • Rack/Sinatrasentry-ruby + Sentry::Rack::CaptureExceptions middleware
  • Sidekiq → add sentry-sidekiq; recommend Metrics if existing metric patterns found
  • Yabeda detected → add sentry-yabeda; routes Yabeda metrics to Sentry metrics
  • Puma detected → queue time capture is automatic (v6.4.0+), but the reverse proxy must set X-Request-Start header; see ${SKILL_ROOT}/references/tracing.md → "Request Queue Time"
  • OTel tracing detected (opentelemetry-sdk + instrumentations in Gemfile, or OpenTelemetry::SDK.configure in source) → use OTLP path: config.otlp.enabled = true; do not set traces_sample_rate; Sentry links errors to OTel traces automatically

---

Phase 2: Recommend

Lead with a concrete proposal — don't ask open-ended questions:

FeatureRecommend when...
Error MonitoringAlways
OTLP IntegrationOTel tracing detected — replaces native Tracing
TracingRails / Sinatra / Rack / any HTTP framework; skip if OTel tracing detected
LoggingAlwaysenable_logs: true costs nothing
MetricsSidekiq present; existing metric lib (StatsD, Prometheus) detected
Profiling⚠️ Beta — performance profiling requested; requires stackprof or vernier gem; skip if OTel tracing detected (requires traces_sample_rate, incompatible with OTLP)
CronsScheduled jobs detected (ActiveJob, Sidekiq-Cron, Clockwork, Whenever)

OTel tracing detected: "I see OpenTelemetry tracing in the project. I recommend Sentry's OTLP integration for tracing (via your existing OTel setup) + Error Monitoring + Sentry Logging [+ Metrics/Crons if applicable]. Shall I proceed?"

No OTel: "I recommend Error Monitoring + Tracing + Logging [+ Metrics if applicable]. Shall I proceed?"

---

Phase 3: Guide

Install

Rails:

# Gemfile
gem "sentry-ruby"
gem "sentry-rails"
gem "sentry-sidekiq"      # if using Sidekiq
gem "sentry-resque"       # if using Resque
gem "sentry-delayed_job"  # if using DelayedJob
gem "sentry-yabeda"       # if using Yabeda metrics framework

Rack / Sinatra / plain Ruby:

gem "sentry-ruby"

Run bundle install.

Framework Integration

Framework / RuntimeGemInit locationAuto-instruments
Railssentry-railsconfig/initializers/sentry.rbControllers, ActiveRecord, ActiveJob, ActionMailer
Rack / Sinatrasentry-rubyTop of config.ruRequests (via Sentry::Rack::CaptureExceptions middleware)
Sidekiqsentry-sidekiqSentry initializer or Sidekiq configWorker execution → transactions
Resquesentry-resqueSentry initializerWorker execution → transactions
DelayedJobsentry-delayed_jobSentry initializerJob execution → transactions
Yabeda metricssentry-yabedaSentry initializerYabeda metric events → Sentry metrics

Init — Rails (config/initializers/sentry.rb)

Sentry.init do |config|
  config.dsn = ENV["SENTRY_DSN"]
  config.spotlight = Rails.env.development?  # local Spotlight UI; no DSN needed in dev
  config.breadcrumbs_logger = [:active_support_logger, :http_logger]
  config.send_default_pii = true
  config.traces_sample_rate = 1.0  # lower to 0.05–0.2 in production
  config.enable_logs = true
  # Metrics on by default; disable with: config.enable_metrics = false
end

sentry-rails auto-instruments ActionController, ActiveRecord, ActiveJob, ActionMailer.

Init — Rack / Sinatra

require "sentry-ruby"

Sentry.init do |config|
  config.dsn = ENV["SENTRY_DSN"]
  config.spotlight = ENV["RACK_ENV"] == "development"
  config.breadcrumbs_logger = [:sentry_logger, :http_logger]
  config.send_default_pii = true
  config.traces_sample_rate = 1.0
  config.enable_logs = true
end

use Sentry::Rack::CaptureExceptions  # in config.ru, before app middleware

Init — Sidekiq standalone

require "sentry-ruby"
require "sentry-sidekiq"

Sentry.init do |config|
  config.dsn = ENV["SENTRY_DSN"]
  config.spotlight = ENV.fetch("RAILS_ENV", "development") == "development"
  config.breadcrumbs_logger = [:sentry_logger]
  config.traces_sample_rate = 1.0
  config.enable_logs = true
end

Environment variables

SENTRY_DSN=https://xxx@oYYY.ingest.sentry.io/ZZZ
SENTRY_ENVIRONMENT=production   # overrides RAILS_ENV / RACK_ENV
SENTRY_RELEASE=my-app@1.0.0

Feature reference files

Walk through features one at a time. Load the reference file for each, follow its steps, and verify before moving to the next:

FeatureReference fileLoad when...
Migration${SKILL_ROOT}/references/migration.mdCompetitor gem found — load before installing Sentry
Error Monitoring${SKILL_ROOT}/references/error-monitoring.mdAlways
Tracing${SKILL_ROOT}/references/tracing.mdHTTP handlers / distributed tracing
Logging${SKILL_ROOT}/references/logging.mdStructured log capture
Metrics${SKILL_ROOT}/references/metrics.mdSidekiq present; existing metric patterns
Profiling${SKILL_ROOT}/references/profiling.mdPerformance profiling requested (beta)
Crons${SKILL_ROOT}/references/crons.mdScheduled jobs detected or requested

For each feature: Read ${SKILL_ROOT}/references/<feature>.md, follow steps exactly, verify it works.

---

Configuration Reference

Key Sentry.init Options

OptionTypeDefaultPurpose
dsnStringnilSDK disabled if empty; env: SENTRY_DSN
environmentStringnile.g., "production"; env: SENTRY_ENVIRONMENT
releaseStringnile.g., "myapp@1.0.0"; env: SENTRY_RELEASE
spotlightBooleanfalseSend events to Spotlight sidecar (local dev, no DSN needed)
send_default_piiBooleanfalseInclude IP addresses and request headers
sample_rateFloat1.0Error event sample rate (0.0–1.0)
traces_sample_rateFloatnilTransaction sample rate; nil disables tracing
profiles_sample_rateFloatnilProfiling rate relative to traces_sample_rate; requires stackprof or vernier
enable_logsBooleanfalseEnable Sentry structured Logs
enable_metricsBooleantrueEnable custom metrics (on by default)
breadcrumbs_loggerArray[]Loggers for automatic breadcrumbs (see logging reference)
max_breadcrumbsInteger100Max breadcrumbs per event
debugBooleanfalseVerbose SDK output to stdout
capture_queue_timeBooleantrueRecord request queue time from X-Request-Start header (v6.4.0+, Rails fixed in v6.4.1)
otlp.enabledBooleanfalseRoute OTel spans to Sentry via OTLP; do not combine with traces_sample_rate
otlp.collector_urlStringnilOTLP HTTP endpoint of an OTel Collector (e.g., http://localhost:4318/v1/traces); when set, spans are sent to the collector instead of directly to Sentry
org_idStringnilExplicit org ID; overrides DSN-extracted value; useful for self-hosted/Relay setups (v6.5.0+)
strict_trace_continuationBooleanfalseOnly continue incoming traces when sentry-org_id baggage matches SDK's org ID; prevents trace stitching from third-party services (v6.5.0+)
before_sendLambdanilMutate or drop error events before sending
before_send_transactionLambdanilMutate or drop transaction events before sending
before_send_logLambdanilMutate or drop log events before sending

Environment Variables

VariableMaps toPurpose
SENTRY_DSNdsnData Source Name
SENTRY_RELEASEreleaseApp version (e.g., my-app@1.0.0)
SENTRY_ENVIRONMENTenvironmentDeployment environment

Options set in Sentry.init override environment variables.

---

Verification

Local dev (no DSN needed) — Spotlight:

npx @spotlightjs/spotlight          # browser UI at http://localhost:8969
# or stream events to terminal:
npx @spotlightjs/spotlight tail traces --format json

config.spotlight = Rails.env.development? (already in the init block above) routes events to the local sidecar automatically.

With a real DSN:

Sentry.capture_message("Sentry Ruby SDK test")

Nothing appears? Set config.debug = true and check stdout. Verify DSN format: https://<key>@o<org>.ingest.sentry.io/<project>.

---

Phase 4: Cross-Link

cat package.json frontend/package.json web/package.json 2>/dev/null | grep -E '"@sentry|"sentry-'
Frontend detectedSuggest
React / Next.jssentry-react-sdk
Svelte / SvelteKitsentry-svelte-sdk
Vue@sentry/vuedocs.sentry.io/platforms/javascript/guides/vue/

For trace stitching between Ruby backend and JS frontend, see references/tracing.md → "Frontend trace stitching".

---

Troubleshooting

IssueSolution
Events not appearingconfig.debug = true; verify DSN; ensure Sentry.init before first request
Rails exceptions missingMust use sentry-railssentry-ruby alone doesn't hook Rails error handlers
No traces (native)Set traces_sample_rate > 0; ensure sentry-rails or Sentry::Rack::CaptureExceptions
No traces (OTLP)Verify opentelemetry-exporter-otlp gem is installed; do not set traces_sample_rate when using otlp.enabled = true
Sidekiq jobs not tracedAdd sentry-sidekiq gem
Missing request contextSet config.send_default_pii = true
Logs not appearingSet config.enable_logs = true; sentry-ruby ≥ 5.27.0 required
Metrics not appearingCheck enable_metrics is not false; verify DSN
Events lost on shutdownProcess.exit! skips at_exit hooks — call Sentry.flush explicitly before forced exits
Forking server loses eventsPuma/Unicorn fork workers — re-initialize in on_worker_boot or after_fork; without this, the background worker thread dies in child processes
DSN rejected / events not deliveredVerify DSN format: https://<key>@o<org>.ingest.sentry.io/<project>; set config.debug = true to see transport errors

Related skills

Forks & variants (1)

Sentry Ruby Sdk has 1 known copy in the catalog totaling 202 installs. They canonicalize to this original listing.

How it compares

Use sentry-ruby-sdk for Ruby-specific Crons instrumentation; pick other sentry-for-ai skills when the runtime is Node, Python, or Go.

FAQ

What does sentry-ruby-sdk do?

Add Sentry Ruby SDK for Rails, Sinatra, and Rack with errors, tracing, logging, metrics, and crons.

When should I invoke sentry-ruby-sdk?

Use when you need Add Sentry Ruby SDK for Rails, Sinatra, and Rack with errors, tracing, logging, metrics, and crons.

What outcome does sentry-ruby-sdk produce?

The sentry-ruby-sdk Sentry for AI skill configures full Sentry monitoring for Ruby apps including Rails, Sinatra, and Rack stacks.

Is Sentry Ruby Sdk safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Debuggingbackendtesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.