@danieljvdm/dev-kit 1.0.1 → 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 +6 -29
- package/skill-sources.lock.json +23 -109
- 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 +11 -115
- package/skills/open-pull-request/agents/openai.yaml +3 -3
- 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,475 @@
|
|
|
1
|
+
# Tracing — Sentry Cloudflare SDK
|
|
2
|
+
|
|
3
|
+
> Minimum SDK: `@sentry/cloudflare` v8.0.0+ Streaming response span tracking: v10.x+
|
|
4
|
+
> `propagateTraceparent`: v10.x+ OpenTelemetry compatibility tracer: v10.x+ RPC trace
|
|
5
|
+
> propagation (`enableRpcTracePropagation`): v10.52.0+ Workers AI (`env.AI`) `gen_ai`
|
|
6
|
+
> spans: v10.67.0+ Agents SDK auto conversation IDs (`instrumentAgentWithSentry`):
|
|
7
|
+
> v10.69.0+
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## How Tracing Works
|
|
12
|
+
|
|
13
|
+
The Cloudflare SDK is **not natively OpenTelemetry-based** (unlike `@sentry/node`), but
|
|
14
|
+
it sets up an OpenTelemetry compatibility tracer.
|
|
15
|
+
This means:
|
|
16
|
+
|
|
17
|
+
- Spans emitted via `@opentelemetry/api` are captured by Sentry
|
|
18
|
+
- The SDK creates its own HTTP server spans for incoming requests
|
|
19
|
+
- Outbound `fetch()` calls are automatically traced via `fetchIntegration`
|
|
20
|
+
- D1 queries and Workers AI (`env.AI`) calls are traced automatically when accessed via
|
|
21
|
+
`env`
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Activating Tracing
|
|
26
|
+
|
|
27
|
+
Set `tracesSampleRate` or `tracesSampler` in your init options.
|
|
28
|
+
Without one of these, no spans are created.
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
export default Sentry.withSentry(
|
|
32
|
+
(env: Env) => ({
|
|
33
|
+
dsn: env.SENTRY_DSN,
|
|
34
|
+
tracesSampleRate: 1.0, // 100% in dev, lower in production
|
|
35
|
+
}),
|
|
36
|
+
handler,
|
|
37
|
+
);
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The SDK also reads `SENTRY_TRACES_SAMPLE_RATE` from `env` automatically:
|
|
41
|
+
|
|
42
|
+
```toml
|
|
43
|
+
# wrangler.toml
|
|
44
|
+
[vars]
|
|
45
|
+
SENTRY_TRACES_SAMPLE_RATE = "0.1"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## `tracesSampleRate` — Uniform Sampling
|
|
51
|
+
|
|
52
|
+
A number between `0.0` and `1.0`:
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
Sentry.withSentry(
|
|
56
|
+
(env: Env) => ({
|
|
57
|
+
dsn: env.SENTRY_DSN,
|
|
58
|
+
tracesSampleRate: env.ENVIRONMENT === "production" ? 0.1 : 1.0,
|
|
59
|
+
}),
|
|
60
|
+
handler,
|
|
61
|
+
);
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## `tracesSampler` — Dynamic Sampling
|
|
67
|
+
|
|
68
|
+
For fine-grained control:
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
Sentry.withSentry(
|
|
72
|
+
(env: Env) => ({
|
|
73
|
+
dsn: env.SENTRY_DSN,
|
|
74
|
+
tracesSampler: (samplingContext) => {
|
|
75
|
+
const url = samplingContext.attributes?.["url.full"] as string | undefined;
|
|
76
|
+
|
|
77
|
+
// Never trace health checks
|
|
78
|
+
if (url?.includes("/health")) return 0;
|
|
79
|
+
|
|
80
|
+
// Sample API routes at 20%
|
|
81
|
+
if (url?.includes("/api/")) return 0.2;
|
|
82
|
+
|
|
83
|
+
// Default: 10%
|
|
84
|
+
return 0.1;
|
|
85
|
+
},
|
|
86
|
+
}),
|
|
87
|
+
handler,
|
|
88
|
+
);
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Automatic Spans
|
|
94
|
+
|
|
95
|
+
### HTTP Server Spans
|
|
96
|
+
|
|
97
|
+
Every incoming request wrapped by `withSentry` or `sentryPagesPlugin` creates an
|
|
98
|
+
`http.server` span with:
|
|
99
|
+
|
|
100
|
+
| Attribute | Source |
|
|
101
|
+
| --------------------------- | ------------------------- |
|
|
102
|
+
| `http.request.method` | `request.method` |
|
|
103
|
+
| `url.full` | `request.url` |
|
|
104
|
+
| `http.response.status_code` | Response status |
|
|
105
|
+
| `http.request.body.size` | `Content-Length` header |
|
|
106
|
+
| `user_agent.original` | `User-Agent` header |
|
|
107
|
+
| `network.protocol.name` | `request.cf.httpProtocol` |
|
|
108
|
+
|
|
109
|
+
> **Note:** `OPTIONS` and `HEAD` requests do not create spans (to reduce noise) but
|
|
110
|
+
> errors are still captured.
|
|
111
|
+
|
|
112
|
+
### Streaming Response Tracking
|
|
113
|
+
|
|
114
|
+
The SDK detects streaming responses and keeps the root span alive until the stream is
|
|
115
|
+
fully consumed. This ensures accurate duration measurement for SSE, streaming AI
|
|
116
|
+
responses, etc.
|
|
117
|
+
|
|
118
|
+
### Outbound Fetch Spans
|
|
119
|
+
|
|
120
|
+
The `fetchIntegration` (enabled by default) automatically traces all outbound `fetch()`
|
|
121
|
+
calls:
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
// This fetch call is automatically traced
|
|
125
|
+
const response = await fetch("https://api.example.com/data");
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Each outbound fetch creates a child span with method, URL, and response status.
|
|
129
|
+
|
|
130
|
+
### D1 Query Spans
|
|
131
|
+
|
|
132
|
+
D1 bindings are **auto-instrumented** by `withSentry` — access `env.DB` from the
|
|
133
|
+
handler’s `env` and queries create `db.query` spans automatically (no manual wrapping
|
|
134
|
+
needed):
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
// env.DB is auto-instrumented — no wrapper required
|
|
138
|
+
const result = await env.DB.prepare("SELECT * FROM users WHERE id = ?").bind(1).run();
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Span attributes include:
|
|
142
|
+
|
|
143
|
+
- `cloudflare.d1.query_type` — `first`, `run`, `all`, `raw`, `batch`, or `exec`
|
|
144
|
+
- `cloudflare.d1.duration` — query duration
|
|
145
|
+
- `cloudflare.d1.rows_read` — number of rows read
|
|
146
|
+
- `cloudflare.d1.rows_written` — number of rows written
|
|
147
|
+
|
|
148
|
+
See `./durable-objects.md` for full D1 coverage (prepared statements, `batch`, `exec`).
|
|
149
|
+
|
|
150
|
+
### Workers AI Spans
|
|
151
|
+
|
|
152
|
+
The Cloudflare Workers AI binding (`env.AI`) is auto-instrumented by `withSentry`
|
|
153
|
+
(v10.67.0+). Calls to `env.AI.run(...)` create `gen_ai` spans following Sentry’s Agent
|
|
154
|
+
Tracing conventions — capturing model, request parameters, and token usage.
|
|
155
|
+
For the full agent tracing setup — OpenAI/Anthropic/Google Gen AI/Vercel AI/LangChain
|
|
156
|
+
instrumentation, the build-time Vite plugin, and manual `gen_ai.*` spans — see
|
|
157
|
+
`./ai-monitoring.md`.
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
// env.AI is auto-instrumented — creates a gen_ai span
|
|
161
|
+
const result = await env.AI.run("@cf/meta/llama-3.1-8b-instruct", {
|
|
162
|
+
messages: [{ role: "user", content: "What is the capital of France?" }],
|
|
163
|
+
});
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
#### Tracking Conversations
|
|
167
|
+
|
|
168
|
+
> **Beta:** configuration options and behavior may change.
|
|
169
|
+
|
|
170
|
+
The Workers AI instrumentation does **not** infer the conversation ID automatically.
|
|
171
|
+
To group multi-turn AI calls into a single
|
|
172
|
+
[Conversation](https://docs.sentry.io/product/ai/monitoring/conversations/), set the ID
|
|
173
|
+
manually with `Sentry.setConversationId(id)`. It’s applied as the
|
|
174
|
+
`gen_ai.conversation.id` attribute to **all AI spans within the current scope**, so call
|
|
175
|
+
it once at the start of a request handler — before any `env.AI.run(...)` calls — and
|
|
176
|
+
every AI span for that request is grouped.
|
|
177
|
+
Pass `null` to unset it.
|
|
178
|
+
|
|
179
|
+
When you use the [Cloudflare Agents SDK](https://developers.cloudflare.com/agents/),
|
|
180
|
+
prefer `instrumentAgentWithSentry` (v10.69.0+) — it sets the conversation ID
|
|
181
|
+
automatically for every chat turn and `@callable()` RPC call, and rotates it when the
|
|
182
|
+
chat is cleared. See `./durable-objects.md`. On older SDK versions, or when you need to
|
|
183
|
+
control the ID yourself, set it manually at the top of the handler (`onRequest` for
|
|
184
|
+
`Agent`, `onChatMessage` for `AIChatAgent`) so every AI call triggered while handling
|
|
185
|
+
that message shares the ID. Use your chat session ID — `this.name` works when one agent
|
|
186
|
+
instance is one chat session, but not when instances are per-user or a shared singleton
|
|
187
|
+
like `"default"`:
|
|
188
|
+
|
|
189
|
+
```typescript
|
|
190
|
+
import * as Sentry from "@sentry/cloudflare";
|
|
191
|
+
import { AIChatAgent } from "@cloudflare/ai-chat";
|
|
192
|
+
|
|
193
|
+
class MyChatAgentBase extends AIChatAgent<Env> {
|
|
194
|
+
async onChatMessage(): Promise<Response | undefined> {
|
|
195
|
+
// Every AI call in this chat session shares the same conversation ID
|
|
196
|
+
Sentry.setConversationId(this.name);
|
|
197
|
+
|
|
198
|
+
const result = await this.env.AI.run("@cf/meta/llama-3.1-8b-instruct", {
|
|
199
|
+
messages: this.messages.map((m) => ({
|
|
200
|
+
role: m.role,
|
|
201
|
+
content: m.parts
|
|
202
|
+
.filter((p) => p.type === "text")
|
|
203
|
+
.map((p) => p.text)
|
|
204
|
+
.join(""),
|
|
205
|
+
})),
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
return new Response(JSON.stringify(result));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export const MyChatAgent = Sentry.instrumentAgentWithSentry(
|
|
213
|
+
(env: Env) => ({
|
|
214
|
+
dsn: env.SENTRY_DSN,
|
|
215
|
+
tracesSampleRate: 1.0,
|
|
216
|
+
}),
|
|
217
|
+
MyChatAgentBase,
|
|
218
|
+
);
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
(With `instrumentAgentWithSentry` the explicit `setConversationId(this.name)` call above
|
|
222
|
+
is redundant — shown for the manual/override case.)
|
|
223
|
+
For a plain `Agent`, the pattern is the same — call `Sentry.setConversationId(id)` at
|
|
224
|
+
the top of `onRequest` before your `this.env.AI.run(...)` calls.
|
|
225
|
+
Grouped calls appear in the
|
|
226
|
+
[Conversations](https://docs.sentry.io/product/ai/monitoring/conversations/) view, where
|
|
227
|
+
you can inspect token usage, latency, and errors across the whole conversation.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Custom Spans
|
|
232
|
+
|
|
233
|
+
### `Sentry.startSpan`
|
|
234
|
+
|
|
235
|
+
Wrap a block of code in a span:
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
const result = await Sentry.startSpan(
|
|
239
|
+
{
|
|
240
|
+
op: "function",
|
|
241
|
+
name: "processPayment",
|
|
242
|
+
attributes: { "payment.provider": "stripe" },
|
|
243
|
+
},
|
|
244
|
+
async (span) => {
|
|
245
|
+
const payment = await chargeCustomer(amount);
|
|
246
|
+
span.setAttributes({ "payment.id": payment.id });
|
|
247
|
+
return payment;
|
|
248
|
+
},
|
|
249
|
+
);
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### `Sentry.startInactiveSpan`
|
|
253
|
+
|
|
254
|
+
Create a span without making it the active span:
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
const span = Sentry.startInactiveSpan({
|
|
258
|
+
op: "cache.lookup",
|
|
259
|
+
name: "Check KV cache",
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
const cached = await env.KV.get(key);
|
|
263
|
+
span.end();
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### `Sentry.startSpanManual`
|
|
267
|
+
|
|
268
|
+
Full control over span lifecycle:
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
await Sentry.startSpanManual({ op: "task", name: "Background processing" }, async (span) => {
|
|
272
|
+
try {
|
|
273
|
+
await doWork();
|
|
274
|
+
span.setStatus({ code: 1 }); // OK
|
|
275
|
+
} catch (error) {
|
|
276
|
+
span.setStatus({ code: 2, message: "internal_error" }); // ERROR
|
|
277
|
+
throw error;
|
|
278
|
+
} finally {
|
|
279
|
+
span.end();
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Distributed Tracing
|
|
287
|
+
|
|
288
|
+
### Incoming Trace Propagation
|
|
289
|
+
|
|
290
|
+
The SDK automatically reads `sentry-trace` and `baggage` headers from incoming requests
|
|
291
|
+
and continues the trace.
|
|
292
|
+
This works out of the box with `withSentry` and `sentryPagesPlugin`.
|
|
293
|
+
|
|
294
|
+
### Outbound Trace Propagation
|
|
295
|
+
|
|
296
|
+
The `fetchIntegration` automatically injects `sentry-trace` and `baggage` headers into
|
|
297
|
+
outbound `fetch()` calls.
|
|
298
|
+
Control which URLs get trace headers with `tracePropagationTargets`:
|
|
299
|
+
|
|
300
|
+
```typescript
|
|
301
|
+
Sentry.withSentry(
|
|
302
|
+
(env: Env) => ({
|
|
303
|
+
dsn: env.SENTRY_DSN,
|
|
304
|
+
tracesSampleRate: 1.0,
|
|
305
|
+
tracePropagationTargets: ["api.myservice.com", /^https:\/\/.*\.myapp\.com/],
|
|
306
|
+
}),
|
|
307
|
+
handler,
|
|
308
|
+
);
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
By default (when `tracePropagationTargets` is not set), trace headers are attached to
|
|
312
|
+
**all** outbound requests.
|
|
313
|
+
|
|
314
|
+
### `propagateTraceparent`
|
|
315
|
+
|
|
316
|
+
Controls whether the `sentry-trace` header is attached to outgoing requests (default:
|
|
317
|
+
SDK behavior). Set explicitly to control:
|
|
318
|
+
|
|
319
|
+
```typescript
|
|
320
|
+
Sentry.withSentry(
|
|
321
|
+
(env: Env) => ({
|
|
322
|
+
dsn: env.SENTRY_DSN,
|
|
323
|
+
propagateTraceparent: true, // explicit opt-in
|
|
324
|
+
}),
|
|
325
|
+
handler,
|
|
326
|
+
);
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Manual Trace Continuation
|
|
330
|
+
|
|
331
|
+
```typescript
|
|
332
|
+
const traceData = Sentry.getTraceData();
|
|
333
|
+
// Returns { "sentry-trace": "...", "baggage": "..." }
|
|
334
|
+
|
|
335
|
+
// Inject into outbound request manually
|
|
336
|
+
const response = await fetch("https://api.example.com", {
|
|
337
|
+
headers: {
|
|
338
|
+
...traceData,
|
|
339
|
+
},
|
|
340
|
+
});
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### HTML Meta Tags (for frontend)
|
|
344
|
+
|
|
345
|
+
```typescript
|
|
346
|
+
const metaTags = Sentry.getTraceMetaTags();
|
|
347
|
+
// Returns: <meta name="sentry-trace" content="..."/><meta name="baggage" content="..."/>
|
|
348
|
+
|
|
349
|
+
// Include in HTML response for frontend SDK to continue the trace
|
|
350
|
+
return new Response(`<html><head>${metaTags}</head>...`, {
|
|
351
|
+
headers: { "Content-Type": "text/html" },
|
|
352
|
+
});
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### RPC Trace Propagation
|
|
356
|
+
|
|
357
|
+
> `enableRpcTracePropagation`: v10.52.0+
|
|
358
|
+
|
|
359
|
+
Trace context isn’t propagated across
|
|
360
|
+
[Service Binding](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/)
|
|
361
|
+
/ [RPC](https://developers.cloudflare.com/workers/runtime-apis/rpc/) calls (including
|
|
362
|
+
Durable Object RPC and Workflows) by default.
|
|
363
|
+
Set `enableRpcTracePropagation: true` on **both** the caller and the receiver to link
|
|
364
|
+
these calls into a single distributed trace.
|
|
365
|
+
|
|
366
|
+
**Recommended:** enable it whenever your Workers communicate over RPC / service bindings
|
|
367
|
+
or you use Durable Objects or Workflows.
|
|
368
|
+
|
|
369
|
+
**Caller (Worker calling into a service binding / DO):**
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
export default Sentry.withSentry(
|
|
373
|
+
(env: Env) => ({
|
|
374
|
+
dsn: env.SENTRY_DSN,
|
|
375
|
+
tracesSampleRate: 1.0,
|
|
376
|
+
enableRpcTracePropagation: true,
|
|
377
|
+
}),
|
|
378
|
+
handler,
|
|
379
|
+
);
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
**Receiver (the Durable Object / target Worker):**
|
|
383
|
+
|
|
384
|
+
```typescript
|
|
385
|
+
export const MyDurableObject = Sentry.instrumentDurableObjectWithSentry(
|
|
386
|
+
(env: Env) => ({
|
|
387
|
+
dsn: env.SENTRY_DSN,
|
|
388
|
+
tracesSampleRate: 1.0,
|
|
389
|
+
enableRpcTracePropagation: true,
|
|
390
|
+
}),
|
|
391
|
+
MyDurableObjectBase,
|
|
392
|
+
);
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## Durable Object Tracing
|
|
398
|
+
|
|
399
|
+
Durable Objects instrumented with `instrumentDurableObjectWithSentry` automatically
|
|
400
|
+
create spans for:
|
|
401
|
+
|
|
402
|
+
- `fetch` — creates `http.server` spans (same as regular fetch handlers)
|
|
403
|
+
- `alarm` — creates spans named `alarm`
|
|
404
|
+
- `webSocketMessage` — creates spans named `webSocketMessage`
|
|
405
|
+
- `webSocketClose` — creates spans named `webSocketClose`
|
|
406
|
+
- `webSocketError` — creates spans named `webSocketError`
|
|
407
|
+
- **RPC methods** — any public instance method creates spans with `op: "rpc"`
|
|
408
|
+
|
|
409
|
+
See `./durable-objects.md` for full setup.
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## Workflow Step Tracing
|
|
414
|
+
|
|
415
|
+
Workflows instrumented with `instrumentWorkflowWithSentry` create spans for each
|
|
416
|
+
`step.do()` call:
|
|
417
|
+
|
|
418
|
+
```typescript
|
|
419
|
+
// Each step.do() creates a span with op "function.step.do"
|
|
420
|
+
await step.do("process-payment", async () => {
|
|
421
|
+
return await processPayment();
|
|
422
|
+
});
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
See the Workflows section in `./durable-objects.md` for full setup.
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Best Practices
|
|
430
|
+
|
|
431
|
+
1. **Set `tracesSampleRate` low in production** — Cloudflare Workers handle high request
|
|
432
|
+
volumes. Start with `0.05`–`0.1` and adjust based on volume and cost.
|
|
433
|
+
|
|
434
|
+
2. **Use `tracePropagationTargets`** — avoid leaking trace headers to third-party APIs.
|
|
435
|
+
Only propagate to your own services.
|
|
436
|
+
|
|
437
|
+
3. **Access bindings via `env`** — D1 and Workers AI are auto-instrumented when you use
|
|
438
|
+
`env.DB` / `env.AI` directly, giving query- and model-level visibility with no manual
|
|
439
|
+
wrapping.
|
|
440
|
+
|
|
441
|
+
4. **Use `startSpan` for custom operations** — wrap business logic in spans for detailed
|
|
442
|
+
visibility beyond HTTP/DB.
|
|
443
|
+
|
|
444
|
+
5. **Don’t forget `span.end()`** — when using `startInactiveSpan` or `startSpanManual`,
|
|
445
|
+
always end the span.
|
|
446
|
+
|
|
447
|
+
### `waitUntil()` Background Work
|
|
448
|
+
|
|
449
|
+
Spans started inside `ctx.waitUntil()` run **after** the response is returned, so the
|
|
450
|
+
request’s root span has usually already ended.
|
|
451
|
+
To make sure background spans are recorded as their own transaction, start them with
|
|
452
|
+
`forceTransaction: true`:
|
|
453
|
+
|
|
454
|
+
```typescript
|
|
455
|
+
ctx.waitUntil(
|
|
456
|
+
Sentry.startSpan({ name: "background-cleanup", op: "task", forceTransaction: true }, async () => {
|
|
457
|
+
await cleanup(env.DB);
|
|
458
|
+
}),
|
|
459
|
+
);
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## Troubleshooting
|
|
465
|
+
|
|
466
|
+
| Issue | Solution |
|
|
467
|
+
| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
468
|
+
| No traces appearing | Verify `tracesSampleRate` or `tracesSampler` is set in init options |
|
|
469
|
+
| Missing outbound fetch spans | Ensure `fetchIntegration` is not removed from `defaultIntegrations` |
|
|
470
|
+
| Trace headers not propagated | Check `tracePropagationTargets` includes the target URL |
|
|
471
|
+
| D1 spans not appearing | Access the binding via `env.DB` (auto-instrumented by `withSentry`); ensure `tracesSampleRate` is set |
|
|
472
|
+
| RPC / Durable Object calls not in the same trace | Set `enableRpcTracePropagation: true` on **both** caller and receiver |
|
|
473
|
+
| Background (`waitUntil`) work missing from traces | Start the span with `forceTransaction: true` |
|
|
474
|
+
| Very short span durations (0ms) | Expected for CPU-bound work — Cloudflare Workers timers only advance during I/O |
|
|
475
|
+
| Streaming response spans too short | Update to latest SDK — streaming response tracking was added in v10.x |
|