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

Instrumentação gRPC

O agente New Relic Ruby instrumenta automaticamente clientes e servidores gRPC que usam a gem grpc (versão 1.0.0 ou superior). Todos os tipos de comunicação são suportados: unário, bidirecional, streaming de cliente e streaming de servidor.

Importante

A instrumentação gRPC requer o agente Ruby versão 8.10.0 ou superior.

Configuração (todas as configurações são opcionais)

Você pode configurar a instrumentação de clientes e servidores gRPC separadamente. Por padrão, ambas as opções de configuração são definidas como auto, que é a abreviação de automatic. O comportamento automático do agente para cada um é ativar a instrumentação tentando aproveitar o comportamento de pré-anexação do módulo Ruby inicialmente e recorrendo ao comportamento de cadeia do método Ruby se forem encontrados problemas de compatibilidade conhecidos.

Veja opções e exemplos adicionais nas seções a seguir.

Opções de cliente e servidor

Você pode alterar o comportamento do agente modificando o arquivo de configuração do New Relic ou definindo variáveis de ambiente. Aqui estão as opções que se aplicam a clientes e servidores:

  • auto: O padrão que é habilitado por meio da seleção automática de comportamento do método Ruby
  • disabled: instrumentação desabilitada
  • prepend: Força o uso do prefixo do método Ruby
  • chain: Forçar o uso do método Ruby cadeia

Opções específicas do cliente

Use o seguinte apenas para clientes:

  • parâmetro do arquivo de configuração: instrumentation.grpc_client
  • variável de ambiente: NEW_RELIC_INSTRUMENTATION_GRPC_CLIENT

Opções específicas do servidor

Use o seguinte apenas para servidores:

  • parâmetro do arquivo de configuração: instrumentation.grpc_server
  • variável de ambiente: NEW_RELIC_INSTRUMENTATION_GRPC_SERVER

Exemplos de configuração de cliente e servidor

Para desativar a instrumentação do servidor gRPC por meio do arquivo de configuração:

# newrelic.yml
instrumentation.grpc_server: disabled

Para desabilitar a instrumentação do cliente gRPC por meio de uma variável de ambiente:

bash
$
export NEW_RELIC_INSTRUMENTATION_GRPC_CLIENT=disabled

Verificação

Assim que o agente New Relic Ruby for iniciado, ele detectará a presença da gema grpc carregada e tentará aplicar a instrumentação gRPC. Quando a aplicação dessa instrumentação for bem-sucedida para os componentes do cliente e do servidor gRPC, o agente gravará as seguintes linhas em seu arquivo de log (log/newrelic_agent.log por padrão):

INFO : Installing New Relic supported gRPC_Client instrumentation using Prepend
INFO : Installing New Relic supported gRPC_Server instrumentation using Prepend

Uso

Contanto que a instrumentação esteja funcionando corretamente (consulte a verificação acima para confirmar isso), toda a instrumentação executada pelo agente New Relic Ruby deve ser totalmente automática e não exigir nenhuma modificação em nenhum código do cliente e/ou servidor gRPC existente.

A instrumentação gRPC do agente New Relic Ruby inclui cabeçalhos distributed tracing em spans, o que permite que chamadas de cliente e servidor gRPC sejam conectadas a qualquer outro serviço que suporte distributed tracing W3C. As solicitações gRPC podem ser enviadas de um cliente baseado em Ruby para um servidor baseado em outra linguagem, e um servidor baseado em Ruby pode atender solicitações provenientes de um cliente baseado em outra linguagem.

Importante

As solicitações do cliente gRPC não serão relatadas à New Relic, a menos que sejam geradas quando uma transação existente da New Relic estiver presente. Normalmente, isso significa que um método controlador Rails ou processo de trabalho em segundo plano está ativo e responsável pela invocação da solicitação do cliente gRPC. A solicitação será então acumulada na transação do wrapper externo na interface da web do New Relic.

As solicitações do servidor gRPC sempre gerarão uma nova transação New Relic e não exigirão nem serão acumuladas em nenhuma transação New Relic pré-existente.

Ver dados

Você pode ver os dados gRPC coletados em várias páginas na interface do New Relic.

Página de resumo

Na página Resumo da interface, as solicitações do cliente gRPC aparecem como transação da web e contribuem com dados para os seguintes gráficos: Web transactions time, Throughput e Error rate.

Página distributed tracing

Dica

distributed tracing é ativado por padrão no novo agente Ruby, mas se você tiver dúvidas, consulte distributed tracing para seus serviços Ruby.

Confira os dados do gRPC na página distributed tracing da interface:

  1. Vá para one.newrelic.com > All capabilities > APM & services.

  2. Clique na sua entidade (serviço).

  3. Na seção Monitor do painel esquerdo, clique em Distributed tracing.

  4. Clique em um grupo trace .

  5. Escolha um trace da lista e clique nele.

  6. Clique em Expand all.

  7. Na lista resultante de intervalos trace , clique em um intervalo trace individual.

  8. Clique na guia Attributes no painel direito.

    • Client instances: O atributo grpc_status, grpc_type, http.method e http.url devem aparecer. No caso de falha na solicitação do cliente (que terá um valor grpc_status diferente de 0), um atributo grpc_message adicional aparecerá com a mensagem de status do gRPC.
    • Server instances: O atributo request.grpc_type, request.method e request.uri devem aparecer.

Contanto que o aplicativo cliente e servidor estejam sendo monitorados por um agente New Relic com suporte para gRPC (em Ruby ou outra linguagem), o mapa distributed tracing deverá fazer o seguinte:

  • Exiba o aplicativo cliente e servidor.
  • Informar quantos tipos de chamadas distintas foram realizadas entre eles.

No caso de uma exceção Ruby baseada em gRPC, as informações sobre a exceção aparecerão na página Events > Errors .

Suporte e feedback

Ao entrar em contato com a New Relic para obter suporte e/ou feedback relacionado à instrumentação gRPC do agente New Relic Ruby, tente obter respostas para as seguintes perguntas:

  • Qual versão da gem grpc você está usando?
  • Você usa o rastreamento infinito da New Relic?
  • Como você descreveria o ambiente do seu aplicativo? framework, versão Ruby, outras tecnologias-chave usadas)
  • Para que você usa o gRPC?
  • Você usa Ruby para clientes gRPC?
  • Você usa uma linguagem diferente para clientes gRPC?
  • Você usa Ruby para servidores gRPC?
  • Você usa uma linguagem diferente para servidores gRPC?
  • Para onde você está chamando seu código de cliente gRPC? (de um controlador, um trabalho em segundo plano, etc.)
  • Que estratégia/estratégias você está usando para enviar seus dados? (unário, bidirecional, streaming de cliente, streaming de servidor)
Copyright © 2024 New Relic Inc.

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