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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Estrutura PHP: Integrar suporte para New Relic

Este documento é o AI Monitoring para desenvolvedores ou mantenedores do framework PHP. Ele sugere maneiras de estender sua framework adicionando suporte para New Relic.

O agente PHP oferece suporte ao framework descobrindo onde no framework o código de transação da web pode ser nomeado apropriadamente e nomeando a transação da web com base nas informações encontradas na classe, chamada de função, etc. Esta solução é frágil e está sujeita a alterações de código pelos desenvolvedores. A New Relic incentiva os desenvolvedores framework a fazerem as poucas chamadas necessárias para melhorar a experiência do usuário pronta para uso com o framework que eles mantêm.

Ajude seu usuário

A New Relic pode identificar o nome da transação da web e onde inserir cabeçalhos e rodapés JavaScript para da New Relic. Porém, para melhorar a experiência do usuário final, aumentar o desempenho e facilitar a manutenção do código, os desenvolvedores framework devem fazer esse trabalho sozinhos.

Cabe aos desenvolvedores dos diversos frameworks decidir se desejam ajudar seu usuário adicionando suporte nativo ao New Relic. Em quase todos os casos, adicionar suporte para New Relic envolve inserir três chamadas de API em algum lugar do código framework .

Terminologia

Para entender a melhor forma de adicionar suporte ao New Relic, é útil entender alguns dos principais pontos de interação.

Term

Definition

Web transactions

Web transactions são solicitações de recursos (ou acessos de usuários) ao seu site. Com o framework, isso geralmente é tratado por um mecanismo de despacho MVC.

Metrics

Metrics são denominadas entidades que reportam informações de tempo. A New Relic usa essas métricas para gerar gráficos e páginas, como a página APM Summary . Por exemplo, o instrumento New Relic chama o MySQL e gera uma métrica chamada Database/select ou Database/update sempre que um usuário seleciona ou atualiza dados.

Métrica contém apenas dados de tempo.

Transaction traces

Durante cada período de colheita, a New Relic registra a transação da web mais lenta que fica abaixo de um limite definido pelo usuário. Este é um transaction trace.

Tem mais detalhes do que uma simples métrica. Se ativado, incluirá um gráfico de chamada detalhado de exatamente quais funções foram chamadas e quanto tempo demoraram. Para instruções de consulta lenta, ofusca todos os dados da chamada.

Nome transação

O modo como você nomeia sua transação da web afetará a qualidade da experiência do usuário.

Importante

Não use colchetes [suffix] no final do nome da sua transação. O New Relic remove automaticamente os colchetes do nome. Em vez disso, use parênteses (suffix) ou outros símbolos, se necessário.

Examples:

Se você tiver uma framework estilo blog, você nomearia as diversas transações com base na atividade do usuário: display, edit, login, etc.

Se você usar uma arquitetura MVC, uma convenção de nomenclatura apropriada será controller/action. Não inclua nenhum dado específico da solicitação no nome da transação. Por exemplo, usar o URL de solicitação real leva a problemas de agrupamento métrico.

Platform

Transaction naming example

Drupal 7

O despacho é feito em menu_execute_active_handler(). Isso chama call_user_func_array(), sendo o primeiro argumento o nome da ação. Isso é o que definir como nome da transação da web.

CakePHP 1.3

CakePHP tem uma classe Dispatcher com um método _invoke . Isso chama a classe de controlador apropriada com uma determinada ação, e a transação é denominada controller/action onde controller é o nome da classe de controlador.

No ponto em que você deseja rotear o código para um controlador e ação específicos (se estiver usando MVC) ou para uma ação (se não estiver usando MVC), insira um código semelhante a este:

Controller and action (ao usar MVC):

if (extension_loaded ('newrelic')) {
newrelic_name_transaction ($controller . '/' . $action);
}

Action only (não usando MVC):

if (extension_loaded ('newrelic')) {
newrelic_name_transaction ($action);
}

Insira o cabeçalho e rodapé JavaScript

Para o tempo de carregamento da página (às vezes chamado de monitoramento de usuário real ou RUM), insira o cabeçalho e o rodapé JavaScript. Isso permite monitor a experiência do usuário final da página gerada.

  • Recommendation:

    Se o seu framework possui uma função central que gera todos os cabeçalhos e rodapés das páginas, instale o código JavaScript aqui.

  • Para estruturas baseadas em modelos, insira-as em seus modelos de cabeçalho e rodapé.

Copyright © 2024 New Relic Inc.

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