|
@@ -1,54 +1,16 @@
|
|
|
-import {Fragment} from 'react';
|
|
|
-
|
|
|
import ExternalLink from 'sentry/components/links/externalLink';
|
|
|
-import List from 'sentry/components/list';
|
|
|
-import ListItem from 'sentry/components/list/listItem';
|
|
|
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 {ProductSolution} from 'sentry/components/onboarding/productSelection';
|
|
|
import {t, tct} from 'sentry/locale';
|
|
|
|
|
|
// Configuration Start
|
|
|
-
|
|
|
-const profilingConfiguration = ` # Set profiles_sample_rate to 1.0 to profile 100%
|
|
|
- # of sampled transactions.
|
|
|
- # We recommend adjusting this value in production.
|
|
|
- profiles_sample_rate=1.0,`;
|
|
|
-
|
|
|
-const performanceConfiguration = ` # 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,`;
|
|
|
-
|
|
|
const introduction = (
|
|
|
- <Fragment>
|
|
|
- <p>
|
|
|
- {tct(
|
|
|
- 'The Sanic integration adds support for the [link:Sanic Web Framework]. We support the following versions:',
|
|
|
- {
|
|
|
- link: <ExternalLink href="https://github.com/sanic-org/sanic" />,
|
|
|
- }
|
|
|
- )}
|
|
|
- </p>
|
|
|
- <List symbol="bullet">
|
|
|
- <ListItem>0.8</ListItem>
|
|
|
- <ListItem>18.12</ListItem>
|
|
|
- <ListItem>19.12</ListItem>
|
|
|
- <ListItem>20.12</ListItem>
|
|
|
- <ListItem>{t('Any version of the form "x.12" (LTS versions).')}</ListItem>
|
|
|
- </List>
|
|
|
- <p>
|
|
|
- {tct(
|
|
|
- '[strong:We do support all versions of Sanic]. However, Sanic versions between LTS releases should be considered Early Adopter. We may not support all the features in these non-LTS versions, since non-LTS versions change quickly and [link:have introduced breaking changes in the past], without prior notice.',
|
|
|
- {
|
|
|
- strong: <strong />,
|
|
|
- link: <ExternalLink href="https://github.com/sanic-org/sanic/issues/1532" />,
|
|
|
- }
|
|
|
- )}
|
|
|
- </p>
|
|
|
- {t('A Python version of "3.6" or greater is also required.')}
|
|
|
- </Fragment>
|
|
|
+ <p>
|
|
|
+ {tct('The Sanic integration adds support for the [link:Sanic Web Framework].', {
|
|
|
+ link: <ExternalLink href="https://github.com/sanic-org/sanic" />,
|
|
|
+ })}
|
|
|
+ </p>
|
|
|
);
|
|
|
|
|
|
export const steps = ({
|
|
@@ -58,11 +20,21 @@ export const steps = ({
|
|
|
}): LayoutProps['steps'] => [
|
|
|
{
|
|
|
type: StepType.INSTALL,
|
|
|
- description: <p>{tct('Install [code:sentry-sdk] from PyPI:', {code: <code />})}</p>,
|
|
|
+ description: (
|
|
|
+ <p>
|
|
|
+ {tct(
|
|
|
+ 'Install [sentrySdkCode:sentry-sdk] from PyPI with the [sentrySanicCode:sanic] extra:',
|
|
|
+ {
|
|
|
+ sentrySdkCode: <code />,
|
|
|
+ sentrySanicCode: <code />,
|
|
|
+ }
|
|
|
+ )}
|
|
|
+ </p>
|
|
|
+ ),
|
|
|
configurations: [
|
|
|
{
|
|
|
language: 'bash',
|
|
|
- code: '$ pip install --upgrade sentry-sdk',
|
|
|
+ code: '$ pip install --upgrade sentry-sdk[sanic]',
|
|
|
},
|
|
|
{
|
|
|
description: (
|
|
@@ -82,16 +54,22 @@ export const steps = ({
|
|
|
},
|
|
|
{
|
|
|
type: StepType.CONFIGURE,
|
|
|
- description: t(
|
|
|
- 'To configure the SDK, initialize it with the integration before or after your app has been initialized:'
|
|
|
+ description: (
|
|
|
+ <p>
|
|
|
+ {tct(
|
|
|
+ 'If you have the [codeSanic:sanic] package in your dependencies, the Sanic integration will be enabled automatically when you initialize the Sentry SDK. Initialize the Sentry SDK before your app has been initialized:',
|
|
|
+ {
|
|
|
+ codeSanic: <code />,
|
|
|
+ }
|
|
|
+ )}
|
|
|
+ </p>
|
|
|
),
|
|
|
configurations: [
|
|
|
{
|
|
|
language: 'python',
|
|
|
code: `
|
|
|
-import sentry_sdk
|
|
|
-from sentry_sdk.integrations.sanic import SanicIntegration
|
|
|
from sanic import Sanic
|
|
|
+import sentry_sdk
|
|
|
|
|
|
sentry_sdk.init(
|
|
|
${sentryInitContent}
|
|
@@ -102,28 +80,48 @@ app = Sanic(__name__)
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ {
|
|
|
+ type: StepType.VERIFY,
|
|
|
+ description: t(
|
|
|
+ 'You can easily verify your Sentry installation by creating a route that triggers an error:'
|
|
|
+ ),
|
|
|
+ configurations: [
|
|
|
+ {
|
|
|
+ language: 'python',
|
|
|
+ code: `from sanic import Sanic
|
|
|
+from sanic.response import text
|
|
|
+
|
|
|
+sentry_sdk.init(
|
|
|
+${sentryInitContent}
|
|
|
+)
|
|
|
+
|
|
|
+app = Sanic(__name__)
|
|
|
+
|
|
|
+@app.get("/")
|
|
|
+async def hello_world(request):
|
|
|
+ 1 / 0 # raises an error
|
|
|
+ return text("Hello, world.")
|
|
|
+ `,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ additionalInfo: (
|
|
|
+ <p>
|
|
|
+ {tct(
|
|
|
+ 'When you point your browser to [link:http://localhost:8000/] an error will be sent to Sentry.',
|
|
|
+ {
|
|
|
+ link: <ExternalLink href="http://localhost:8000/" />,
|
|
|
+ }
|
|
|
+ )}
|
|
|
+ </p>
|
|
|
+ ),
|
|
|
+ },
|
|
|
];
|
|
|
// Configuration End
|
|
|
|
|
|
-export function GettingStartedWithSanic({
|
|
|
- dsn,
|
|
|
- activeProductSelection = [],
|
|
|
- ...props
|
|
|
-}: ModuleProps) {
|
|
|
+export function GettingStartedWithSanic({dsn, ...props}: ModuleProps) {
|
|
|
const otherConfigs: string[] = [];
|
|
|
|
|
|
- let sentryInitContent: string[] = [
|
|
|
- ` dsn="${dsn}",`,
|
|
|
- ` integrations=[SanicIntegration()],`,
|
|
|
- ];
|
|
|
-
|
|
|
- if (activeProductSelection.includes(ProductSolution.PERFORMANCE_MONITORING)) {
|
|
|
- otherConfigs.push(performanceConfiguration);
|
|
|
- }
|
|
|
-
|
|
|
- if (activeProductSelection.includes(ProductSolution.PROFILING)) {
|
|
|
- otherConfigs.push(profilingConfiguration);
|
|
|
- }
|
|
|
+ let sentryInitContent: string[] = [` dsn="${dsn}",`];
|
|
|
|
|
|
sentryInitContent = sentryInitContent.concat(otherConfigs);
|
|
|
|