12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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 = (
- <p>
- {tct(
- 'The ASGI middleware can be used to instrument any [link:ASGI-compatible web framework] to attach request data for your events.',
- {
- link: <ExternalLink href="https://asgi.readthedocs.io/en/latest/" />,
- }
- )}
- </p>
- );
- export const steps = ({
- dsn,
- }: Partial<Pick<ModuleProps, 'dsn'>> = {}): LayoutProps['steps'] => [
- {
- type: StepType.CONFIGURE,
- description: (
- <p>
- {tct(
- 'This can be used to instrument, for example [starletteLink:Starlette] or [djangoLink:Django Channels 2.0].',
- {
- starletteLink: <ExternalLink href="https://www.starlette.io/middleware/" />,
- djangoLink: (
- <ExternalLink href="https://channels.readthedocs.io/en/latest/" />
- ),
- }
- )}
- </p>
- ),
- 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 <Layout steps={steps({dsn})} introduction={introduction} {...props} />;
- }
- export default GettingStartedWithASGI;
|