• /
  • 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

Distributed tracing para seus serviços PHP

Distributed tracing permite que você veja toda a jornada de suas solicitações em sistemas distribuídos. O agente PHP é automaticamente instrumento com distributed tracing de uma série de funções nativas do PHP, bem como alguns clientes HTTP de terceiros:

Para o agente PHP, oferecemos dois tipos de distributed tracing (para obter mais detalhes, consulte Como funciona a amostragem de span):

  • Padrão (Amostragem head-based): Antes de qualquer rastreamento chegar, determinamos uma porcentagem definida de rastreamento para aceitar e analisar. Isso fornece um ponto de partida sólido para ver como o rastreamento pode ajudá-lo. Ele está ativado por padrão no agente PHP 9.21.0 e superior.

  • Rastreamento Infinito (amostragem tail-based): Nosso serviço baseado em nuvem aceita todos os seus rastreamentos e depois os classifica para encontrar o mais importante. O rastreamento infinito analisa todo o seu rastreamento e oferece opções de configuração para obter amostras do rastreamento mais importante para você.

Se você deseja apenas experimentar distributed tracing padrão (Amostragem head-based) ou também configurar o Rastreamento Infinito (amostragem tail-based), você precisa começar configurando o rastreamento padrão.

Distributed tracing padrão

Esta é a melhor abordagem para configurar distributed tracingpadrão se você ainda não tiver instalado nenhum agente APM para seus serviços.

Dica

Ao instalar o agente PHP New Relic , distributed tracing padrão é ativado por padrão. Se preferir desligá-lo, consulte nosso guia de configuração.

Identificar serviços

Descubra quais serviços atendem à sua solicitação para que você possa instrumentar cada um deles para enviar dados trace para o New Relic.

Instrumentar cada serviço com um agente APM

Para cada serviço envolvido em sua transação, você realizará a instalação separada do agente. Se alguns dos seus serviços usarem outros idiomas, basta repetir as etapas de instalação para esses idiomas.

Para iniciar a rotina de instalação, clique no bloco abaixo. Quando terminar de instalar cada agente, volte aqui para ver dicas para visualizar seu rastreamento.

PHP
Start installation

Ver rastreamento

Depois de instrumentar cada um de seus serviços com o agente APM, gere algum tráfego em sua aplicação para que possamos capturar algum rastro. Aqui estão algumas maneiras de visualizar seu rastreamento na interface:

Para obter mais ajuda para encontrar seu rastreamento na interface:

Rastreamento infinito

Distributed tracing padrão para o agente APM captura até 10% do seu rastreamento, mas se você quiser que analisemos todos os seus dados e encontremos o rastreamento mais relevante, você pode configurar o Rastreamento Infinito.

Antes de começar, primeiro certifique-se de atender aos requisitos.

Conclua a configuração do distributed tracingpadrão

A configuração do Infinite Tracing baseia-se no distributed tracing padrão. Portanto, certifique-se de ter concluído as etapas acima e continue com a configuração do observador trace .

Configurar o observador trace

O observador trace é um serviço New Relic baseado em AWS que coleta e analisa todos os seus rastreamentos. Siga as instruções em Configurar o observador de rastreamento. Quando terminar, retorne aqui com as informações do observador trace e continue com a próxima etapa para configurar o agente.

Configurar o agente para rastreamento infinito

As definições de configuração do Infinite Tracing incluem o distributed tracing padrão, além de informações sobre o observador trace . Observe que a configuração no lado do servidor não está disponível para Infinite Tracing.

Dica

Se precisar de ajuda com a configuração do proxy, consulte Suporte ao proxy.

(Opcional) Personalizar rastreamento infinito

Depois de adicionar as definições de configuração do agente, você deverá começar a ver os dados na interface do New Relic. Depois de passar algum tempo analisando seus dados, você pode querer ajustar alguns recursos do Infinite Tracing:

Definir nível de detalhe trace

O suporte distributed tracing depende do tracerde transação do agente PHP. Quando distributed tracing está ativado, um intervalo é criado para cada segmento visto pelo tracer de transação.

À medida que os spans são amostrados, o agente PHP priorizará os spans relacionados a chamadas externas acima de outros spans, que serão então registrados em ordem decrescente de duração.

Se você descobrir que há muitos intervalos sem importância sendo relatados para chamadas de função PHP, poderá reduzir os detalhes do tracer de transação definindo newrelic.transaction_tracer.detail como 0. Você pode então usar a definição de configuração newrelic.transaction_tracer.custom ou o método de API newrelic_add_custom_tracer para adicionar segmentos e intervalos trace para a função ou métodos PHP específicos que deseja adicionar ao seu rastreamento.

Importante

Para versões do agente PHP 8.4 a 8.7: quando distributed tracing está ativado, essas versões se comportam como se newrelic.transaction_tracer.detail estivesse definido como 0 (conforme descrito acima), o que faz com que as chamadas de função PHP não gerem intervalos. Para obter intervalos relacionados a chamadas de função PHP, atualize para a versão 9.0 ou superior.

Manualmente instrumento aplicativo e serviços com API do agente PHP

Importante

O suporte W3C Trace Context foi adicionado na versão 9.8. Com isso, a API do aplicativo instrumentado manualmente mudou das funções relacionadas ao payload JSON:

newrelic_create_distributed_trace_payload()
newrelic_accept_distributed_trace_payload($payload)

Para os formulários de matriz de cabeçalho:

newrelic_insert_distributed_trace_headers($outbound_headers)
newrelic_accept_distributed_trace_headers($inbound_headers)

As funções JSON agora são consideradas obsoletas e serão removidas em uma versão futura.

Se você estiver usando uma biblioteca não suportada ou tiver um componente de sistemas distribuídos não baseado em HTTP (como fila de mensagens), poderá usar a API do agente PHP para identificar manualmente a transação a ser incluída em um distributed trace. Este é um processo de duas etapas:

  1. Modifique seu serviço ou aplicativo para create ou insert os dados distributed tracing
  2. Modifique seu serviço ou aplicativo para accept dados distributed trace criados por outras transações ou solicitações.

O exemplo a seguir usa uma fila genérica de mensagens/trabalhos. Embora os detalhes reais variem dependendo do tipo de sistema que você está tentando adicionar a um distributed trace, os conceitos básicos são os mesmos. Além disso, embora tenhamos usado uma fila de tarefas como exemplo, você pode usar esses métodos com o componente any sistemas distribuídos.

Dica

Ao create a payload ou insert headers, você informa à New Relic que deseja que esta solicitação ou transação ou solicitação participe de um distributed trace. Ao accept -los, você está vinculando a solicitação ou transação atual à solicitação ou transação pai.

Para obter mais informações sobre como usar instrumentação manual para obter mais detalhes ou ver conexões entre serviços, consulte a documentação sobre distributed tracing API.

API de cabeçalho

API de carga útil (obsoleta)

Programas PHP de linha de comando

Os programas PHP executados a partir da linha de comando PHP são sempre amostrados pelo tracer distribuído do agente. Dependendo dos programas que você executa, esses processos podem ter uma representação excessiva em sua coleção de rastreamentos distribuídos. Nessas situações, você pode optar por desativar a instrumentação de linha de comando usando a configuração per-directory newrelic.enabled em seu newrelic.ini files.

Copyright © 2024 New Relic Inc.

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