import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/step';
import type {
Docs,
DocsParams,
OnboardingConfig,
} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {crashReportOnboardingPython} from 'sentry/gettingStartedDocs/python/python';
import {t, tct} from 'sentry/locale';
type Params = DocsParams;
const getMidlewareSetupSnippet = () => `
from raven.contrib.pylons import Sentry
application = Sentry(application, config)`;
const getConfigurationSnippet = (params: Params) => `
[sentry]
dsn=${params.dsn.public}
include_paths=my.package,my.other.package,
exclude_paths=my.package.crud`;
const getLoggerSnippet = () => `
[loggers]
keys = root, sentry
[handlers]
keys = console, sentry
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console, sentry
[logger_sentry]
level = WARN
handlers = console
qualname = sentry.errors
propagate = 0
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[handler_sentry]
class = raven.handlers.logging.SentryHandler
args = ('SENTRY_DSN',)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S`;
const onboarding: OnboardingConfig = {
install: () => [
{
type: StepType.INSTALL,
description: tct(
'If you haven’t already, start by downloading Raven. The easiest way is with [code:pip]:',
{code:
}
),
configurations: [
{
language: 'bash',
code: 'pip install raven --upgrade',
},
],
},
],
configure: (params: Params) => [
{
type: StepType.CONFIGURE,
configurations: [
{
language: 'python',
description: t(
'A Pylons-specific middleware exists to enable easy configuration from settings:'
),
code: getMidlewareSetupSnippet(),
},
{
language: 'ini',
description: t('Configuration is handled via the sentry namespace:'),
code: getConfigurationSnippet(params),
},
],
},
{
title: t('Logger setup'),
configurations: [
{
language: 'python',
description: tct(
'Add the following lines to your project’s [code:.ini] file to setup [code:SentryHandler]:',
{
code:
,
}
),
code: getLoggerSnippet(),
},
],
additionalInfo: t('You may want to set up other loggers as well.'),
},
],
verify: () => [],
};
const docs: Docs = {
onboarding,
crashReportOnboarding: crashReportOnboardingPython,
};
export default docs;