import styled from '@emotion/styled';
import emptyStateImg from 'sentry-images/spot/performance-empty-state.svg';
import tourAlert from 'sentry-images/spot/performance-tour-alert.svg';
import tourCorrelate from 'sentry-images/spot/performance-tour-correlate.svg';
import tourMetrics from 'sentry-images/spot/performance-tour-metrics.svg';
import tourTrace from 'sentry-images/spot/performance-tour-trace.svg';
import Button from 'app/components/button';
import ButtonBar from 'app/components/buttonBar';
import FeatureTourModal, {
TourImage,
TourStep,
TourText,
} from 'app/components/modals/featureTourModal';
import OnboardingPanel from 'app/components/onboardingPanel';
import {t} from 'app/locale';
import {Organization} from 'app/types';
import {trackAnalyticsEvent} from 'app/utils/analytics';
const performanceSetupUrl =
'https://docs.sentry.io/performance-monitoring/getting-started/';
const docsLink = (
);
export const PERFORMANCE_TOUR_STEPS: TourStep[] = [
{
title: t('Track Application Metrics'),
image: ,
body: (
{t(
'Monitor your slowest pageloads and APIs to see which users are having the worst time.'
)}
),
actions: docsLink,
},
{
title: t('Correlate Errors and Performance'),
image: ,
body: (
{t(
'See what errors occurred within a transaction and the impact of those errors.'
)}
),
actions: docsLink,
},
{
title: t('Watch and Alert'),
image: ,
body: (
{t(
'Highlight mission-critical pages and APIs and set latency alerts to notify you before things go wrong.'
)}
),
actions: docsLink,
},
{
title: t('Trace Across Systems'),
image: ,
body: (
{t(
"Follow a trace from a user's session and drill down to identify any bottlenecks that occur."
)}
),
},
];
type Props = {
organization: Organization;
};
function Onboarding({organization}: Props) {
function handleAdvance(step: number, duration: number) {
trackAnalyticsEvent({
eventKey: 'performance_views.tour.advance',
eventName: 'Performance Views: Tour Advance',
organization_id: parseInt(organization.id, 10),
step,
duration,
});
}
function handleClose(step: number, duration: number) {
trackAnalyticsEvent({
eventKey: 'performance_views.tour.close',
eventName: 'Performance Views: Tour Close',
organization_id: parseInt(organization.id, 10),
step,
duration,
});
}
return (
}>
{t('Pinpoint problems')}
{t(
'Something seem slow? Track down transactions to connect the dots between 10-second page loads and poor-performing API calls or slow database queries.'
)}