• /
  • EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Adicione componentes NrqlQuery ao seu Nerdlet

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. Apresente um modal de confirmação do teste final, antes de iniciar esta.

Nesta série, você está construindo um aplicativo New Relic completo que ingere dados de um serviço de demonstração que está executando um teste A/B. O aplicativo mostra os dados de teste A/B de maneiras interessantes para que você possa escolher se a versão A ou a versão B é mais eficaz para atingir seu objetivo de negócios: aumentar a assinatura do boletim informativo de alta qualidade.

Em tutoriais anteriores, você criou gráficos para visualizar seus dados e organizou esses gráficos para poder usá-los e compreendê-los. Você também criou um formulário em seu aplicativo para encerrar o teste quando estiver confiante na versão mais eficaz. Até agora, porém, você não pode avaliar qual versão é mais eficaz porque seus gráficos mostram dados simulados, como:

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 },
],
}

A propriedade data de um gráfico é útil para fornecer dados criados manualmente como este ou até mesmo dados reformatados de terceiros. Mas para muitos de seus gráficos, você deseja mostrar dados do New Relic em tempo real. Por exemplo, Newsletter subscriptions by version deve mostrar os dados da assinatura, que existem no banco de dados da New Relic, abreviadamente NRDB.

Para consultar o NRDB, primeiro você precisa saber quais dados está procurando. Lembra do seu serviço backend de demonstração? Bem, esse serviço relata um evento de assinatura do New Relic quando um usuário assina um boletim informativo do seu site. Você pode visualizar esses eventos de assinatura no New Relic enquanto seus serviços de demonstração estão em execução.

Veja o evento de assinatura no New Relic

Antes de consultar o NRDB em seus gráficos, experimente consultar dados na interface da web do New Relic.

Na página inicial do New Relic , acesse o Data Explorer no menu de navegação superior.

O Data Explorer permite explorar seus dados de telemetria:

  • métrica

  • eventos

  • logs

  • traces

    Como o backend envia a assinatura do boletim informativo como evento para New Relic, você pode vê-los nesta visualização.

Selecione Subscription no menu Custom events.

Esta consulta NRDB para assinatura de eventos totais por minuto nos últimos 30 minutos e mostra esses dados em um gráfico.

Clique em Dimensions para ver uma lista dos atributos associados a estes eventos de assinatura.

Você pode filtrar e agrupar eventos de assinatura usando essas dimensões. Observe a consulta NRQL acima do gráfico. Isso mostra a consulta subjacente do gráfico, que se baseia nessas dimensões.

Clique na dimensão da page-version para ver a consulta mudar para agrupar por FACET page_version.

O Data Explorer apresenta duas opções para filtrar e classificar seus dados:

  • interface do usuário (interface) seleções como a que você acabou de fazer

  • New Relic Query Language (NRQL)

    A interface é útil para filtrar dados rapidamente e não exige que você conheça NRQL. Para o seu aplicativo New Relic , entretanto, você precisa usar a consulta NRQL.

    Clique na consulta NRQL para navegar até o criador de consulta.

    Aqui, você pode visualizar e editar manualmente a consulta para buscar os dados necessários.

Atualize NewsletterSignups com um NrqlQuery

Antes de começar a integrar os dados do New Relic em seu aplicativo NR1, consulte seu guia de design.

Seu aplicativo New Relic tem oito gráficos no total, incluindo gráficos de linhas, gráficos de pizza e gráficos de tabelas. Atualmente, cada um desses gráficos mostra dados simulados, mas eles precisam mostrar dados reais para serem úteis. Primeiro, concentre-se na consulta de dados do gráfico superior: Newsletter subscriptions per version.

Com a consulta criada no Data Explorer, você já tem os dados necessários para este gráfico.

Detalhe técnico

Na sua consulta, você busca os totais de assinaturas (SELECT count(*) FROM subscriptions), agrupa-os pela versão da página (FACET page_version) e concentra a série temporal nos últimos 30 minutos (SINCE 30 MINUTES AGO TIMESERIES).

Explore nossa documentação para saber mais sobre a consulta NRQL.

A seguir, você aprende como passar sua consulta NRQL para o gráfico de Newsletter subscriptions per version.

Mude para o diretório add-nrql-components/ab-test do repositório de cursos:

bash
$
cd nru-programmability-course/add-nrql-components/ab-test

Este diretório contém o código que esperamos que seu aplicativo tenha neste ponto do curso. Ao navegar para o diretório correto no início de cada lição, você deixa seu código personalizado para trás, protegendo-se assim de carregar código incorreto de uma lição para outra.

