Com nosso agente Ruby , você pode obter o logs in context, que permite ver o registro do seu aplicativo no contexto de outros dados New Relic . Para informações gerais sobre este recurso, consulte logs contextualizados APM.
Você tem três opções para configurar o log in context para enviar o log do seu aplicativo e vincular metadados automaticamente ao New Relic.
Esta é a abordagem mais simples e é uma ótima opção para desenvolvedores que podem não ter acesso ou interesse em configurar um direcionador de logs ou para contas que desejam ver o poder do log e outros metadados de vinculação no contexto de seus aplicativos sem muita sobrecarga.
Tudo o que você precisa fazer é instalar uma versão do agente com recursos de encaminhamento de logs (agenteRuby 8.6.0 ou superior). Se o encaminhamento estiver desabilitado, você poderá usar esta configuração:
Esta opção está habilitada por padrão na versão 8.7.0 e posterior. Para desativar o encaminhamento de logs, você deve definir o valor como false.
Optional adjustments:
Depois de habilitado, você também terá controle sobre o número máximo de logs enviados ao New Relic a cada minuto. O valor padrão é 10.000. Se mais de 10.000 logs forem recebidos em uma janela de 60 segundos, seu log começará a ser amostrado.
Defina-o para um número mais alto para receber mais log. Defina-o para um número menor para receber menos log. Qualquer número inteiro até 100.000 é válido.
Se você tiver uma solução de encaminhamento de logs existente e estiver atualizando seu agente para usar o logs contextualizados automáticos, certifique-se de disable your manual log forwarder. Caso contrário, seu aplicativo enviará linhas de log duplas. Dependendo da sua conta, isso pode resultar em cobrança dupla. Para obter mais informações, siga os procedimentos para desabilitar seu direcionador de logs específico.
Já tem um encaminhador de logs que você gosta? Estamos protegendo você! O agente de linguagem pode decorar seu log com os metadados de link necessários para fornecer acesso ao recurso de log-in-context automático.
Esta opção não deve ser usada com encaminhamento no agente. Usar um encaminhador de logs externo para enviar log para New Relic enquanto o encaminhamento no agente estiver habilitado fará com que seu log seja enviado duas vezes para New Relic. Dependendo da sua conta, isso pode resultar em cobrança dupla.
Esta opção também não deve ser usada com o formatador manual de decoração log . Se você tiver referências ao formatador manual em sua base de código, remova-as antes de ativar esta opção.
Se você quiser usar esta opção, certifique-se de ter a opção de configuração de encaminhamento no agente desabilitada.
newrelic.yml:
application_logging:
forwarding:
enabled:false
Habilite a decoração de log em sua configuração e reinicie o agente para começar a decorar seu log.
Nosso decorador adiciona cinco atributos a cada mensagem do log: entity.guid, entity.name, hostname, trace.id e span.id. Exemplo:
This is my log message. NR-LINKING|{entity.guid}|{hostname}|{trace.id}|{span.id}|{entity.name}|
Alguns atributos podem ficar vazios se o log ocorreu fora de uma transação ou se não forem aplicáveis ao contexto do seu aplicativo.
Recomendamos esta opção em vez do formatador de decoração manual, NewRelic::Agent::Logging::DecoratingFormatter.
Antes que o agente de linguagem pudesse encaminhar e decorar o log, você poderia ativar o logs contextualizados atualizando seu aplicativo para usar o NewRelic::Agent::Logging::DecoratingFormatter para enviar metadados de link.
Esta opção ainda é suportada, mas não é mais incentivada. Para obter instruções sobre como usar essa abordagem, consulte Logs contextualizados manual na opção.
Além disso, este método requer que você instale um direcionador de logs antes de ativar o logs contextualizados. Se você não tiver um direcionador de logs, a interface do New Relic prompt que você use nosso agente de infraestrutura.
Se você decidir usar sua solução de encaminhamento de logs existente e posteriormente decidir atualizar seu agente para usar o logs contextualizados automático, certifique-se de disable your manual log forwarder. Caso contrário, seu aplicativo enviará linhas de log duplas. Dependendo da sua conta, isso pode resultar em cobrança dupla. Para obter mais informações, siga os procedimentos para desabilitar seu direcionador de logs específico.
Este documento ajudou você na instalação?
Proteja seus dados
Seu registro pode incluir informações confidenciais protegidas pela HIPAA ou outros protocolos de conformidade. Por padrão, ofuscamos padrões numéricos que parecem ser de itens como cartões de crédito ou números de Seguro Social, mas pode ser necessário aplicar hash ou mascarar informações adicionais.
Para mais informações, veja nossa documentação sobre expressão de ofuscação e regras. Você pode aplicar hash ou mascarar seus dados log usando a interface New Relic ou NerdGraph, nossa API GraphQL.
Normalmente, seu registro começará a aparecer menos de um minuto após você ativar o logs contextualizados. Verifique a seção Triage > Logs do seu aplicativo. Você também começará a ver Padrões de log relacionados ao erro ali.
Se você não vir nenhum log de erros ou rastreamento, talvez não haja nenhum para seu aplicativo. Tente atualizar a página da interface ou altere o período selecionado.
Desabilitar o registro automático
O logs contextualizados APM encaminha automaticamente os dados log do APM do agente e é habilitado por padrão. Isso pode ter um impacto negativo na segurança, na conformidade, no faturamento ou no desempenho do sistema. Para obter mais informações ou se precisar ajustar a configuração padrão, siga os procedimentos para desativar o registro automático.
Opção de logs contextualizados manual
Se você precisar usar o processo manual para configurar o logs contextualizados para Ruby, siga estas etapas:
Certifique-se de já ter configurado o login no New Relic. Isso inclui a configuração de um encaminhador de logs compatível que coleta seu log do aplicativo e estende os metadados que são encaminhados para New Relic.
Um agente que você pode personalizar configurando config.logger
Um formatador log que você pode personalizar configurando config.log_formatter)
Na maioria dos casos, você deve configurar o logs contextualizados definindo config.log_formatter como DecoratingFormatter em seu aplicativo Rails. Para obter mais informações sobre a configuração do Rails, consulte a documentação do rubyonrails.org.
Na configuração do seu aplicativo, require newrelic_rpm e adicione a seguinte linha:
Esta configuração utiliza o Formatador do New Relic para mensagem do log, mas o restante da configuração é fornecido pelas demais configurações do Rails.
O agente de decoração da New Relic é conhecido por ser incompatível com as seguintes gemas:
Se a configuração da opção log_formatter não atender às suas necessidades, substitua todo o agente Rails por uma instância do agente New Relic . Forneça o parâmetro ao construtor do agente, assim:
O DecoratingLogger é um substituto imediato para o padrão Ruby ::Logger. Seus construtores aceitam o mesmo parâmetro.
Para configurar esta extensão com a gem lograge, siga os procedimentos padrão neste documento para configuração do Ruby on Rails. Nenhuma configuração adicional é necessária para a gema lograge.
Para usar nossa extensão de geração de registros com uma implementação de geração de registros diferente ou com seu próprio agente personalizado, use DecoratingFormatter. Por exemplo:
Para verificar se você configurou o anexador log corretamente, execute seu aplicativo e verifique seus dados log na interface do New Relic usando o operador de consulta has:span.id has:trace.id.
Se tudo estiver configurado corretamente e seus dados estiverem sendo encaminhados para New Relic com os metadados enriquecidos, seu log agora deverá ser emitido como JSON e conter os campos trace.id e span.id.
Se você configurou seu registro em /config/application.rb ou em /config/environments/development.rb, execute seu aplicativo localmente e verifique sua saída de registro. Você deverá ver alguma saída como esta: