Dica
Esta lição faz parte de um curso que ensina como construir um aplicativo New Relic do zero. Se ainda não o fez, confira a Visão Geral.
Cada lição do curso se baseia na anterior, portanto, certifique-se de ter concluído a última lição, Adicionar uma grade, antes de iniciar esta.
Organizar gráficos é uma forma de esclarecer as informações que você está tentando transmitir ao seu usuário. Os títulos são outra. Como você tem vários gráficos na mesma página, use títulos para descrever as informações que eles mostram.
O guia de design detalha quais dados cada gráfico mostra. Use esses detalhes para criar títulos úteis para seus gráficos.
Mude para o diretório add-chart-headings/ab-test do repositório de cursos:
$cd nru-programmability-course/add-chart-headings/ab-test
Em newsletter-signups.js
, page-views.js
, past-tests.js
, total-cancellations.js
, total-subscriptions.js
e totals.js
, importe HeadingText
e adicione um título descritivo acima do gráfico em cada um dos seus componentes personalizados:
import React from 'react';import { HeadingText, LineChart } from 'nr1';
export default class NewsletterSignups extends React.Component { render() { const versionASignups = { metadata: { id: 'version-a-newsletter-signups', name: 'Version A', viz: 'main', color: 'blue', }, data: [ { x: 0, y: 0 }, { x: 10, y: 10 }, { x: 20, y: 15 }, { x: 30, y: 5 }, { x: 40, y: 30 }, { x: 50, y: 25 }, ], } const versionBSignups = { metadata: { id: 'version-b-newsletter-signups', name: 'Version B', viz: 'main', color: 'green', }, data: [ { x: 0, y: 20 }, { x: 10, y: 5 }, { x: 20, y: 25 }, { x: 30, y: 45 }, { x: 40, y: 50 }, { x: 50, y: 35 }, ], } return <div> <HeadingText className="chartHeader"> Newsletter subscriptions per version </HeadingText> <LineChart data={[versionASignups, versionBSignups]} fullWidth /> </div> }}
import React from 'react';import { HeadingText, LineChart } from 'nr1';
export default class VersionPageViews extends React.Component { render() { const versionPageViews = { metadata: { id: `page-views-${this.props.version}`, name: `Version ${this.props.version.toUpperCase()}`, viz: 'main', color: 'blue', units_data: { y: 'MS' } }, data: [ { x: 0, y: 10 }, { x: 10, y: 13 }, { x: 20, y: 11.5 }, { x: 30, y: 10 }, { x: 40, y: 8.75 }, { x: 50, y: 9 }, ], } return <div> <HeadingText className="chartHeader"> Version {this.props.version.toUpperCase()} - Page views </HeadingText> <LineChart data={[versionPageViews]} fullWidth /> </div> }}
import React from 'react';import { HeadingText, TableChart } from 'nr1';
export default class PastTests extends React.Component { render() { const historicalData = { metadata: { id: 'past-tests', name: 'Past tests', columns: ['endDate', 'versionADescription', 'versionBDescription', 'winner'], }, data: [ { "endDate": "12-15-2020", "versionADescription": "The homepage's CTA button was green.", "versionBDescription": "The homepage's CTA button was blue.", "winner": "A" }, { "endDate": "09-06-2019", "versionADescription": "The 'Deals' page showed sales in a carousel.", "versionBDescription": "The 'Deals' page showed sales in a grid.", "winner": "B" } ], }
return <div> <HeadingText className="chartHeader"> Past tests </HeadingText> <TableChart data={[historicalData]} fullWidth /> </div> }}
import React from 'react';import { HeadingText, PieChart } from 'nr1';
export default class TotalCancellations extends React.Component { render() { const cancellationsA = { metadata: { id: 'cancellations-A', name: 'Version A', viz: 'main', color: 'blue', }, data: [ { y: 118 }, ], } const cancellationsB = { metadata: { id: 'cancellations-B', name: 'Version B', viz: 'main', color: 'green', }, data: [ { y: 400 }, ], } return <div> <HeadingText className="chartHeader"> Total cancellations per version </HeadingText> <PieChart data={[cancellationsA, cancellationsB]} fullWidth /> </div> }}
import React from 'react';import { HeadingText, PieChart } from 'nr1';
export default class TotalSubscriptions extends React.Component { render() { const subscriptionsA = { metadata: { id: 'subscriptions-A', name: 'Version A', viz: 'main', color: 'blue', }, data: [ { y: 259 }, ], } const subscriptionsB = { metadata: { id: 'subscriptions-B', name: 'Version B', viz: 'main', color: 'green', }, data: [ { y: 318 }, ], } return <div> <HeadingText className="chartHeader"> Total subscriptions per version </HeadingText> <PieChart data={[subscriptionsA, subscriptionsB]} fullWidth /> </div> }}
import React from 'react';import { HeadingText, TableChart } from 'nr1';
export default class VersionTotals extends React.Component { constructor(props) { super(props); }
render() { const versionATotals = { metadata: { id: `totals-${this.props.version}`, name: `Version ${this.props.version}`, columns: ['name', 'count'], }, data: [ { name: 'Subscriptions', count: 0 }, { name: 'Page views', count: 0 }, ], } return <div> <HeadingText className="chartHeader"> Version {this.props.version.toUpperCase()} - Page views vs. subscriptions </HeadingText> <TableChart data={[versionATotals]} fullWidth /> </div> }}
Observe a nova tag <div>
em cada render()
, que permite retornar vários elementos de uma vez. Além disso, lembre-se de que fornecemos uma folha de estilo CSS que estiliza a classe chartHeader
. Você pode consultar nerdlets/ab-test-nerdlet/styles.scss
para ver mais.
Você não precisa modificar o método render()
do seu Nerdlet em index.js
porque seus componentes encapsulam o novo código.
Navegue até a raiz do seu Nerdpack em nru-programmability-course/add-a-grid/ab-test
.
Gere um novo UUID para o seu Nerdpack:
$nr1 nerdpack:uuid -gf
Como você clonou o repositório de cursos que continha um Nerdpack existente, você precisa gerar seu próprio identificador exclusivo. Este UUID mapeia seu Nerdpack para sua conta New Relic.
Sirva seu aplicativo localmente:
$nr1 nerdpack:serve
Veja suas alterações no New Relic.
Aqui você vê que seus gráficos possuem títulos descritivos.
Quando terminar, pare de servir seu aplicativo New Relic pressionando CTRL+C
na janela do terminal do seu servidor local.
Bom trabalho! Você criou todos os gráficos apresentados em seu guia de design. Você também os organizou em uma grade organizada e adicionou títulos para que os gráficos fossem inteligíveis. Embora os títulos dos gráficos ajudem você a entender o que cada gráfico mostra, seria bom adicionar descrições para ajudá-lo a lembrar o que cada versão em seu teste A/B representa. Na próxima lição, você adicionará uma descrição para cada versão do design.
Curso
Esta lição faz parte de um curso que ensina como construir um aplicativo New Relic do zero. Continue para a próxima lição: Adicionar descrições de versão.