@danieljvdm/dev-kit 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/package.json +1 -1
- package/skill-sources.jsonc +2 -33
- package/skill-sources.lock.json +15 -117
- package/skills/animate/LICENSE +21 -0
- package/skills/animate/NOTICE +10 -0
- package/skills/animate/SKILL.md +34 -0
- package/skills/animate/references/gestures.md +27 -0
- package/skills/animate/references/glossary.md +136 -0
- package/skills/animate/references/implementation.md +22 -0
- package/skills/animate/references/opportunities.md +18 -0
- package/skills/animate/references/principles.md +48 -0
- package/skills/animate/references/review.md +19 -0
- package/skills/cloudflare-workers/LICENSE +202 -0
- package/skills/cloudflare-workers/NOTICE +9 -0
- package/skills/cloudflare-workers/SKILL.md +26 -0
- package/skills/cloudflare-workers/references/durable-objects.md +68 -0
- package/skills/cloudflare-workers/references/sandbox.md +48 -0
- package/skills/cloudflare-workers/references/workers.md +63 -0
- package/skills/cloudflare-workers/references/wrangler.md +56 -0
- package/skills/design-ui/LICENSE +21 -0
- package/skills/design-ui/NOTICE +8 -0
- package/skills/design-ui/SKILL.md +29 -0
- package/skills/design-ui/references/appearance.md +22 -0
- package/skills/design-ui/references/components.md +33 -0
- package/skills/design-ui/references/exploration.md +50 -0
- package/skills/design-ui/references/libraries.md +39 -0
- package/skills/design-ui/references/themes.md +23 -0
- package/skills/dev-kit/SKILL.md +19 -38
- package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
- package/skills/dev-kit/references/skills.md +2 -2
- package/skills/effect-development/SKILL.md +27 -0
- package/skills/effect-development/agents/openai.yaml +4 -0
- package/skills/effect-development/references/api/index.md +32 -0
- package/skills/effect-development/references/api/schema-codecs.md +15 -0
- package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
- package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
- package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
- package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
- package/skills/effect-development/references/atom/index.md +40 -0
- package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
- package/skills/effect-development/references/cli/index.md +39 -0
- package/skills/effect-development/references/setup.md +15 -0
- package/skills/open-pull-request/SKILL.md +10 -70
- package/skills/open-pull-request/references/evidence.md +22 -0
- package/skills/open-pull-request/references/explanation.md +21 -0
- package/skills/open-pull-request/references/publication.md +21 -0
- package/skills/sentry/LICENSE +202 -0
- package/skills/sentry/LICENSE-UPSTREAM +21 -0
- package/skills/sentry/NOTICE +14 -0
- package/skills/sentry/SKILL.md +33 -0
- package/skills/sentry/references/alert-payloads.md +105 -0
- package/skills/sentry/references/alerts.md +17 -0
- package/skills/sentry/references/artifacts.md +25 -0
- package/skills/sentry/references/auth-token.md +65 -0
- package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
- package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
- package/skills/sentry/references/concepts/crons.md +50 -0
- package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
- package/skills/sentry/references/concepts/errors.md +40 -0
- package/skills/sentry/references/concepts/logging.md +85 -0
- package/skills/sentry/references/concepts/metrics.md +49 -0
- package/skills/sentry/references/concepts/monitors.md +78 -0
- package/skills/sentry/references/concepts/profiling.md +38 -0
- package/skills/sentry/references/concepts/reduce-volume.md +49 -0
- package/skills/sentry/references/concepts/releases.md +43 -0
- package/skills/sentry/references/concepts/session-replay.md +35 -0
- package/skills/sentry/references/concepts/tracing.md +54 -0
- package/skills/sentry/references/concepts/user-feedback.md +36 -0
- package/skills/sentry/references/debug-artifacts/android.md +68 -0
- package/skills/sentry/references/debug-artifacts/apple.md +96 -0
- package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
- package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
- package/skills/sentry/references/debug-artifacts/index.md +75 -0
- package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
- package/skills/sentry/references/debug-artifacts/matching.md +73 -0
- package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
- package/skills/sentry/references/first-error-setup.md +25 -0
- package/skills/sentry/references/instrumentation.md +30 -0
- package/skills/sentry/references/issues.md +32 -0
- package/skills/sentry/references/new-project.md +17 -0
- package/skills/sentry/references/otel-exporter.md +30 -0
- package/skills/sentry/references/release-workflow.md +31 -0
- package/skills/sentry/references/releases/ci-pipeline.md +214 -0
- package/skills/sentry/references/releases/index.md +93 -0
- package/skills/sentry/references/releases/suspect-commits.md +155 -0
- package/skills/sentry/references/releases/tagging.md +131 -0
- package/skills/sentry/references/releases/troubleshooting.md +67 -0
- package/skills/sentry/references/sdks/android/crons.md +305 -0
- package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
- package/skills/sentry/references/sdks/android/index.md +748 -0
- package/skills/sentry/references/sdks/android/integrations.md +48 -0
- package/skills/sentry/references/sdks/android/logging.md +374 -0
- package/skills/sentry/references/sdks/android/metrics.md +288 -0
- package/skills/sentry/references/sdks/android/profiling.md +397 -0
- package/skills/sentry/references/sdks/android/session-replay.md +406 -0
- package/skills/sentry/references/sdks/android/tracing.md +861 -0
- package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
- package/skills/sentry/references/sdks/browser/index.md +714 -0
- package/skills/sentry/references/sdks/browser/logging.md +315 -0
- package/skills/sentry/references/sdks/browser/profiling.md +236 -0
- package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
- package/skills/sentry/references/sdks/browser/tracing.md +561 -0
- package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
- package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
- package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
- package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
- package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
- package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
- package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
- package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
- package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
- package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
- package/skills/sentry/references/sdks/cocoa/index.md +497 -0
- package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
- package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
- package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
- package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
- package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
- package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
- package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
- package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
- package/skills/sentry/references/sdks/dotnet/index.md +614 -0
- package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
- package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
- package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
- package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
- package/skills/sentry/references/sdks/elixir/crons.md +371 -0
- package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
- package/skills/sentry/references/sdks/elixir/index.md +383 -0
- package/skills/sentry/references/sdks/elixir/logging.md +239 -0
- package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
- package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
- package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
- package/skills/sentry/references/sdks/flutter/index.md +728 -0
- package/skills/sentry/references/sdks/flutter/logging.md +387 -0
- package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
- package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
- package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
- package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
- package/skills/sentry/references/sdks/go/crons.md +270 -0
- package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
- package/skills/sentry/references/sdks/go/index.md +324 -0
- package/skills/sentry/references/sdks/go/logging.md +354 -0
- package/skills/sentry/references/sdks/go/metrics.md +273 -0
- package/skills/sentry/references/sdks/go/profiling.md +46 -0
- package/skills/sentry/references/sdks/go/tracing.md +366 -0
- package/skills/sentry/references/sdks/index.md +41 -0
- package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
- package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
- package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
- package/skills/sentry/references/sdks/nestjs/index.md +699 -0
- package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
- package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
- package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
- package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
- package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
- package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
- package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
- package/skills/sentry/references/sdks/nextjs/index.md +491 -0
- package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
- package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
- package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
- package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
- package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
- package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
- package/skills/sentry/references/sdks/node/crons.md +432 -0
- package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
- package/skills/sentry/references/sdks/node/index.md +942 -0
- package/skills/sentry/references/sdks/node/logging.md +380 -0
- package/skills/sentry/references/sdks/node/metrics.md +278 -0
- package/skills/sentry/references/sdks/node/profiling.md +373 -0
- package/skills/sentry/references/sdks/node/tracing.md +878 -0
- package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
- package/skills/sentry/references/sdks/php/crons.md +265 -0
- package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
- package/skills/sentry/references/sdks/php/index.md +362 -0
- package/skills/sentry/references/sdks/php/laravel.md +542 -0
- package/skills/sentry/references/sdks/php/logging.md +242 -0
- package/skills/sentry/references/sdks/php/metrics.md +193 -0
- package/skills/sentry/references/sdks/php/profiling.md +115 -0
- package/skills/sentry/references/sdks/php/symfony.md +552 -0
- package/skills/sentry/references/sdks/php/tracing.md +516 -0
- package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
- package/skills/sentry/references/sdks/python/crons.md +218 -0
- package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
- package/skills/sentry/references/sdks/python/index.md +361 -0
- package/skills/sentry/references/sdks/python/logging.md +234 -0
- package/skills/sentry/references/sdks/python/metrics.md +154 -0
- package/skills/sentry/references/sdks/python/profiling.md +120 -0
- package/skills/sentry/references/sdks/python/tracing.md +364 -0
- package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
- package/skills/sentry/references/sdks/react/index.md +492 -0
- package/skills/sentry/references/sdks/react/logging.md +364 -0
- package/skills/sentry/references/sdks/react/profiling.md +322 -0
- package/skills/sentry/references/sdks/react/react-features.md +1272 -0
- package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
- package/skills/sentry/references/sdks/react/tracing.md +1415 -0
- package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
- package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
- package/skills/sentry/references/sdks/react-native/index.md +1030 -0
- package/skills/sentry/references/sdks/react-native/logging.md +444 -0
- package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
- package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
- package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
- package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
- package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
- package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
- package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
- package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
- package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
- package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
- package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
- package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
- package/skills/sentry/references/sdks/ruby/crons.md +184 -0
- package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
- package/skills/sentry/references/sdks/ruby/index.md +297 -0
- package/skills/sentry/references/sdks/ruby/logging.md +168 -0
- package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
- package/skills/sentry/references/sdks/ruby/migration.md +321 -0
- package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
- package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
- package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
- package/skills/sentry/references/sdks/svelte/index.md +467 -0
- package/skills/sentry/references/sdks/svelte/logging.md +344 -0
- package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
- package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
- package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
- package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
- package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
- package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
- package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
- package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
- package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
- package/skills/sentry/references/search-query-language.md +226 -0
- package/skills/sentry/references/semantics/angular.md +7 -0
- package/skills/sentry/references/semantics/app.md +28 -0
- package/skills/sentry/references/semantics/art.md +17 -0
- package/skills/sentry/references/semantics/aws.md +43 -0
- package/skills/sentry/references/semantics/browser.md +34 -0
- package/skills/sentry/references/semantics/cache.md +12 -0
- package/skills/sentry/references/semantics/client.md +8 -0
- package/skills/sentry/references/semantics/cloud.md +12 -0
- package/skills/sentry/references/semantics/cloudflare.md +23 -0
- package/skills/sentry/references/semantics/code.md +11 -0
- package/skills/sentry/references/semantics/culture.md +11 -0
- package/skills/sentry/references/semantics/db.md +21 -0
- package/skills/sentry/references/semantics/device.md +43 -0
- package/skills/sentry/references/semantics/error.md +7 -0
- package/skills/sentry/references/semantics/event.md +8 -0
- package/skills/sentry/references/semantics/exception.md +10 -0
- package/skills/sentry/references/semantics/faas.md +19 -0
- package/skills/sentry/references/semantics/file.md +8 -0
- package/skills/sentry/references/semantics/flag.md +7 -0
- package/skills/sentry/references/semantics/gcp.md +16 -0
- package/skills/sentry/references/semantics/gen_ai.md +53 -0
- package/skills/sentry/references/semantics/general.md +11 -0
- package/skills/sentry/references/semantics/graphql.md +9 -0
- package/skills/sentry/references/semantics/grpc.md +19 -0
- package/skills/sentry/references/semantics/http.md +34 -0
- package/skills/sentry/references/semantics/index.md +63 -0
- package/skills/sentry/references/semantics/jsonrpc.md +8 -0
- package/skills/sentry/references/semantics/jvm.md +12 -0
- package/skills/sentry/references/semantics/koa.md +7 -0
- package/skills/sentry/references/semantics/logger.md +7 -0
- package/skills/sentry/references/semantics/mcp.md +37 -0
- package/skills/sentry/references/semantics/mdc.md +7 -0
- package/skills/sentry/references/semantics/messaging.md +23 -0
- package/skills/sentry/references/semantics/middleware.md +7 -0
- package/skills/sentry/references/semantics/navigation.md +9 -0
- package/skills/sentry/references/semantics/nel.md +11 -0
- package/skills/sentry/references/semantics/network.md +17 -0
- package/skills/sentry/references/semantics/os.md +15 -0
- package/skills/sentry/references/semantics/otel.md +10 -0
- package/skills/sentry/references/semantics/params.md +7 -0
- package/skills/sentry/references/semantics/process.md +14 -0
- package/skills/sentry/references/semantics/react.md +7 -0
- package/skills/sentry/references/semantics/remix.md +7 -0
- package/skills/sentry/references/semantics/resource.md +7 -0
- package/skills/sentry/references/semantics/rpc.md +10 -0
- package/skills/sentry/references/semantics/score.md +10 -0
- package/skills/sentry/references/semantics/sentry.md +69 -0
- package/skills/sentry/references/semantics/server.md +8 -0
- package/skills/sentry/references/semantics/service.md +8 -0
- package/skills/sentry/references/semantics/session.md +7 -0
- package/skills/sentry/references/semantics/state.md +7 -0
- package/skills/sentry/references/semantics/thread.md +8 -0
- package/skills/sentry/references/semantics/timber.md +7 -0
- package/skills/sentry/references/semantics/trpc.md +8 -0
- package/skills/sentry/references/semantics/ui.md +18 -0
- package/skills/sentry/references/semantics/url.md +15 -0
- package/skills/sentry/references/semantics/user.md +17 -0
- package/skills/sentry/references/semantics/user_agent.md +7 -0
- package/skills/sentry/references/semantics/vercel.md +42 -0
- package/skills/sentry/references/setup-verification.md +39 -0
- package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
- package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
- package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
- package/skills/sentry/references/snapshots/index.md +19 -0
- package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
- package/skills/sentry/references/snapshots/snapshots.md +123 -0
- package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
- package/skills/testing/LICENSE +21 -0
- package/skills/testing/NOTICE +7 -0
- package/skills/testing/SKILL.md +13 -19
- package/skills/testing/agents/openai.yaml +1 -2
- package/skills/testing/references/selection.md +23 -0
- package/skills/testing/references/tdd.md +19 -0
- package/skills/testing/references/test-design.md +17 -0
- package/src/catalog.ts +1 -7
- package/skills/build-effect-apis/SKILL.md +0 -81
- package/skills/build-effect-apis/agents/openai.yaml +0 -4
- package/skills/build-effect-clis/SKILL.md +0 -92
- package/skills/build-effect-clis/agents/openai.yaml +0 -4
- package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
- package/skills/effect-atom-state/SKILL.md +0 -97
- package/skills/effect-atom-state/agents/openai.yaml +0 -4
- package/skills/effect-ts/SKILL.md +0 -35
- package/skills/effect-ts/agents/openai.yaml +0 -4
- /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
- /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
- /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
- /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# React Router Framework Features — Sentry React Router Framework SDK
|
|
2
|
+
|
|
3
|
+
> Framework mode package: `@sentry/react-router`
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Wizard path
|
|
8
|
+
|
|
9
|
+
Use the installer for fastest setup:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx @sentry/wizard@latest -i reactRouter
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The wizard can:
|
|
16
|
+
|
|
17
|
+
- install SDK packages
|
|
18
|
+
- expose `entry.client.tsx` and `entry.server.tsx`
|
|
19
|
+
- create `instrument.server.mjs`
|
|
20
|
+
- configure source maps in Vite/React Router config
|
|
21
|
+
- add example verification files/routes
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Manual framework file checklist
|
|
26
|
+
|
|
27
|
+
1. `entry.client.tsx` with:
|
|
28
|
+
- `Sentry.init(...)`
|
|
29
|
+
- `HydratedRouter onError={Sentry.sentryOnError}`
|
|
30
|
+
2. `instrument.server.mjs` with server `Sentry.init(...)`
|
|
31
|
+
3. `entry.server.tsx` with:
|
|
32
|
+
- `createSentryHandleRequest`
|
|
33
|
+
- `createSentryHandleError`
|
|
34
|
+
4. Runtime startup with `NODE_OPTIONS='--import ./instrument.server.mjs'`
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Source maps for framework builds
|
|
39
|
+
|
|
40
|
+
### Vite plugin
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import { reactRouter } from "@react-router/dev/vite";
|
|
44
|
+
import { sentryReactRouter } from "@sentry/react-router";
|
|
45
|
+
|
|
46
|
+
export default defineConfig((config) => ({
|
|
47
|
+
plugins: [reactRouter(), sentryReactRouter(sentryConfig, config)],
|
|
48
|
+
}));
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### React Router build end hook
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import { sentryOnBuildEnd } from "@sentry/react-router";
|
|
55
|
+
|
|
56
|
+
export default {
|
|
57
|
+
ssr: true,
|
|
58
|
+
buildEnd: async ({ viteConfig, reactRouterConfig, buildManifest }) => {
|
|
59
|
+
await sentryOnBuildEnd({ viteConfig, reactRouterConfig, buildManifest });
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Auth token
|
|
65
|
+
|
|
66
|
+
Use `SENTRY_AUTH_TOKEN` via environment variables (or `.env.sentry-build-plugin`).
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Runtime startup strategies
|
|
71
|
+
|
|
72
|
+
### Preferred (`NODE_OPTIONS --import`)
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"scripts": {
|
|
77
|
+
"dev": "NODE_OPTIONS='--import ./instrument.server.mjs' react-router dev",
|
|
78
|
+
"start": "NODE_OPTIONS='--import ./instrument.server.mjs' react-router-serve ./build/server/index.js"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Fallback (direct import)
|
|
84
|
+
|
|
85
|
+
If runtime flags are unavailable, import server instrumentation at the top of
|
|
86
|
+
`entry.server.tsx`:
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
import "./instrument.server.mjs";
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
This fallback may have incomplete automatic instrumentation compared to `--import`.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Non-framework handoff
|
|
97
|
+
|
|
98
|
+
If project uses React Router in data/declarative mode without framework entry wrappers,
|
|
99
|
+
route setup to [`react`](../react/index.md) (`@sentry/react`) for v5/v6/v7 integrations.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Troubleshooting
|
|
104
|
+
|
|
105
|
+
| Issue | Solution |
|
|
106
|
+
| ----------------------------------------- | ---------------------------------------------------------------------------------- |
|
|
107
|
+
| Entry files not present | Run `npx react-router reveal` |
|
|
108
|
+
| Source maps still minified | Confirm both `sentryReactRouter` plugin and `sentryOnBuildEnd` hook are configured |
|
|
109
|
+
| Server startup misses instrumentation | Ensure `NODE_OPTIONS --import` is actually applied in deployed runtime |
|
|
110
|
+
| Framework setup used in non-framework app | Switch to [`react`](../react/index.md) guidance |
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Session Replay — Sentry React Router Framework SDK
|
|
2
|
+
|
|
3
|
+
> Minimum SDK: `@sentry/react-router` with Replay support
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Replay setup (client)
|
|
8
|
+
|
|
9
|
+
Configure replay in `entry.client.tsx`:
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import * as Sentry from "@sentry/react-router";
|
|
13
|
+
|
|
14
|
+
Sentry.init({
|
|
15
|
+
dsn: "___PUBLIC_DSN___",
|
|
16
|
+
integrations: [Sentry.replayIntegration()],
|
|
17
|
+
replaysSessionSampleRate: 0.1,
|
|
18
|
+
replaysOnErrorSampleRate: 1.0,
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Sampling guidance
|
|
25
|
+
|
|
26
|
+
| Goal | Suggested setup |
|
|
27
|
+
| --------------------- | ---------------------------------------------------------------- |
|
|
28
|
+
| Validate integration | `replaysSessionSampleRate: 0.1`, `replaysOnErrorSampleRate: 1.0` |
|
|
29
|
+
| Control storage costs | Lower session sample rate; keep error replay rate high |
|
|
30
|
+
| Incident debugging | Temporarily increase session sample rate |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Privacy controls
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
Sentry.init({
|
|
38
|
+
dsn: "___PUBLIC_DSN___",
|
|
39
|
+
integrations: [
|
|
40
|
+
Sentry.replayIntegration({
|
|
41
|
+
maskAllText: true,
|
|
42
|
+
blockAllMedia: true,
|
|
43
|
+
}),
|
|
44
|
+
],
|
|
45
|
+
replaysSessionSampleRate: 0.1,
|
|
46
|
+
replaysOnErrorSampleRate: 1.0,
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Verification
|
|
53
|
+
|
|
54
|
+
1. Use the app in a browser and trigger an error.
|
|
55
|
+
2. Open **Replays** in Sentry.
|
|
56
|
+
3. Confirm replay exists and is linked to errors/traces.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Troubleshooting
|
|
61
|
+
|
|
62
|
+
| Issue | Solution |
|
|
63
|
+
| ----------------------- | ----------------------------------------------------------- |
|
|
64
|
+
| Replay missing | Ensure `replayIntegration()` is configured in client init |
|
|
65
|
+
| Only error replays show | Increase `replaysSessionSampleRate` |
|
|
66
|
+
| Sensitive data visible | Enable masking/blocking and verify element privacy settings |
|
|
67
|
+
| Replay volume too high | Lower replay sampling rates |
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Tracing — Sentry React Router Framework SDK
|
|
2
|
+
|
|
3
|
+
> Minimum SDK: `@sentry/react-router` (beta)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Enable tracing
|
|
8
|
+
|
|
9
|
+
Configure tracing in `entry.client.tsx`:
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import * as Sentry from "@sentry/react-router";
|
|
13
|
+
|
|
14
|
+
Sentry.init({
|
|
15
|
+
dsn: "___PUBLIC_DSN___",
|
|
16
|
+
integrations: [Sentry.reactRouterTracingIntegration()],
|
|
17
|
+
tracesSampleRate: 1.0,
|
|
18
|
+
tracePropagationTargets: ["localhost", /^https:\/\/yourserver\.io\/api/],
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Sampling guidance
|
|
25
|
+
|
|
26
|
+
| Environment | Suggested value |
|
|
27
|
+
| -------------------------- | --------------------------------------- |
|
|
28
|
+
| Development/testing | `tracesSampleRate: 1.0` |
|
|
29
|
+
| Initial production rollout | `0.1` to `0.3` |
|
|
30
|
+
| High throughput | Use lower fixed rate or `tracesSampler` |
|
|
31
|
+
|
|
32
|
+
If both `tracesSampleRate` and `tracesSampler` are provided, `tracesSampler` takes
|
|
33
|
+
precedence.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Distributed tracing
|
|
38
|
+
|
|
39
|
+
Use `tracePropagationTargets` so Sentry sends trace headers to your backend routes:
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
Sentry.init({
|
|
43
|
+
dsn: "___PUBLIC_DSN___",
|
|
44
|
+
integrations: [Sentry.reactRouterTracingIntegration()],
|
|
45
|
+
tracesSampleRate: 0.2,
|
|
46
|
+
tracePropagationTargets: [/^\//, /^https:\/\/api\.example\.com/],
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Custom spans
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
import * as Sentry from "@sentry/react-router";
|
|
56
|
+
|
|
57
|
+
export async function loader() {
|
|
58
|
+
return Sentry.startSpan(
|
|
59
|
+
{
|
|
60
|
+
op: "test",
|
|
61
|
+
name: "My First Test Transaction",
|
|
62
|
+
},
|
|
63
|
+
() => {
|
|
64
|
+
throw new Error("My first Sentry error!");
|
|
65
|
+
},
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Node runtime note
|
|
73
|
+
|
|
74
|
+
Automatic server-side instrumentation compatibility has version limits for some Node
|
|
75
|
+
versions in current docs.
|
|
76
|
+
If your runtime is outside supported auto-instrumentation ranges, use framework
|
|
77
|
+
instrumentation APIs or manual wrappers to keep tracing coverage.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Verification
|
|
82
|
+
|
|
83
|
+
1. Trigger one loader/action request from the app.
|
|
84
|
+
2. Open **Traces** in Sentry.
|
|
85
|
+
3. Confirm transaction names, spans, and linked errors appear.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Troubleshooting
|
|
90
|
+
|
|
91
|
+
| Issue | Solution |
|
|
92
|
+
| ------------------------------------------ | ------------------------------------------------------------------------------- |
|
|
93
|
+
| No trace data | Confirm `reactRouterTracingIntegration()` and `tracesSampleRate` are configured |
|
|
94
|
+
| Client and server traces not connected | Adjust `tracePropagationTargets` to include backend URLs |
|
|
95
|
+
| Too many traces | Lower sample rate or use `tracesSampler` |
|
|
96
|
+
| Tracing disappears in certain environments | Check runtime version constraints and fallback instrumentation path |
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# User Feedback — Sentry React Router Framework SDK
|
|
2
|
+
|
|
3
|
+
> Minimum SDK: `@sentry/react-router` with Feedback support
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Feedback widget setup
|
|
8
|
+
|
|
9
|
+
Configure in `entry.client.tsx`:
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import * as Sentry from "@sentry/react-router";
|
|
13
|
+
|
|
14
|
+
Sentry.init({
|
|
15
|
+
dsn: "___PUBLIC_DSN___",
|
|
16
|
+
integrations: [
|
|
17
|
+
Sentry.feedbackIntegration({
|
|
18
|
+
colorScheme: "system",
|
|
19
|
+
}),
|
|
20
|
+
],
|
|
21
|
+
});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Common options
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
Sentry.feedbackIntegration({
|
|
30
|
+
autoInject: true,
|
|
31
|
+
colorScheme: "system",
|
|
32
|
+
showName: true,
|
|
33
|
+
showEmail: true,
|
|
34
|
+
triggerLabel: "Report a bug",
|
|
35
|
+
formTitle: "Report a bug",
|
|
36
|
+
submitButtonLabel: "Send report",
|
|
37
|
+
successMessageText: "Thanks for the report.",
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Error-linked feedback dialog
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
const eventId = Sentry.captureException(new Error("Checkout failed"));
|
|
47
|
+
Sentry.showReportDialog({
|
|
48
|
+
eventId,
|
|
49
|
+
title: "Something went wrong",
|
|
50
|
+
subtitle: "Tell us what happened",
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Verification
|
|
57
|
+
|
|
58
|
+
1. Trigger feedback widget submission from the app.
|
|
59
|
+
2. Open **User Feedback** in Sentry.
|
|
60
|
+
3. Confirm submissions appear and error-linked reports attach to events.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Troubleshooting
|
|
65
|
+
|
|
66
|
+
| Issue | Solution |
|
|
67
|
+
| ----------------------------- | -------------------------------------------------------- |
|
|
68
|
+
| Feedback widget not visible | Ensure `feedbackIntegration()` is in client integrations |
|
|
69
|
+
| Missing user context | Set Sentry user context before submitting feedback |
|
|
70
|
+
| Feedback not linked to errors | Use `showReportDialog` with a real `eventId` |
|
|
71
|
+
| UI overlap/z-index issues | Adjust app styles and trigger placement |
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Crons — Sentry Ruby SDK
|
|
2
|
+
|
|
3
|
+
> Minimum SDK: `sentry-ruby` v5.14.0+
|
|
4
|
+
|
|
5
|
+
Cron monitoring detects missed, failed, or slow scheduled jobs by capturing check-in
|
|
6
|
+
events at job start and completion.
|
|
7
|
+
Each check-in pair creates a monitor timeline in Sentry — if the `:ok` check-in doesn’t
|
|
8
|
+
arrive on time, Sentry raises an alert.
|
|
9
|
+
|
|
10
|
+
## Contents
|
|
11
|
+
|
|
12
|
+
- [Manual check-ins](#manual-check-ins)
|
|
13
|
+
- [ActiveJob integration](#activejob-integration)
|
|
14
|
+
- [Sidekiq-Cron integration](#sidekiq-cron-integration)
|
|
15
|
+
- [Upserting monitor configuration](#upserting-monitor-configuration)
|
|
16
|
+
- [Completion-only check-in](#completion-only-check-in)
|
|
17
|
+
- [Best Practices](#best-practices)
|
|
18
|
+
- [Troubleshooting](#troubleshooting)
|
|
19
|
+
|
|
20
|
+
## Manual Check-Ins
|
|
21
|
+
|
|
22
|
+
Use when the scheduler is Clockwork, Whenever, a plain Ruby loop, or any framework
|
|
23
|
+
without a built-in integration:
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
# Start check-in — save the returned ID
|
|
27
|
+
check_in_id = Sentry.capture_check_in("daily-report", :in_progress)
|
|
28
|
+
|
|
29
|
+
begin
|
|
30
|
+
GenerateDailyReport.run
|
|
31
|
+
Sentry.capture_check_in("daily-report", :ok, check_in_id: check_in_id)
|
|
32
|
+
rescue => e
|
|
33
|
+
Sentry.capture_check_in("daily-report", :error, check_in_id: check_in_id)
|
|
34
|
+
Sentry.capture_exception(e)
|
|
35
|
+
raise
|
|
36
|
+
end
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Monitor slug** must match the slug configured in Sentry.
|
|
40
|
+
Slugs are unique per project and environment.
|
|
41
|
+
|
|
42
|
+
**Status values:**
|
|
43
|
+
|
|
44
|
+
| Status | When to use |
|
|
45
|
+
| -------------- | -------------------------- |
|
|
46
|
+
| `:in_progress` | Job has started |
|
|
47
|
+
| `:ok` | Job completed successfully |
|
|
48
|
+
| `:error` | Job failed |
|
|
49
|
+
|
|
50
|
+
## ActiveJob Integration
|
|
51
|
+
|
|
52
|
+
Include `Sentry::Cron::MonitorCheckIns` to auto-capture check-ins for any ActiveJob:
|
|
53
|
+
|
|
54
|
+
```ruby
|
|
55
|
+
class NightlyCleanupJob < ApplicationJob
|
|
56
|
+
include Sentry::Cron::MonitorCheckIns
|
|
57
|
+
sentry_monitor_check_ins
|
|
58
|
+
|
|
59
|
+
def perform
|
|
60
|
+
User.inactive.delete_old_accounts
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Customize the slug and schedule:
|
|
66
|
+
|
|
67
|
+
```ruby
|
|
68
|
+
class NightlyCleanupJob < ApplicationJob
|
|
69
|
+
include Sentry::Cron::MonitorCheckIns
|
|
70
|
+
sentry_monitor_check_ins(
|
|
71
|
+
slug: "nightly-cleanup",
|
|
72
|
+
monitor_config: Sentry::Cron::MonitorConfig.from_crontab(
|
|
73
|
+
"0 2 * * *",
|
|
74
|
+
checkin_margin: 5, # minutes before marking missed
|
|
75
|
+
max_runtime: 30, # minutes before marking timed out
|
|
76
|
+
timezone: "UTC"
|
|
77
|
+
)
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
def perform
|
|
81
|
+
User.inactive.delete_old_accounts
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Sidekiq-Cron Integration
|
|
87
|
+
|
|
88
|
+
Enable automatic check-ins for all Sidekiq-Cron periodic jobs with a single patch:
|
|
89
|
+
|
|
90
|
+
```ruby
|
|
91
|
+
Sentry.init do |config|
|
|
92
|
+
config.dsn = ENV["SENTRY_DSN"]
|
|
93
|
+
config.enabled_patches += [:sidekiq_cron]
|
|
94
|
+
end
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Sentry captures check-ins for every job defined in your Sidekiq-Cron schedule
|
|
98
|
+
automatically — no per-job changes needed.
|
|
99
|
+
|
|
100
|
+
## Upserting Monitor Configuration
|
|
101
|
+
|
|
102
|
+
Pass `monitor_config` in the initial check-in to create or update the monitor definition
|
|
103
|
+
programmatically (no manual setup in Sentry UI required):
|
|
104
|
+
|
|
105
|
+
```ruby
|
|
106
|
+
monitor_config = Sentry::Cron::MonitorConfig.from_crontab(
|
|
107
|
+
"5 * * * *", # runs at :05 every hour
|
|
108
|
+
checkin_margin: 5,
|
|
109
|
+
max_runtime: 15,
|
|
110
|
+
timezone: "Europe/Berlin"
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
check_in_id = Sentry.capture_check_in(
|
|
114
|
+
"hourly-sync",
|
|
115
|
+
:in_progress,
|
|
116
|
+
monitor_config: monitor_config
|
|
117
|
+
)
|
|
118
|
+
# ... do work ...
|
|
119
|
+
Sentry.capture_check_in("hourly-sync", :ok, check_in_id: check_in_id)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Schedule Types
|
|
123
|
+
|
|
124
|
+
**Crontab:**
|
|
125
|
+
|
|
126
|
+
```ruby
|
|
127
|
+
Sentry::Cron::MonitorConfig.from_crontab(
|
|
128
|
+
"0 9 * * 1-5", # 9am weekdays
|
|
129
|
+
checkin_margin: 10,
|
|
130
|
+
max_runtime: 60,
|
|
131
|
+
timezone: "America/New_York"
|
|
132
|
+
)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Interval:**
|
|
136
|
+
|
|
137
|
+
```ruby
|
|
138
|
+
Sentry::Cron::MonitorConfig.from_interval(
|
|
139
|
+
30, :minute, # every 30 minutes
|
|
140
|
+
checkin_margin: 5,
|
|
141
|
+
max_runtime: 25
|
|
142
|
+
)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Supported interval units: `:minute`, `:hour`, `:day`, `:week`, `:month`, `:year`
|
|
146
|
+
|
|
147
|
+
## Completion-Only Check-In
|
|
148
|
+
|
|
149
|
+
For jobs where only missed-schedule detection matters (not duration), send a single
|
|
150
|
+
`:ok` check-in at job completion instead of the two-step `:in_progress` / `:ok` pair:
|
|
151
|
+
|
|
152
|
+
```ruby
|
|
153
|
+
def run_health_ping
|
|
154
|
+
ping_all_services
|
|
155
|
+
Sentry.capture_check_in("health-ping", :ok)
|
|
156
|
+
end
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
This detects when a job doesn’t run at all but cannot detect stuck or long-running jobs
|
|
160
|
+
— there is no `:in_progress` marker, so Sentry has no start time to measure against
|
|
161
|
+
`max_runtime`. Use the full two-step pattern for jobs where duration matters.
|
|
162
|
+
|
|
163
|
+
## Best Practices
|
|
164
|
+
|
|
165
|
+
- Use the two-step `:in_progress` / `:ok` pattern for all long-running jobs — it catches
|
|
166
|
+
both missed runs and jobs that started but never finished
|
|
167
|
+
- Set `checkin_margin` a few minutes above the expected cron interval jitter
|
|
168
|
+
- Set `max_runtime` conservatively — it’s better to alert early on a runaway job than to
|
|
169
|
+
miss it
|
|
170
|
+
- Use `monitor_config` upsert in the job itself rather than configuring monitors
|
|
171
|
+
manually in the Sentry UI — this keeps schedule definitions in code
|
|
172
|
+
- Ensure `SENTRY_DSN` is set in the environment where cron jobs run (often different
|
|
173
|
+
from the web process)
|
|
174
|
+
|
|
175
|
+
## Troubleshooting
|
|
176
|
+
|
|
177
|
+
| Issue | Solution |
|
|
178
|
+
| ---------------------------------- | --------------------------------------------------------------------------------------------------- |
|
|
179
|
+
| Check-ins not appearing | Verify `SENTRY_DSN` is set in the cron job’s environment (separate from web server) |
|
|
180
|
+
| Monitor shows “missed” immediately | `checkin_margin` too low; increase it to account for scheduler jitter |
|
|
181
|
+
| `capture_check_in` returns `nil` | SDK not initialized — ensure `Sentry.init` runs before the job |
|
|
182
|
+
| ActiveJob mixin not capturing | Confirm `include Sentry::Cron::MonitorCheckIns` and `sentry_monitor_check_ins` are both present |
|
|
183
|
+
| Sidekiq-Cron not auto-capturing | Ensure `config.enabled_patches += [:sidekiq_cron]` is in `Sentry.init`; requires `sidekiq-cron` gem |
|
|
184
|
+
| Duplicate check-in pairs | Check that `capture_check_in` is not called in both the mixin and manual code for the same job |
|