Em nerdlets/ab-test-nerdlet/newsletter-signups.js, atualize LineChart em NewsletterSignups. Remova os dados simulados e use a consulta NRQL que você criou no Data Explorer:

import React from 'react';
import {
HeadingText,
LineChart,
NrqlQuery,
} from 'nr1';
const ACCOUNT_ID = 123456 // <YOUR NEW RELIC ACCOUNT ID>
export default class NewsletterSignups extends React.Component {
render() {
return <div>
<HeadingText className="chartHeader">
Newsletter subscriptions per version
</HeadingText>
<NrqlQuery
accountIds={[ACCOUNT_ID]}
query="SELECT count(*) FROM subscription FACET page_version SINCE 30 MINUTES AGO TIMESERIES"
>
{
({ data }) => {
return <LineChart data={data} fullWidth />;
}
}
</NrqlQuery>
</div>
}
}

Importante

Certifique-se de substituir <YOUR NEW RELIC ACCOUNT ID> pelo seu ID de conta New Relic real.

Em NrqlQuery, você define dois adereços:

  • accountIds: O ID da conta que você consulta
  • query: A consulta a ser executada

Com eles, seu app NR1 pode consultar os dados que você deseja mostrar no seu gráfico.

Dica

Existe uma proposta conveniente para usar NRQL para fornecer dados aos seus gráficos, chamada query. Se você preferir não usar o componente NrqlQuery , tente a propriedade query :

<LineChart
accountIds={<YOUR NEW RELIC ACCOUNT ID>}
query="SELECT count(*) FROM subscription FACET page_version SINCE 30 MINUTES AGO TIMESERIES"
/>

Tenha em mente que você ainda deve fornecer o accountIds.

Navegue até a raiz do seu Nerdpack em nru-programmability-course/add-nrql-components/ab-test.

Gere um novo UUID para o seu Nerdpack:

bash
$
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:

bash
$
nr1 nerdpack:serve

Acesse https://one.newrelic.com?nerdpacks=local e visualize seu aplicativo em Apps > Your apps.

Newsletter subscriptions per version agora mostra dados reais do banco de dados da New Relic em vez dos dados simulados que você definiu anteriormente. Observe que seu gráfico extrai dados quando o aplicativo é carregado, mas não continua extraindo dados enquanto o aplicativo está aberto. Você pode corrigir isso adicionando outro adereço.

Dica

Se algo não funcionar, use as ferramentas de depuração do seu navegador para tentar identificar o problema.

Assegure-se de que você:

  • Copiou o código corretamente da lição
  • Gerou um novo UUID
  • Todas as instâncias de <YOUR NEW RELIC ACCOUNT ID> no seu projeto foram substituídas pelo New Relic ID real da sua conta

Adicione um pollInterval:

import React from 'react';
import {
HeadingText,
LineChart,
NrqlQuery,
} from 'nr1';
const ACCOUNT_ID = 123456 // <YOUR NEW RELIC ACCOUNT ID>
export default class NewsletterSignups extends React.Component {
render() {
return <div>
<HeadingText className="chartHeader">
Newsletter subscriptions per version
</HeadingText>
<NrqlQuery
accountIds={[ACCOUNT_ID]}
query="SELECT count(*) FROM subscription FACET page_version SINCE 30 MINUTES AGO TIMESERIES"
pollInterval={60000}
>
{
({ data }) => {
return <LineChart data={data} fullWidth />;
}
}
</NrqlQuery>
</div>
}
}

Importante

Certifique-se de substituir <YOUR NEW RELIC ACCOUNT ID> pelo ID real da sua conta New Relic.

O pollInterval é o número de milissegundos entre as atualizações do gráfico. Cada vez que o gráfico é atualizado, ele consulta dados recentes do New Relic. Nesse caso, você atualiza a cada minuto.

Preencha seu PieChart com subscription

Agora que você já viu como passar os dados da New Relic para Newsletter subscriptions per version, é hora de passar para Total subscriptions per version. Esses dois gráficos são semelhantes na medida em que comparam dados de eventos de assinatura agrupados por versão. As principais diferenças entre Newsletter subscriptions per version e Total subscriptions per version são:

  • Um é um gráfico de linhas e o outro é um gráfico de pizza
  • Um mostra dados de séries temporais e outro mostra totais de todos os tempos

Em nerdlets/ab-test-nerdlet/total-subscriptions.js, atualize o componente TestDistributions, removendo os dados simulados e preenchendo o PieChart com a mesma consulta NRQL usada para Newsletter subscriptions per version, mas com cláusulas TIMESERIES e SINCE diferentes:

