import ExternalLink from 'sentry/components/links/externalLink'; import {Layout, LayoutProps} from 'sentry/components/onboarding/gettingStartedDoc/layout'; import {ModuleProps} from 'sentry/components/onboarding/gettingStartedDoc/sdkDocumentation'; import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/step'; import {t, tct} from 'sentry/locale'; // Configuration Start const introduction = (

{tct( 'The ASGI middleware can be used to instrument any [link:ASGI-compatible web framework] to attach request data for your events.', { link: , } )}

); export const steps = ({ dsn, }: Partial> = {}): LayoutProps['steps'] => [ { type: StepType.CONFIGURE, description: (

{tct( 'This can be used to instrument, for example [starletteLink:Starlette] or [djangoLink:Django Channels 2.0].', { starletteLink: , djangoLink: ( ), } )}

), configurations: [ { language: 'python', code: ` import sentry_sdk from sentry_sdk.integrations.asgi import SentryAsgiMiddleware from myapp import asgi_app sentry_sdk.init( dsn="${dsn}", # Set traces_sample_rate to 1.0 to capture 100% # of transactions for performance monitoring. # We recommend adjusting this value in production, traces_sample_rate=1.0, ) asgi_app = SentryAsgiMiddleware(asgi_app) `, }, ], additionalInfo: t('The middleware supports both ASGI 2 and ASGI 3 transparently.'), }, ]; // Configuration End export function GettingStartedWithASGI({dsn, ...props}: ModuleProps) { return ; } export default GettingStartedWithASGI;