Aqui estão alguns exemplos de várias configurações de browser que você pode fazer com GraphQL.
Crie um novo aplicativo de browser
Você pode criar um aplicativo de browser usando nossa API NerdGraph em vez de usar a interface. A vantagem disso é que, quando chegar a hora de instrumentar seu aplicativo de browser com o New Relic, você poderá criar e recuperar programaticamente o trecho JavaScript para copiar e colar em seu aplicativo de browser.
Para saber como usar o npm para configurar para vários aplicativos, consulte Instrumentar vários aplicativos com npm.
Aqui está um exemplo de mutação para criar um novo aplicativo de browser com configurações padrão.
Mutação:
mutation CreateExampleBrowserApplication( $accountId: Int! $name: String! $settings: AgentApplicationBrowserSettingsInput) { agentApplicationCreateBrowser( accountId: $accountId name: $name settings: $settings ) { guid name settings { cookiesEnabled distributedTracingEnabled loaderScript loaderType } }}Variáveis:
{ "accountId": Int!, "name": String!, "settings": { "cookiesEnabled": Boolean, "distributedTracingEnabled": Boolean, "loaderType": AgentApplicationBrowserLoader }}Recuperar o trecho JavaScript
Você pode recuperar o trecho JavaScript para copiar/colar em seu aplicativo. Observe que o trecho retornado é uma string codificada em JSON que precisará ser analisada antes de ser copiada/colada.
Consulte:
query FetchBrowserJavaScriptSnippet($guid: EntityGuid!) { actor { entity(guid: $guid) { ... on BrowserApplicationEntity { guid name browserProperties { jsLoaderScript } } } }}Variáveis:
{ "guid": EntityGuid!}Exemplos de configuração de monitoramento de Browser
As configurações do browser podem ser definidas através do NerdGraph. Aqui está um exemplo de mutação que altera o apdex de um aplicativo.
Mutação:
mutation UpdateBrowserApdexTarget( $guid: EntityGuid! $settings: AgentApplicationSettingsUpdateInput!) { agentApplicationSettingsUpdate(guid: $guid, settings: $settings) { browserSettings { browserConfig { apdexTarget } } errors { description errorClass field } }}Variáveis:
{ "guid": EntityGuid!, "settings": { "browserConfig": { "apdexTarget": Float } }}Para obter mais informações sobre quais configurações do browser podem ser atualizadas via NerdGraph, consulte a seguinte mutação. A documentação para cada campo pode ser encontrada no explorador NerdGraph.
Mutação:
mutation UpdateBrowserSettingsExample( $guid: EntityGuid! $settings: AgentApplicationSettingsUpdateInput!) { agentApplicationSettingsUpdate(guid: $guid, settings: $settings) { browserSettings { browserConfig { apdexTarget } browserMonitoring { ajax { denyList } distributedTracing { allowedOrigins corsEnabled corsUseNewrelicHeader corsUseTracecontextHeaders enabled excludeNewrelicHeader } loader privacy { cookiesEnabled } } dataManagement { sendTransactionEventsToInternalStream } } errors { description errorClass field } }}Variáveis:
{ "guid": EntityGuid!, "settings": { "browserConfig": { "apdexTarget": Float }, "browserMonitoring": { "ajax": { "denyList": [String!] }, "distributedTracing": { "allowedOrigins": [String!], "corsEnabled": Boolean, "corsUseNewrelicHeader": Boolean, "corsUseTracecontextHeaders": Boolean, "enabled": Boolean, "excludeNewrelicHeader": Boolean } "loader": AgentApplicationSettingsBrowserLoaderInput, "privacy": { "cookiesEnabled": Boolean } } "dataManagement": { "sendTransactionEventsToInternalStream": Boolean } }}Recuperar a configuração do aplicativo
Você pode recuperar a configuração do aplicativo do browser para usar com o método de instalação do pacote npm. Dependendo das suas necessidades, a configuração pode ser retornada em dois formatos diferentes:
- uma string codificada em JSON para injeção no elemento
headda sua página da web. - um objeto que pode ser usado como está no código-fonte do seu aplicativo.
Consulte:
query FetchBrowserConfiguration($guid: EntityGuid!) { actor { entity(guid: $guid) { ... on BrowserApplicationEntity { guid name browserProperties { jsConfig jsConfigScript } } } }}Variáveis:
{ "guid": EntityGuid!}Agrupe seus dados com segmentos do browser
Você pode agrupar os resultados do monitoramento do browser por segmentos do browser para obter dados mais significativos. Em vez de fazer isso na interface, você pode fazer isso com GraphQL.
Listar segmentos
Comece listando os segmentos existentes:
{ actor { entity(guid: "YOUR_GUID") { ... on BrowserApplicationEntity { segmentAllowListAggregate { segments } } } }}Aqui está a resposta:
{ "data": { "actor": { "entity": { "segmentAllowListAggregate": { "segments": ["urlsegment1", "urlsegment2"] } } } }}Criar segmentos
Crie segmentos de browser usando a mutação agentApplicationSegmentsReplaceAllBrowserSegmentAllowList :
mutation { agentApplicationSegmentsReplaceAllBrowserSegmentAllowList( entityGuid: "YOUR_GUID" allowList: { segments: ["urlsegment1", "urlsegment2", "urlsegment3"] } ) { segments }}Aqui está a resposta:
{ "data": { "agentApplicationSegmentsReplaceAllBrowserSegmentAllowList": { "segments": ["urlsegment3", "urlsegment2", "urlsegment1"] } }}Crie regras de ofuscação
Você pode mascarar dados confidenciais antes que sejam coletados criando regras de ofuscação de ingestão diretamente da plataforma New Relic ou do NerdGraph. Essas regras se aplicam a todos os eventos do browser. As regras configuradas por meio da plataforma ou do NerdGraph se aplicam a aplicativos injetados pelo APM, instalações de copiar/colar e instalações do NPM. Para criar regras por meio da plataforma ou JavaScript, consulte Ofuscar Dados Confidenciais no Agente do Browser.
Para criar regras de ofuscação via NerdGraph:
Configurar a captura de carga AJAX
Você pode recuperar e atualizar a configuração de captura de carga AJAX para o seu aplicativo de navegador usando o NerdGraph. Essa configuração controla se a carga de solicitação e resposta é capturada para chamadas AJAX e corresponde à opção de captura de carga nas configurações do seu aplicativo.
Você pode habilitar as configurações de captura de carga em duas etapas:
Recupere as configurações da captura de carga atual.
Defina o modo
capturePayloadspara um dos seguintes valores:none: nenhum dado de carga será capturado.failures: captura carga apenas para requests com um código de status de0, um código de400ou superior, ou uma assinatura de erro do GraphQL noresponse body.all: captura carga para todos os requests.
Fixação da versão do agente do browser
A API GraphQL da New Relic fornece um método para "fixar" uma versão específica do agente New Relic Browser, garantindo que ela permaneça consistente em sua plataforma. Ao fixar uma versão, você pode evitar atualizações automáticas que possam introduzir alterações ou comportamentos inesperados. Os principais benefícios desse recurso incluem:
- Control: mantenha autonomia sobre quando e como as atualizações serão aplicadas.
- Confidence: certifique-se de que uma versão testada e aprovada do agente esteja sempre em execução.
- Testability: teste facilmente novas versões em ambientes isolados antes de decidir atualizar.
- Stability: minimize interrupções inesperadas e mantenha um comportamento consistente do aplicativo.
- Efficiency: Reduza o tempo de implantação e mitigue as dificuldades de implantação.
Aqui está uma visão geral de como usar a API de fixação de versão do browser agente: