mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
194 lines
5.5 KiB
TypeScript
194 lines
5.5 KiB
TypeScript
import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/step';
|
||
import type {
|
||
Docs,
|
||
DocsParams,
|
||
OnboardingConfig,
|
||
} from 'sentry/components/onboarding/gettingStartedDoc/types';
|
||
import {
|
||
getReplayConfigOptions,
|
||
getReplayConfigureDescription,
|
||
getUploadSourceMapsStep,
|
||
} from 'sentry/components/onboarding/gettingStartedDoc/utils';
|
||
import {getJSMetricsOnboarding} from 'sentry/components/onboarding/gettingStartedDoc/utils/metricsOnboarding';
|
||
import {tracePropagationMessage} from 'sentry/components/replaysOnboarding/utils';
|
||
import {t, tct} from 'sentry/locale';
|
||
|
||
type Params = DocsParams;
|
||
|
||
const getSdkSetupSnippet = (params: Params) => `
|
||
import Application from "@ember/application";
|
||
import Resolver from "ember-resolver";
|
||
import loadInitializers from "ember-load-initializers";
|
||
import config from "./config/environment";
|
||
|
||
import * as Sentry from "@sentry/ember";
|
||
|
||
Sentry.init({
|
||
dsn: "${params.dsn}",
|
||
integrations: [${
|
||
params.isReplaySelected
|
||
? `
|
||
Sentry.replayIntegration(${getReplayConfigOptions(params.replayOptions)}),`
|
||
: ''
|
||
}
|
||
],${
|
||
params.isPerformanceSelected
|
||
? `
|
||
// Performance Monitoring
|
||
tracesSampleRate: 1.0, // Capture 100% of the transactions
|
||
// Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled
|
||
tracePropagationTargets: ["localhost", /^https:\\/\\/yourserver\\.io\\/api/],`
|
||
: ''
|
||
}${
|
||
params.isReplaySelected
|
||
? `
|
||
// Session Replay
|
||
replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.
|
||
replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.`
|
||
: ''
|
||
}
|
||
});
|
||
|
||
export default class App extends Application {
|
||
modulePrefix = config.modulePrefix;
|
||
podModulePrefix = config.podModulePrefix;
|
||
Resolver = Resolver;
|
||
}
|
||
`;
|
||
|
||
const getInstallConfig = () => [
|
||
{
|
||
language: 'bash',
|
||
code: `
|
||
# Using ember-cli
|
||
ember install @sentry/ember
|
||
`,
|
||
},
|
||
];
|
||
|
||
const getVerifyEmberSnippet = () => `
|
||
myUndefinedFunction();`;
|
||
|
||
const onboarding: OnboardingConfig = {
|
||
install: () => [
|
||
{
|
||
type: StepType.INSTALL,
|
||
description: t(
|
||
'Sentry captures data by using an SDK within your application’s runtime.'
|
||
),
|
||
configurations: getInstallConfig(),
|
||
},
|
||
],
|
||
configure: (params: Params) => [
|
||
{
|
||
type: StepType.CONFIGURE,
|
||
description: tct(
|
||
'You should [initCode:init] the Sentry SDK as soon as possible during your application load up in [appCode:app.js], before initializing Ember:',
|
||
{
|
||
initCode: <code />,
|
||
appCode: <code />,
|
||
}
|
||
),
|
||
configurations: [
|
||
{
|
||
code: [
|
||
{
|
||
label: 'JavaScript',
|
||
value: 'javascript',
|
||
language: 'javascript',
|
||
code: getSdkSetupSnippet(params),
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
getUploadSourceMapsStep({
|
||
guideLink: 'https://docs.sentry.io/platforms/javascript/guides/ember/sourcemaps/',
|
||
}),
|
||
],
|
||
verify: () => [
|
||
{
|
||
type: StepType.VERIFY,
|
||
description: t(
|
||
"This snippet contains an intentional error and can be used as a test to make sure that everything's working as expected."
|
||
),
|
||
configurations: [
|
||
{
|
||
code: [
|
||
{
|
||
label: 'JavaScript',
|
||
value: 'javascript',
|
||
language: 'javascript',
|
||
code: getVerifyEmberSnippet(),
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
nextSteps: () => [
|
||
{
|
||
id: 'performance-monitoring',
|
||
name: t('Performance Monitoring'),
|
||
description: t(
|
||
'Track down transactions to connect the dots between 10-second page loads and poor-performing API calls or slow database queries.'
|
||
),
|
||
link: 'https://docs.sentry.io/platforms/javascript/guides/ember/performance/',
|
||
},
|
||
{
|
||
id: 'session-replay',
|
||
name: t('Session Replay'),
|
||
description: t(
|
||
'Get to the root cause of an error or latency issue faster by seeing all the technical details related to that issue in one visual replay on your web application.'
|
||
),
|
||
link: 'https://docs.sentry.io/platforms/javascript/guides/ember/session-replay/',
|
||
},
|
||
],
|
||
};
|
||
|
||
const replayOnboarding: OnboardingConfig = {
|
||
install: () => [
|
||
{
|
||
type: StepType.INSTALL,
|
||
description: tct(
|
||
'You need a minimum version 7.27.0 of [code:@sentry/ember] in order to use Session Replay. You do not need to install any additional packages.',
|
||
{
|
||
code: <code />,
|
||
}
|
||
),
|
||
configurations: getInstallConfig(),
|
||
},
|
||
],
|
||
configure: (params: Params) => [
|
||
{
|
||
type: StepType.CONFIGURE,
|
||
description: getReplayConfigureDescription({
|
||
link: 'https://docs.sentry.io/platforms/javascript/guides/ember/session-replay/',
|
||
}),
|
||
configurations: [
|
||
{
|
||
code: [
|
||
{
|
||
label: 'JavaScript',
|
||
value: 'javascript',
|
||
language: 'javascript',
|
||
code: getSdkSetupSnippet(params),
|
||
},
|
||
],
|
||
},
|
||
],
|
||
additionalInfo: tracePropagationMessage,
|
||
},
|
||
],
|
||
verify: () => [],
|
||
nextSteps: () => [],
|
||
};
|
||
|
||
const docs: Docs = {
|
||
onboarding,
|
||
replayOnboardingNpm: replayOnboarding,
|
||
customMetricsOnboarding: getJSMetricsOnboarding({getInstallConfig}),
|
||
};
|
||
|
||
export default docs;
|