import React from 'react';
import {
HeadingText,
NrqlQuery,
PieChart,
} from 'nr1';
const ACCOUNT_ID = 123456 // <YOUR NEW RELIC ACCOUNT ID>
export default class TotalSubscriptions extends React.Component {
render() {
return <div>
<HeadingText className="chartHeader">
Total subscriptions per version
</HeadingText>
<NrqlQuery
accountIds={[ACCOUNT_ID]}
query="SELECT count(*) FROM subscription FACET page_version SINCE 7 DAYS AGO"
pollInterval={60000}
>
{
({ data }) => {
return <PieChart data={data} fullWidth />
}
}
</NrqlQuery>
</div>
}
}

Importante

Certifique-se de substituir <YOUR NEW RELIC ACCOUNT ID> pelo ID real da sua conta New Relic.

Você não precisa da cláusula TIMESERIES porque o gráfico de pizza mostra apenas dados numéricos. Você não precisa da cláusula SINCE porque Total subscriptions per version precisa mostrar os totais de assinaturas de todos os tempos.

Com seu Nerdpack servido localmente, visualize seu aplicativo para ver seus gráficos servindo dados reais.

Total subscriptions per version agora mostra o total total de assinaturas de ambas as versões do seu aplicativo de demonstração.

Dica

Se algo não funcionar, use as ferramentas de depuração do seu navegador para tentar identificar o problema.

Assegure-se de que você:

  • Copiou o código corretamente da lição
  • Gerou um novo UUID
  • Todas as instâncias de <YOUR NEW RELIC ACCOUNT ID> no seu projeto foram substituídas pelo New Relic ID real da sua conta

Bom trabalho! Você configurou alguns gráficos para consultar dados reais de assinatura do banco de dados da New Relic.

Preencher gráficos com pageView dados de eventos

Considere os gráficos restantes que ainda usam dados simulados:

  • Total de cancelamentos por versão
  • Versão A - Visualizações de página vs. assinatura
  • Versão B - Visualizações de página vs. assinatura
  • Versão A - Visualizações de página
  • Versão B - Visualizações de página
  • Testes anteriores

Alguns desses gráficos precisam mostrar dados de visualização de página. Felizmente, seu aplicativo de demonstração cria um evento personalizado para cada visualização de página, como acontece com a assinatura! Como Version A - Page views vs. subscriptions e Version B - Page views vs. subscriptions exigem dados de duas fontes, ignore-as por enquanto e concentre-se nas Version A - Page views e Version B - Page views.

Em page-views.js, remova os dados simulados de VersionPageViews e use um componente NrqlQuery para fornecer uma consulta:

import React from 'react';
import {
HeadingText,
LineChart,
NrqlQuery,
} from 'nr1';
const ACCOUNT_ID = 123456 // <YOUR NEW RELIC ACCOUNT ID>
export default class VersionPageViews extends React.Component {
render() {
return <div>
<HeadingText className="chartHeader">
Version {this.props.version.toUpperCase()} - Page views
</HeadingText>
<NrqlQuery
accountIds={[ACCOUNT_ID]}
query={`SELECT count(*) FROM pageView WHERE page_version = '${this.props.version}' TIMESERIES`}
pollInterval={60000}
>
{
({ data }) => {
return <LineChart data={data} fullWidth />;
}
}
</NrqlQuery>
</div>
}
}

Importante

Certifique-se de substituir <YOUR NEW RELIC ACCOUNT ID> pelo seu ID de conta New Relic real.

Com seu Nerdpack servido localmente, visualize seu aplicativo para ver seus gráficos servindo dados reais.

Nesta nova consulta você busca pageView evento personalizado em vez de subscription evento. Você também usa uma cláusula WHERE para filtrar um page_version específico em vez de um FACET para agrupar por page_version.

Dica

Se algo não funcionar, use as ferramentas de depuração do seu navegador para tentar identificar o problema.

Assegure-se de que você:

  • Copiou o código corretamente da lição
  • Gerou um novo UUID
  • Todas as instâncias de <YOUR NEW RELIC ACCOUNT ID> no seu projeto foram substituídas pelo New Relic ID real da sua conta

Ufa, é muita consulta, mas seu aplicativo parece ótimo! Agora você está mostrando dados reais em quatro gráficos. Lembra dos dois gráficos que você ignorou porque exigem dados de duas fontes?

  • Versão A - Visualizações de página vs. assinatura
  • Versão B - Visualizações de página vs. assinatura

Você precisa lidar com isso de maneira diferente da que fez com os gráficos com os quais está lidando, porque o NRQL não possui método para consultar dados de várias fontes. Na próxima lição, você aprenderá como fornecer dados para esses dois gráficos.

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: Personalizar dados NRQL.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.