import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/step'; import type { Docs, DocsParams, OnboardingConfig, } from 'sentry/components/onboarding/gettingStartedDoc/types'; import {CrashReportWebApiOnboarding} from 'sentry/components/onboarding/gettingStartedDoc/utils/feedbackOnboarding'; import {getRubyMetricsOnboarding} from 'sentry/components/onboarding/gettingStartedDoc/utils/metricsOnboarding'; import {t, tct} from 'sentry/locale'; type Params = DocsParams; const getConfigureSnippet = (params: Params) => ` Sentry.init do |config| config.dsn = '${params.dsn}' # Set traces_sample_rate to 1.0 to capture 100% # of transactions for performance monitoring. # We recommend adjusting this value in production. config.traces_sample_rate = 1.0 # or config.traces_sampler = lambda do |context| true end end`; const getVerifySnippet = () => ` begin 1 / 0 rescue ZeroDivisionError => exception Sentry.capture_exception(exception) end Sentry.capture_message("test message")`; const onboarding: OnboardingConfig = { install: () => [ { type: StepType.INSTALL, description: tct( 'Sentry Ruby comes as a gem and is straightforward to install. If you are using Bundler just add this to your [code:Gemfile]:', {code: } ), configurations: [ { language: 'ruby', code: 'gem "sentry-ruby"', }, ], }, ], configure: params => [ { type: StepType.CONFIGURE, description: tct( 'To use Sentry Ruby all you need is your DSN. Like most Sentry libraries it will honor the [sentryDSN:SENTRY_DSN] environment variable. You can find it on the project settings page under API Keys. You can either export it as environment variable or manually configure it with [sentryInit:Sentry.init]:', {sentryDSN: , sentryInit: } ), configurations: [ { language: 'ruby', code: getConfigureSnippet(params), }, ], }, ], verify: () => [ { type: StepType.VERIFY, description: t('You can then report errors or messages to Sentry:'), configurations: [ { language: 'ruby', code: getVerifySnippet(), }, ], }, ], }; const docs: Docs = { onboarding, customMetricsOnboarding: getRubyMetricsOnboarding(), crashReportOnboarding: CrashReportWebApiOnboarding, }; export default docs;