[Guided onboarding] Telemetry ids for landing page cards (#150028)

## Summary
Fixes https://github.com/elastic/kibana/issues/149273
Follow up to https://github.com/elastic/kibana/pull/149528 

This PR adds a `data-test-subj` attribute to the new cards on the
landing page so that the clicks can be tracked in FullStory and then
added to our analytics data.

### Telemetry IDs for landing page cards

| Change | Selector  | Description  |
|---|---|---|
| **not changed since 8.6** |
[data-test-subj="onboarding--skipGuideLink"] | "Skip" link click, user
has skipped guided onboarding
| **deleted** | [data-test-subj="onboarding--linkCard--observability"] |
"View integrations" button click, user has selected "Observe my data"
card
| **new card** | [data-test-subj="onboarding--search--application"] |
"Build an application on top of Elasticsearch" button click, user has
viewed `appSearch` guide
| **new card** | [data-test-subj="onboarding--search--website"] | "Add
search to my website" button click, user has viewed `websiteSearch`
guide
| **new card** | [data-test-subj="onboarding--search--database"] |
"Search across databases and business systems" button click, user has
viewed `databaseSearch` guide
| **new card** | [data-test-subj="onboarding--observability--logs"] |
"Collect and analyze my logs" button click, user was redirected to
Integrations for logs
| **new card** | [data-test-subj="onboarding--observability--apm"] |
"Monitor my application performance (APM / tracing)" button click, user
was redirected to APM tutorial
| **new card** | [data-test-subj="onboarding--observability--hosts"] |
"Monitor my host metrics" button click, user was redirected to
Integrations for hosts
| **new card** |
[data-test-subj="onboarding--observability--kubernetes"] | "Monitor
Kubernetes clusters" button click, user has viewed `kubernetes` guide
| **new card** | [data-test-subj="onboarding--security--siem"] | "Detect
threats in my data with SIEM" button click, user has viewed `siem` guide
| **new card** | [data-test-subj="onboarding--security--hosts"] |
"Secure my hosts with endpoint security" button click, user was
redirected to Endpoint integration
| **new card** | [data-test-subj="onboarding--security--cloud"] |
"Secure my cloud assets with posture management" button click, user was
redirected to Cloud Security posture integration
This commit is contained in:
Yulia Čech 2023-02-06 13:00:54 +01:00 committed by GitHub
parent edc8265de8
commit c1b57bdfec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 20 deletions

View file

@ -18,7 +18,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
"guideId": "search",
"order": 1,
"solution": "search",
"telemetryId": "guided-onboarding--search--application",
"telemetryId": "onboarding--search--application",
"title": "Build an application on top of Elasticsearch",
}
}
@ -44,7 +44,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
},
"order": 2,
"solution": "observability",
"telemetryId": "guided-onboarding--observability--logs",
"telemetryId": "onboarding--observability--logs",
"title": "Collect and analyze my logs",
}
}
@ -67,7 +67,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
"guideId": "siem",
"order": 3,
"solution": "security",
"telemetryId": "guided-onboarding--security--siem",
"telemetryId": "onboarding--security--siem",
"title": "Detect threats in my data with SIEM",
}
}
@ -90,7 +90,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
"guideId": "search",
"order": 4,
"solution": "search",
"telemetryId": "guided-onboarding--search--website",
"telemetryId": "onboarding--search--website",
"title": "Add search to my website",
}
}
@ -116,7 +116,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
},
"order": 5,
"solution": "observability",
"telemetryId": "guided-onboarding--observability--apm",
"telemetryId": "onboarding--observability--apm",
"title": "Monitor my application performance (APM / tracing)",
}
}
@ -142,7 +142,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
},
"order": 6,
"solution": "security",
"telemetryId": "guided-onboarding--security--hosts",
"telemetryId": "onboarding--security--hosts",
"title": "Secure my hosts with endpoint security",
}
}
@ -165,7 +165,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
"guideId": "search",
"order": 7,
"solution": "search",
"telemetryId": "guided-onboarding--search--database",
"telemetryId": "onboarding--search--database",
"title": "Search across databases and business systems",
}
}
@ -191,7 +191,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
},
"order": 8,
"solution": "observability",
"telemetryId": "guided-onboarding--observability--hosts",
"telemetryId": "onboarding--observability--hosts",
"title": "Monitor my host metrics",
}
}
@ -217,7 +217,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
},
"order": 9,
"solution": "security",
"telemetryId": "guided-onboarding--security--cloud",
"telemetryId": "onboarding--security--cloud",
"title": "Secure my cloud assets with posture management",
}
}
@ -240,7 +240,7 @@ exports[`guide cards snapshots should render all cards 1`] = `
"guideId": "kubernetes",
"order": 11,
"solution": "observability",
"telemetryId": "guided-onboarding--observability--kubernetes",
"telemetryId": "onboarding--observability--kubernetes",
"title": "Monitor Kubernetes clusters",
}
}

View file

@ -77,6 +77,8 @@ export const GuideCard = ({
const progress = getProgressLabel(guideState);
return (
<EuiCard
// data-test-subj used for FS tracking
data-test-subj={card.telemetryId}
isDisabled={isLoading}
onClick={onClick}
css={cardCss}

View file

@ -34,7 +34,7 @@ export const guideCards: GuideCardConstants[] = [
defaultMessage: 'Build an application on top of Elasticsearch',
}),
guideId: 'search',
telemetryId: 'guided-onboarding--search--application',
telemetryId: 'onboarding--search--application',
order: 1,
},
{
@ -43,7 +43,7 @@ export const guideCards: GuideCardConstants[] = [
defaultMessage: 'Add search to my website',
}),
guideId: 'search',
telemetryId: 'guided-onboarding--search--website',
telemetryId: 'onboarding--search--website',
order: 4,
},
{
@ -52,7 +52,7 @@ export const guideCards: GuideCardConstants[] = [
defaultMessage: 'Search across databases and business systems',
}),
guideId: 'search',
telemetryId: 'guided-onboarding--search--database',
telemetryId: 'onboarding--search--database',
order: 7,
},
{
@ -64,7 +64,7 @@ export const guideCards: GuideCardConstants[] = [
appId: 'integrations',
path: '/browse?q=log',
},
telemetryId: 'guided-onboarding--observability--logs',
telemetryId: 'onboarding--observability--logs',
order: 2,
},
{
@ -76,7 +76,7 @@ export const guideCards: GuideCardConstants[] = [
appId: 'home',
path: '#/tutorial/apm',
},
telemetryId: 'guided-onboarding--observability--apm',
telemetryId: 'onboarding--observability--apm',
order: 5,
},
{
@ -88,7 +88,7 @@ export const guideCards: GuideCardConstants[] = [
appId: 'integrations',
path: '/browse/os_system',
},
telemetryId: 'guided-onboarding--observability--hosts',
telemetryId: 'onboarding--observability--hosts',
order: 8,
},
{
@ -100,7 +100,7 @@ export const guideCards: GuideCardConstants[] = [
}
),
guideId: 'kubernetes',
telemetryId: 'guided-onboarding--observability--kubernetes',
telemetryId: 'onboarding--observability--kubernetes',
order: 11,
},
{
@ -109,7 +109,7 @@ export const guideCards: GuideCardConstants[] = [
defaultMessage: 'Detect threats in my data with SIEM',
}),
guideId: 'siem',
telemetryId: 'guided-onboarding--security--siem',
telemetryId: 'onboarding--security--siem',
order: 3,
},
{
@ -121,7 +121,7 @@ export const guideCards: GuideCardConstants[] = [
appId: 'integrations',
path: '/detail/endpoint/overview',
},
telemetryId: 'guided-onboarding--security--hosts',
telemetryId: 'onboarding--security--hosts',
order: 6,
},
{
@ -133,7 +133,7 @@ export const guideCards: GuideCardConstants[] = [
appId: 'integrations',
path: '/detail/cloud_security_posture/overview',
},
telemetryId: 'guided-onboarding--security--cloud',
telemetryId: 'onboarding--security--cloud',
order: 9,
},
].sort((cardA, cardB) => cardA.order - cardB.order) as GuideCardConstants[];