@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
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
# Tracing — Sentry Python SDK
|
|
2
|
+
|
|
3
|
+
> Minimum SDK: `sentry-sdk` 0.11.2+ for basic tracing; 2.x for `update_current_span()`
|
|
4
|
+
> and enhanced `@trace`
|
|
5
|
+
|
|
6
|
+
## Configuration
|
|
7
|
+
|
|
8
|
+
| Option | Type | Default | Purpose |
|
|
9
|
+
| --------------------------- | ---------- | ----------- | -------------------------------------------------------------------- |
|
|
10
|
+
| `traces_sample_rate` | `float` | `None` | Fraction of transactions to trace (0.0–1.0); `None` disables tracing |
|
|
11
|
+
| `traces_sampler` | `callable` | `None` | Per-transaction sampling function; overrides `traces_sample_rate` |
|
|
12
|
+
| `trace_propagation_targets` | `list` | all origins | URLs to inject `sentry-trace` / `baggage` headers into |
|
|
13
|
+
| `functions_to_trace` | `list` | `[]` | Fully-qualified function names to auto-wrap with spans |
|
|
14
|
+
| `instrumenter` | `str` | `"sentry"` | Set to `"otel"` to use OpenTelemetry bridge |
|
|
15
|
+
|
|
16
|
+
## Code Examples
|
|
17
|
+
|
|
18
|
+
### Enable tracing
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
import sentry_sdk
|
|
22
|
+
|
|
23
|
+
sentry_sdk.init(
|
|
24
|
+
dsn="https://<key>@<org>.ingest.sentry.io/<project>",
|
|
25
|
+
traces_sample_rate=1.0, # 1.0 = 100% of transactions; reduce in production
|
|
26
|
+
)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Custom spans with context manager
|
|
30
|
+
|
|
31
|
+
```python
|
|
32
|
+
import sentry_sdk
|
|
33
|
+
|
|
34
|
+
# Top-level transaction
|
|
35
|
+
with sentry_sdk.start_transaction(op="task", name="Process Order"):
|
|
36
|
+
with sentry_sdk.start_span(name="Validate Items") as span:
|
|
37
|
+
span.set_data("item_count", len(items))
|
|
38
|
+
validate(items)
|
|
39
|
+
|
|
40
|
+
with sentry_sdk.start_span(name="Charge Card"):
|
|
41
|
+
charge_card(order)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### `@sentry_sdk.trace` decorator
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
import sentry_sdk
|
|
48
|
+
|
|
49
|
+
# Simple decorator — uses function name as span name
|
|
50
|
+
@sentry_sdk.trace
|
|
51
|
+
def process_payment(order_id: str):
|
|
52
|
+
...
|
|
53
|
+
|
|
54
|
+
# With custom op, name, and attributes (SDK 2.35.0+)
|
|
55
|
+
@sentry_sdk.trace(op="payment", name="Charge Customer", attributes={"version": 2})
|
|
56
|
+
def charge_customer(amount: int):
|
|
57
|
+
...
|
|
58
|
+
|
|
59
|
+
# Static / class methods — decorator order matters!
|
|
60
|
+
class PaymentService:
|
|
61
|
+
@staticmethod
|
|
62
|
+
@sentry_sdk.trace # MUST come AFTER @staticmethod
|
|
63
|
+
def process():
|
|
64
|
+
...
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
@sentry_sdk.trace # MUST come AFTER @classmethod
|
|
68
|
+
def batch_process(cls):
|
|
69
|
+
...
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Adding data to spans
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
import sentry_sdk
|
|
76
|
+
|
|
77
|
+
with sentry_sdk.start_span(name="db-query") as span:
|
|
78
|
+
span.set_data("db.system", "postgresql")
|
|
79
|
+
span.set_data("db.table", "orders")
|
|
80
|
+
span.set_data("row_count", 42)
|
|
81
|
+
span.set_data("cache_hit", False)
|
|
82
|
+
# Only primitive types: str, int, float, bool, or homogeneous lists
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Accessing the active span/transaction
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
import sentry_sdk
|
|
89
|
+
|
|
90
|
+
# Get active span
|
|
91
|
+
span = sentry_sdk.get_current_span()
|
|
92
|
+
if span:
|
|
93
|
+
span.set_data("key", "value")
|
|
94
|
+
|
|
95
|
+
# Get active transaction
|
|
96
|
+
txn = sentry_sdk.get_current_scope().transaction
|
|
97
|
+
if txn:
|
|
98
|
+
txn.set_tag("order.type", "subscription")
|
|
99
|
+
|
|
100
|
+
# Update active span in-place (SDK 2.x)
|
|
101
|
+
sentry_sdk.update_current_span(
|
|
102
|
+
op="http.client",
|
|
103
|
+
name="POST /api/charge",
|
|
104
|
+
attributes={"http.status_code": 200},
|
|
105
|
+
)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Auto-trace multiple functions without decorators
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
import sentry_sdk
|
|
112
|
+
|
|
113
|
+
sentry_sdk.init(
|
|
114
|
+
dsn="...",
|
|
115
|
+
traces_sample_rate=1.0,
|
|
116
|
+
functions_to_trace=[
|
|
117
|
+
{"qualified_name": "myapp.billing.processor.charge_card"},
|
|
118
|
+
{"qualified_name": "myapp.billing.processor.BillingService.validate"},
|
|
119
|
+
],
|
|
120
|
+
)
|
|
121
|
+
# No changes to the functions themselves required
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Dynamic sampling with `traces_sampler`
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
import sentry_sdk
|
|
128
|
+
|
|
129
|
+
def traces_sampler(sampling_context):
|
|
130
|
+
# Honour parent's sampling decision in distributed traces
|
|
131
|
+
parent = sampling_context.get("parent_sampled")
|
|
132
|
+
if parent is not None:
|
|
133
|
+
return float(parent)
|
|
134
|
+
|
|
135
|
+
op = sampling_context["transaction_context"].get("op", "")
|
|
136
|
+
|
|
137
|
+
if op == "http.server":
|
|
138
|
+
name = sampling_context["transaction_context"].get("name", "")
|
|
139
|
+
if name in ("/health", "/ping", "/readyz"):
|
|
140
|
+
return 0 # drop health checks
|
|
141
|
+
return 0.5 # sample 50% of HTTP requests
|
|
142
|
+
elif op == "task":
|
|
143
|
+
return 0.1 # sample 10% of background tasks
|
|
144
|
+
else:
|
|
145
|
+
return 0.01 # default 1%
|
|
146
|
+
|
|
147
|
+
sentry_sdk.init(dsn="...", traces_sampler=traces_sampler)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Auto-instrumented frameworks
|
|
151
|
+
|
|
152
|
+
| Framework | Auto-enabled | What is traced |
|
|
153
|
+
| ------------------------- | ------------ | ------------------------------------------ |
|
|
154
|
+
| Django | ✅ | Requests, DB queries (ORM), cache, signals |
|
|
155
|
+
| Flask | ✅ | Requests, Jinja2 rendering |
|
|
156
|
+
| FastAPI / Starlette | ✅ | Requests, background tasks |
|
|
157
|
+
| Pyramid | ✅ | Requests, route matching |
|
|
158
|
+
| Celery | ✅ | Task execution, queue operations |
|
|
159
|
+
| SQLAlchemy | ✅ | All queries as spans + breadcrumbs |
|
|
160
|
+
| Redis | ✅ | All commands as spans + breadcrumbs |
|
|
161
|
+
| PyMongo | ✅ | All queries (covers mongoengine, Motor) |
|
|
162
|
+
| requests / httpx / httpx2 | ✅ | Outbound HTTP calls with trace propagation |
|
|
163
|
+
|
|
164
|
+
### Database auto-instrumentation
|
|
165
|
+
|
|
166
|
+
```python
|
|
167
|
+
import sentry_sdk
|
|
168
|
+
from sentry_sdk.integrations.redis import RedisIntegration
|
|
169
|
+
|
|
170
|
+
# SQLAlchemy — auto-enabled, no config needed
|
|
171
|
+
sentry_sdk.init(dsn="...", traces_sample_rate=1.0)
|
|
172
|
+
# All queries appear as spans automatically
|
|
173
|
+
|
|
174
|
+
# Redis — with optional cache monitoring
|
|
175
|
+
sentry_sdk.init(
|
|
176
|
+
dsn="...",
|
|
177
|
+
traces_sample_rate=1.0,
|
|
178
|
+
send_default_pii=True, # enables full command data in spans
|
|
179
|
+
integrations=[
|
|
180
|
+
RedisIntegration(
|
|
181
|
+
max_data_size=1024, # truncate large values
|
|
182
|
+
cache_prefixes=["mycache:", "template."], # appears in cache dashboard
|
|
183
|
+
),
|
|
184
|
+
],
|
|
185
|
+
)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Distributed tracing
|
|
189
|
+
|
|
190
|
+
Frameworks propagate `sentry-trace` and `baggage` headers automatically.
|
|
191
|
+
For manual HTTP calls:
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
import sentry_sdk
|
|
195
|
+
|
|
196
|
+
# Outgoing: inject headers into arbitrary request
|
|
197
|
+
headers = {}
|
|
198
|
+
headers["sentry-trace"] = sentry_sdk.get_traceparent()
|
|
199
|
+
headers["baggage"] = sentry_sdk.get_baggage()
|
|
200
|
+
make_request(url="https://internal-api.example.com", headers=headers)
|
|
201
|
+
|
|
202
|
+
# Incoming: continue a trace from arbitrary headers
|
|
203
|
+
incoming_headers = get_headers_from_request()
|
|
204
|
+
transaction = sentry_sdk.continue_trace(incoming_headers) # does NOT start it
|
|
205
|
+
with sentry_sdk.start_transaction(transaction):
|
|
206
|
+
handle_request()
|
|
207
|
+
|
|
208
|
+
# Browser: inject into HTML meta tags for JS frontend pickup
|
|
209
|
+
meta = f'<meta name="sentry-trace" content="{sentry_sdk.get_traceparent()}">'
|
|
210
|
+
meta += f'<meta name="baggage" content="{sentry_sdk.get_baggage()}">'
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Limit propagation targets
|
|
214
|
+
|
|
215
|
+
```python
|
|
216
|
+
import sentry_sdk, re
|
|
217
|
+
|
|
218
|
+
sentry_sdk.init(
|
|
219
|
+
dsn="...",
|
|
220
|
+
traces_sample_rate=1.0,
|
|
221
|
+
trace_propagation_targets=[
|
|
222
|
+
"localhost",
|
|
223
|
+
"https://api.myservice.com",
|
|
224
|
+
re.compile(r"^https://internal\."),
|
|
225
|
+
],
|
|
226
|
+
# Set to [] to disable outgoing propagation entirely
|
|
227
|
+
)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### OpenTelemetry — OTLP Integration (recommended)
|
|
231
|
+
|
|
232
|
+
> Minimum SDK: `sentry-sdk` 2.x with `sentry-sdk[opentelemetry-otlp]`
|
|
233
|
+
|
|
234
|
+
If the project already uses OpenTelemetry for tracing, **use the OTLP integration
|
|
235
|
+
instead of Sentry’s native tracing**. Sentry ingests OTel spans directly via its OTLP
|
|
236
|
+
endpoint — no span conversion, no dual instrumentation.
|
|
237
|
+
|
|
238
|
+
**When to use this path:** OTel packages (`opentelemetry-sdk`, `opentelemetry-distro`,
|
|
239
|
+
`opentelemetry-instrumentation-*`) detected in requirements, or `TracerProvider` /
|
|
240
|
+
`start_as_current_span` found in source.
|
|
241
|
+
|
|
242
|
+
**When NOT to use this path:** No OpenTelemetry in the project — use Sentry’s native
|
|
243
|
+
`traces_sample_rate` instead.
|
|
244
|
+
|
|
245
|
+
#### Setup
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
pip install "sentry-sdk[opentelemetry-otlp]"
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
```python
|
|
252
|
+
import os
|
|
253
|
+
import sentry_sdk
|
|
254
|
+
from sentry_sdk.integrations.otlp import OTLPIntegration
|
|
255
|
+
|
|
256
|
+
sentry_sdk.init(
|
|
257
|
+
dsn=os.environ["SENTRY_DSN"],
|
|
258
|
+
send_default_pii=True,
|
|
259
|
+
enable_logs=True,
|
|
260
|
+
integrations=[
|
|
261
|
+
OTLPIntegration(),
|
|
262
|
+
# OTLPIntegration(collector_url="http://localhost:4318/v1/traces"), # set if sending spans to an OTel Collector
|
|
263
|
+
],
|
|
264
|
+
# Do NOT set traces_sample_rate — tracing is handled by OTel
|
|
265
|
+
# Errors, Logs, Crons, and Metrics are still captured natively by Sentry
|
|
266
|
+
# and automatically linked to the active OTel trace
|
|
267
|
+
)
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Configure your OTel instrumentations separately (keep your existing OTel setup):
|
|
271
|
+
|
|
272
|
+
```python
|
|
273
|
+
from opentelemetry.instrumentation.auto_instrumentation import sitecustomize
|
|
274
|
+
# or configure manually:
|
|
275
|
+
from opentelemetry import trace
|
|
276
|
+
from opentelemetry.sdk.trace import TracerProvider
|
|
277
|
+
|
|
278
|
+
provider = TracerProvider()
|
|
279
|
+
trace.set_tracer_provider(provider)
|
|
280
|
+
# Sentry auto-adds its OTLP exporter and propagator —
|
|
281
|
+
# no manual SpanProcessor or Propagator wiring needed
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
#### How it works
|
|
285
|
+
|
|
286
|
+
- Sentry derives an OTLP endpoint from your DSN and registers a `SpanExporter` with the
|
|
287
|
+
existing `TracerProvider` — your other exporters (Jaeger, Zipkin, Collector) continue
|
|
288
|
+
working
|
|
289
|
+
- A propagator injects `sentry-trace` + `baggage` headers for distributed tracing with
|
|
290
|
+
other Sentry-instrumented services
|
|
291
|
+
- Errors captured via `sentry_sdk.capture_exception()` are automatically linked to the
|
|
292
|
+
active OTel trace/span via shared `trace_id`
|
|
293
|
+
|
|
294
|
+
#### OTLP configuration options
|
|
295
|
+
|
|
296
|
+
| Option | Default | Purpose |
|
|
297
|
+
| ---------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
298
|
+
| `setup_otlp_traces_exporter` | `True` | Auto-configure exporter; set `False` if you send to your own Collector |
|
|
299
|
+
| `collector_url` | `None` | OTLP 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 |
|
|
300
|
+
| `setup_propagator` | `True` | Auto-configure propagator; set `False` if you manage propagation yourself |
|
|
301
|
+
| `capture_exceptions` | `False` | Intercept exceptions recorded via OTel `Span.record_exception` |
|
|
302
|
+
|
|
303
|
+
#### Important
|
|
304
|
+
|
|
305
|
+
**Do not combine OTLP with native Sentry tracing.** When using `OTLPIntegration`:
|
|
306
|
+
|
|
307
|
+
- Do **not** set `traces_sample_rate` or `traces_sampler`
|
|
308
|
+
- Do **not** set `instrumenter="otel"` (that is the legacy SpanProcessor approach)
|
|
309
|
+
- Do **not** use `sentry_sdk.start_transaction()` or `sentry_sdk.start_span()` — use
|
|
310
|
+
OTel’s `tracer.start_as_current_span()` instead
|
|
311
|
+
|
|
312
|
+
### OpenTelemetry bridge (legacy)
|
|
313
|
+
|
|
314
|
+
> **Deprecated:** Prefer the OTLP integration above.
|
|
315
|
+
> The SpanProcessor bridge below is the older approach.
|
|
316
|
+
|
|
317
|
+
```python
|
|
318
|
+
# pip install "sentry-sdk[opentelemetry]"
|
|
319
|
+
import sentry_sdk
|
|
320
|
+
from opentelemetry import trace
|
|
321
|
+
from opentelemetry.propagate import set_global_textmap
|
|
322
|
+
from opentelemetry.sdk.trace import TracerProvider
|
|
323
|
+
from sentry_sdk.integrations.opentelemetry import SentrySpanProcessor, SentryPropagator
|
|
324
|
+
|
|
325
|
+
sentry_sdk.init(
|
|
326
|
+
dsn="...",
|
|
327
|
+
traces_sample_rate=1.0,
|
|
328
|
+
instrumenter="otel", # disables built-in Sentry auto-instrumentation
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
provider = TracerProvider()
|
|
332
|
+
provider.add_span_processor(SentrySpanProcessor())
|
|
333
|
+
trace.set_tracer_provider(provider)
|
|
334
|
+
set_global_textmap(SentryPropagator())
|
|
335
|
+
|
|
336
|
+
# Use OTel API as normal — spans appear in Sentry
|
|
337
|
+
tracer = trace.get_tracer(__name__)
|
|
338
|
+
with tracer.start_as_current_span("my-operation"):
|
|
339
|
+
do_work()
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
## Best Practices
|
|
343
|
+
|
|
344
|
+
- Use `traces_sampler` instead of `traces_sample_rate` for production — it lets you drop
|
|
345
|
+
health checks, adjust by route, and honour distributed trace decisions
|
|
346
|
+
- Always finish spans — unfinished spans are silently dropped
|
|
347
|
+
- Use `span.set_data()` not `span.set_tag()` for span-level data (tags are for
|
|
348
|
+
scope-level filtering)
|
|
349
|
+
- Set `trace_propagation_targets` to avoid leaking `sentry-trace` headers to third-party
|
|
350
|
+
services
|
|
351
|
+
- Add `sentry-trace` and `baggage` to your CORS allowlist when tracing
|
|
352
|
+
browser-to-backend flows
|
|
353
|
+
|
|
354
|
+
## Troubleshooting
|
|
355
|
+
|
|
356
|
+
| Issue | Solution |
|
|
357
|
+
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
|
|
358
|
+
| No transactions appearing | Verify `traces_sample_rate > 0` or `traces_sampler` returns non-zero |
|
|
359
|
+
| Spans not linked to transaction | Ensure spans are created inside an active `start_transaction()` context |
|
|
360
|
+
| Distributed traces broken | Check that `sentry-trace` and `baggage` headers pass through proxies/gateways |
|
|
361
|
+
| `description=` deprecation warning | Replace `description=` with `name=` in `start_span()` calls |
|
|
362
|
+
| OTel spans not appearing (OTLP) | Verify `sentry-sdk[opentelemetry-otlp]` is installed; do **not** set `traces_sample_rate` when using `OTLPIntegration` |
|
|
363
|
+
| OTel spans not appearing (legacy bridge) | Ensure `SentrySpanProcessor` is added to `TracerProvider` before creating spans |
|
|
364
|
+
| `@sentry_sdk.trace` on static method fails | Put `@sentry_sdk.trace` AFTER `@staticmethod` / `@classmethod` |
|