Nosso agente Python permite que você altere o comportamento padrão do agente usando opções de configuração.
A única configuração necessária do agente Python é . A chave de licença identifica a conta onde o agente reporta os dados do aplicativo. Dependendo de como você está hospedando seu aplicativo, a chave de licença pode ser fornecida por meio de um arquivo de configuração ou de uma variável de ambiente.
O agente Python segue esta ordem de precedência para configuração:
Com o agente Python, as opções por solicitação substituem a configuração do lado do servidor. Se ativada, a configuração do lado do servidor substitui all valores correspondentes no arquivo de configuração do agente, mesmo que os valores do lado do servidor sejam deixados em branco. O arquivo de configuração do agente substitui as variáveis de ambiente. As variáveis de ambiente substituem os padrões do agente.
Aqui estão descrições detalhadas de cada método de configuração:
Normalmente você configura seu agente Python a partir de um arquivo de configuração local no sistema host do agente. Forneça o caminho para o arquivo de configuração na inicialização usando um destes métodos:
Ao chamar newrelic.agent.initialize(), forneça o caminho para o arquivo de configuração como primeiro argumento.
OU
Defina a variável de ambiente NEW_RELIC_CONFIG_FILE . Se você usar o script wrapper newrelic-admin , deverá usar a variável de ambiente porque o script wrapper chama o agente automaticamente.
O agente suporta dois tipos de arquivos de configuração: o agente v10.2.0 e versões mais antigas devem usar a sintaxe .ini , enquanto as versões do agente v10.3.0 e superiores em execução no Python versões 3.11 e superiores também suportam arquivos .toml .
O arquivo de configuração usa uma estrutura semelhante aos arquivos do Microsoft Windows .ini . Para obter mais informações, consulte a documentação do formato de arquivo do módulo Python ConfigParser.
A estrutura básica deve ser semelhante à seguinte:
[newrelic]
license_key=<license key>
app_name=Python Application
Dica
A partir do Python 3.11, a nova sintaxe .toml para configuração foi adicionada à biblioteca padrão. A versão do agente 10.3.0 adicionou suporte para usar este formato mais novo.
Para usar a sintaxe .toml , o nome do arquivo de configuração deve terminar com .toml para indicar o tipo de sintaxe. O padrão pyproject.toml pode ser usado junto com a configuração para outras bibliotecas, ou você pode usar um arquivo mais específico como newrelic.toml.
A estrutura básica deve ser semelhante à seguinte:
[tool.newrelic]
license_key=<license key>
app_name=Python Application
Dica
Um arquivo de configuração de amostra está incluído no agente Python como newrelic/newrelic.ini. Você também pode gerar um a partir do script newrelic-admin usando o comando generate-config ou fazer download de uma cópia em nosso repositório de download.
A configuração no lado do servidor permite definir determinadas configurações na interface do New Relic. Isso aplica suas alterações automaticamente a todos os agentes, mesmo que eles sejam executados em vários hosts. Quando disponível, este documento inclui os rótulos de interface para configuração do lado do servidor em opções de configuração individuais como Server-side label.
Importante
Se a configuração do lado do servidor estiver habilitada, o agente ignorará qualquer valor no arquivo de configuração que could seja definido na interface. Mesmo que o valor da interface esteja vazio, o agente trata isso como uma sequência vazia e não usa o arquivo de configuração do agente.
As variáveis de ambiente permitem substituir os padrões de determinadas configurações principais. Se a configuração equivalente estiver listada explicitamente no arquivo de configuração do agente, as configurações do arquivo de configuração terão precedência sobre a variável de ambiente. Quando disponíveis, as variáveis de ambiente são documentadas abaixo em opções de configuração individuais como Environ variable.
Para configurações simples, você pode usar as variáveis de ambiente em conjunto com a configuração no lado do servidor e evitar completamente o arquivo de configuração do agente. Esta é a configuração padrão do Heroku, onde a instalação do complemento New Relic preenche automaticamente as variáveis de ambiente necessárias.
Para determinados servidores WSGI, você pode substituir o nome do aplicativo e capturar configurações de atributo por solicitação. Isso é possível com servidores WSGI onde é possível definir pares de valores principais adicionais que são passados para o dicionário de ambiente WSGI por solicitação.
Defina esses valores com as strings on, off, true, false, 1 e 0. Se definido a partir de um mecanismo de configuração implementado usando código Python, os objetos Python avaliados como True ou False também serão aceitos.
No servidor Apache/mod_wsgi, você pode usar a diretiva SetEnv para substituir as configurações (opcionalmente dentro de um bloco Location ou Directory ). Por exemplo, você pode substituir o nome do aplicativo por um host virtual completo ou por um subconjunto de URLs manipulados pelo aplicativo WSGI para esse host virtual.
Além de poder substituir determinadas definições de configuração do agente, você pode definir outras definições de configuração por solicitação com sua chave de ambiente WSGI:
Se definida como true, esta transação da web será relatada como uma transação fora da web.
Se definido como true, esta transação da web não será informada.
Se definido como true, nenhuma métrica Apdex será gerada para esta transação da web.
Se definido como true, esta transação da web não poderá ser registrada em um trace da transação.
Se definido como true, isso desativa a inserção automática do cabeçalho/rodapé JavaScript para tempo de carregamento da página (às vezes chamado de monitoramento de usuário real ou RUM). Aplicável apenas se a inserção automática estiver disponível para sua framework da web.
Importante
Usar um middleware WSGI para definir esses valores não funcionará onde o wrapper de aplicativo WSGI do próprio agente Python foi aplicado em um escopo externo. Nestes casos você deve fazer chamadas para a API do agente para obter o mesmo resultado.
Configuração de vários ambientes
O agente lê sua configuração primária de uma seção de configuração do agente chamada [newrelic] para arquivos ini ou [tool.newrelic] para arquivos .toml . Você pode fornecer substituições para ambientes de implantação específicos (por exemplo, Desenvolvimento, Preparação, Produção) em seções adicionais. Prefacie estas seções com [newrelic:environment] para arquivos .ini ou [tool.newrelic.env.environment] para arquivos .toml (onde environment é substituído pelo nome do seu ambiente).
Para especificar que o agente deve usar uma configuração baseada em ambiente, use um destes métodos:
O nome do aplicativo usado para agregar dados na interface do New Relic. Para relatar dados para vários aplicativos ao mesmo tempo, especifique uma lista de nomes separados por ponto e vírgula ;. Não coloque um espaço antes do ponto e vírgula, o que faz com que o analisador de configuração do Python interprete o nome como um comentário incorporado.
Quando true, o agente instrumentará seu aplicativo da web, mas não enviará nenhum dado real. Neste modo offline, você não será cobrado por um agente ativo.
Use o modo de desenvolvedores para testar novas versões do agente ou teste o agente em pacotes de terceiros em um ambiente de desenvolvedores. O modo offline não é uma forma de executar o APM localmente, pois as métricas coletadas pelo agente não são reportadas em lugar nenhum.
Define o nome de um arquivo de log, que é útil para depurar problemas com o agente. Isso não é definido por padrão, pois o agente não conhece o usuário pai do processo do aplicativo Web ou em quais diretórios esse processo tem permissão para gravar. Para obter informações detalhadas, consulte logging do agente Python.
Independentemente do que você definir, certifique-se de que as permissões para o diretório que o contém e o próprio arquivo estejam corretas e que o usuário que seu aplicativo da Web executa possa gravar no arquivo.
Dica
Use um caminho absoluto, a menos que você tenha certeza de qual será o diretório de trabalho do seu aplicativo na inicialização. Se não for possível gravar um arquivo de log, você também poderá usar stderr e gerar a saída de erro padrão. Isso normalmente resultaria na exibição da saída no log do servidor web.
Define o nível de detalhe da mensagem do log, caso você tenha definido o local do arquivo de log. Este log_level não afetará o nível de log do módulo de registro do Python. Os valores possíveis, em ordem crescente de detalhes, são critical, error, warning, info e debug.
Para relatar problemas de agentes, a configuração mais útil é debug. Porém, debug gera muitas informações muito rapidamente, portanto não mantenha o agente neste nível por mais tempo do que o necessário para reproduzir seu problema.
O modo de alta segurança impõe determinadas configurações de segurança e evita que sejam substituídas, para que nenhum dado confidencial seja enviado para nós. Ativar o modo de alta segurança significa que os parâmetros da solicitação não serão coletados e você não poderá enviar SQL bruto.
Para ativar o modo de alta segurança, defina-o como true no arquivo de configuração .ini local and e ative-o na página Account settings . Para obter mais informações, consulte Alta segurança.
Por padrão, o agente Python tenta se conectar diretamente aos nossos servidores. Se houver um firewall entre seu host e nosso coletor que exija o uso de um proxy HTTP, defina proxy_host e proxy_port com os valores necessários para seu proxy HTTP. Se a autenticação de proxy for implementada pelo proxy HTTP, configure também proxy_user e proxy_pass.
A configuração proxy_scheme determina qual esquema de protocolo é usado para se comunicar com o proxy HTTP. Quando definido como http, o agente usa um túnel SSL por meio do proxy HTTP para criptografia de ponta a ponta.
Em vez de definir as configurações proxy_scheme, proxy_host e proxy_port , você também pode definir a configuração proxy_host como um URI válido para o proxy. Inclua o esquema, host e porta; por exemplo, http://proxy-host:8000. Isso também funciona se você definir os detalhes do proxy HTTP com a variável de ambiente NEW_RELIC_PROXY_HOST .
Define o nome do arquivo de log de auditoria. Se definido, o agente registra detalhes de mensagens transmitidas entre o processo monitor e o coletor. Isso permite avaliar a segurança do agente Python.
Use um caminho absoluto, a menos que você tenha certeza de qual será o diretório de trabalho do seu aplicativo na inicialização. Qualquer que seja a configuração, certifique-se de que as permissões do diretório que o contém e do próprio arquivo estejam corretas. Certifique-se também de que o usuário pai do seu aplicativo Web possa gravar no arquivo.
Cuidado
Não use o log de auditoria continuamente, especialmente em um ambiente de produção. Como o agente não trunca ou rotaciona o arquivo de log, o arquivo de log pode crescer muito rapidamente.
Substituição manual do caminho para seu pacote de CA local. Este pacote CA será utilizado para validar o certificado SSL apresentado pelo nosso serviço de coleta de dados.
Dica
Esta opção de configuração está disponível apenas nas versões 4.2.0 e mais recentes do agente Python.
Isso só será definido no arquivo de configuração ou na variável de ambiente se serverless_mode estiver definido, o que está habilitado para AWS Lambda. Caso contrário, o valor local apdex_t será substituído pelo valor nas configurações do aplicativo de interface que será usado para definir o valor apdex_f .
Atributo
Atributo são pares de valor principal que fornecem informações para rastreamento de transação, erros de rastreamento, e evento de transação. Além de configurar o atributo para todos os quatro destinos com as configurações gerais de atributo abaixo, eles também podem ser configurados por destino.
Se atributo estiver habilitado, as chaves de atributo encontradas nesta lista serão enviadas para nós. As chaves na lista devem ser separadas por espaços, conforme mostrado abaixo:
Todas as chaves de atributo encontradas nesta lista não serão enviadas para nós. As chaves na lista devem ser separadas por espaços, conforme mostrado abaixo:
Se definido como false, o agente omitirá o conteúdo de entrada e saída (como sequências de texto de prompt e respostas) capturado no evento LLM. Esta é uma configuração de segurança opcional se você não quiser registrar dados confidenciais enviados e recebidos de seus LLMs.
Configuração tracer de transação
Importante
Não use colchetes [suffix] no final do nome da sua transação. O agente retira automaticamente os colchetes do nome. Em vez disso, use parênteses (suffix) ou outros símbolos, se necessário.
Limite em segundos para quando coletar um rastreamento da transação. Quando o tempo de resposta de uma ação do controlador excede esse limite, o agente registra um rastreamento da transação. Os valores válidos são qualquer float positivo ou apdex_f (quatro vezes apdex_t).
Quando o rastreador de transação está habilitado, o agente pode registrar instruções SQL. O gravador tem três modos: off (não envia SQL), raw (envia a instrução SQL em seu formato original) e obfuscated (retira literais numéricos e de string).
A maioria dos frameworks web (incluindo Django) parametrizam consultas SQL para que elas não contenham realmente os valores usados para preencher a consulta. Se você usar o modo raw com uma dessas estruturas, o agente Python verá apenas o SQL antes da inserção de valores. O SQL parametrizado será muito parecido com o modo obfuscated .
Limite em segundos para coletar rastreamento de pilha de chamadas SQL. Quando as instruções SQL excedem esse limite, o agente captura o stack trace atual. Isso é útil para identificar onde as chamadas SQL longas se originam em um aplicativo.
Consulta no rastreamento da transação que excedam esse limite reportarão dados de consulta lenta e quaisquer planos de explicação disponíveis. Explique que a coleta do plano não acontecerá se transaction_tracer.explain_enabled for false.
Esta configuração pode ser usada para ativar ou desativar todos os atributos de rastreamento da transação. Se attributes.enabled no nível raiz for false, nenhum atributo será enviado para rastrear a transação, independentemente de como esta definição de configuração (transaction_tracer.attributes.enabled) estiver definida.
Se os atributo estiverem habilitados para rastreamento da transação, todas as chaves de atributo encontradas nesta lista serão enviadas para nós no rastreamento da transação. Para mais informações, consulte as regras de atribuição de agentes.
Todas as chaves de atributo encontradas nesta lista não serão enviadas no rastreamento da transação. Para mais informações, consulte as regras de atribuição de agentes.
Para as funções ou métodos especificados, o agente capturará instrumentação adicional de temporização de função. Especifique esses nomes no formato module:function ou module:class.function.
O uso de curingas (globbing) para nomes de funções e classes é possível usando padrões suportados pelo módulo fnmatch . Os caminhos dos módulos não são suportados por curingas. Especifique os padrões no formato module:function* ou module:class.*.
Por exemplo, se você deseja adicionar rastreamento de função a todas as funções de validação no arquivo abaixo:
my-app/common/utils.py
defvalidate_credentials():
…
defvalidate_status():
…
defformat_message():
…
Adicione a seguinte linha ao arquivo de configuração do agente para incluir o rastreamento de função para todas as funções de validação em my-app/common/utils.py usando caracteres curinga.
Esta configuração pode ser usada para ativar ou desativar todos os atributos dos segmentos de rastreamento da transação. Se attributes.enabled no nível raiz for false, nenhum atributo será enviado para segmentos de rastreamento da transação, independentemente de como esta definição de configuração (transaction_segments.attributes.enabled) estiver definida.
Se os atributo estiverem habilitados para segmentos de trace da transação, todas as chaves de atributo encontradas nesta lista serão enviadas em segmentos de trace da transação. Para mais informações, consulte as regras de atribuição de agentes.
Todas as chaves de atributo encontradas nesta lista não serão enviadas em segmentos de rastreamento da transação. Para mais informações, consulte as regras de atribuição de agentes.
Erro na configuração do coletor
Aqui estão as configurações do coletor de erros disponíveis por meio do arquivo de configuração do agente.
Dica
Para obter uma visão geral da configuração de erros no APM, consulte Gerenciar erros no APM.
Para parar de coletar erros específicos, defina isso como uma lista separada por espaços de nomes de tipos de exceção do Python a serem ignorados. Use o formato module:class para o nome da exceção.
Dica
Antes da versão 6.4.0 do agente, essa configuração era denominada error_collector.ignore_errors. Se o seu arquivo de configuração ainda usa ignore_errors, atualize seu agente para usar ignore_classes.
Lista códigos de status HTTP que o agente deve ignorar em vez de registrar como erros. Liste códigos de status adicionais como números inteiros separados por espaços e especifique intervalos com um hífen - separador entre os valores inicial e final. Para adicionar um dos códigos padrão à sua lista de permissões, coloque um ponto de exclamação ! no início do código.
Esta configuração só é compatível com alguns frameworks web, pois alguns frameworks não usam exceções para retornar respostas HTTP.
Dica
Esta opção de configuração só pode ser definida em Configuração no lado do servidor nas versões 6.4.0 e mais recentes do agente Python.
Impede que classes de exceção especificadas afetem taxa de erros ou pontuação Apdex enquanto ainda relatam os erros ao APM. Defina isso como uma lista separada por espaços dos nomes de tipos de exceção do Python esperados. Use o formato module:class para o nome da exceção.
Dica
Esta opção de configuração está disponível apenas nas versões 6.4.0 e mais recentes do agente Python.
Impede que códigos de status HTTP especificados afetem a taxa de erros ou a pontuação Apdex enquanto ainda relatam os erros ao APM. Liste os códigos de status como números inteiros separados por espaços e especifique intervalos com um hífen - separador entre os valores inicial e final. Para negar um dos códigos da sua lista, coloque um ponto de exclamação ! no início do código.
Esta configuração só é compatível com alguns frameworks web, pois alguns frameworks não usam exceções para retornar respostas HTTP.
Dica
Esta opção de configuração está disponível apenas nas versões 6.4.0 e mais recentes do agente Python.
Esta configuração pode ser usada para ativar ou desativar todos os atributos para erros de rastreamento. Se attributes.enabled for false no nível raiz, nenhum atributo será enviado para erros de rastreamento, independentemente de como essa definição de configuração (error_collector.attributes.enabled) estiver definida.
Se atributo estiver habilitado para erros de rastreamento, todas as chaves de atributo encontradas nesta lista serão enviadas para erros de rastreamento. Para mais informações, consulte as regras de atribuição de agentes.
As chaves atributo encontradas nesta lista não serão enviadas em erros de rastreamento. Para mais informações, consulte as regras de atribuição de agentes.
Especifique o(s) HTML Content-Type(s) que nosso agente de monitoramento de Browser deverá auto-instrumentar. Adicione entradas adicionais em uma lista separada por espaços.
Se você estiver gerando respostas de páginas HTML e usando Content-Type de application/xhtml+xml, poderá substituir os tipos de conteúdo permitidos para listar esse tipo de conteúdo e o text/html padrão usando:
O trecho de monitoramento de JavaScript do browser impede que a página seja validada como application/xhtml+xml, embora a página deva ser carregada e renderizada nos browsers do usuário final.
Esta configuração pode ser usada para ativar ou desativar todos os atributos de monitoramento do Browser. Estes são os dados que são enviados para o evento de visualização de página. Se attributes.enabled for falso no nível raiz, nenhum atributo será enviado no monitoramento do Browser independente de como a configuração (browser_monitoring.attributes.enabled) estiver definida.
Se atributo estiver habilitado para browser_monitoring, todas as chaves de atributo encontradas nesta lista serão enviadas em visualizações de página. Para mais informações, consulte as regras de atribuição de agentes.
Todas as chaves de atributo encontradas nesta lista não serão enviadas em page views. Para mais informações, consulte as regras de atribuição de agentes.
Configurações de eventos de transação
Aqui estão as configurações de eventos de transação disponíveis por meio do arquivo de configuração do agente.
Dica
Essas definições de configuração costumavam ser chamadas de analytic_events. Se o seu arquivo de configuração ainda usa analytic_events, atualize seu agente para usar transaction_events.
Esta configuração pode ser usada para ativar ou desativar todos os atributos do evento de transação. Se attributes.enabled for false no nível raiz, nenhum atributo será enviado para o evento de transação, independentemente de como essa definição de configuração (transaction_events.attributes.enabled) estiver definida.
Se o atributo estiver habilitado para evento de transação, todas as chaves de atributo encontradas nesta lista serão enviadas no evento de transação. Para mais informações, consulte as regras de atribuição de agentes.
Tipo
Lista de cordas
Padrão
(nenhum)
Todas as chaves de atributo encontradas nesta lista não serão enviadas em evento de transação. Observe que excluir atributo do evento de transação não exclui do evento span. Para mais informações, consulte as regras de atribuição de agentes.
Configurações personalizadas do evento
Aqui estão as configurações personalizadas do evento disponíveis por meio do arquivo de configuração do agente.
Quando habilitado, o agente coleta métricas de instância do datastore (como host e porta) para algum driver do banco de dados. Estes também são relatados na consulta lenta trace e trace da transação.
Quando habilitado, o agente coleta o nome do banco de dados para algum driver do banco de dados. O nome do banco de dados é informado na consulta lenta trace e trace da transação.
Configurações distributed tracing
Distributed tracing permite ver o caminho que uma solicitação percorre ao percorrer sistemas distribuídos. A partir do agente Python versão 7.0.0.166 ou superior, distributed tracing é habilitado por padrão.
Os eventos Span são coletados para distributed tracing. distributed tracing deve ser ativado para relatar o evento span. As opções de configuração incluem:
Esta configuração pode ser usada para ativar ou desativar todos os atributos do evento span. Se attributes.enabled no nível raiz for false, nenhum atributo será enviado para span evento, independentemente de como esta definição de configuração (span_events.attributes.enabled) estiver definida. Para mais informações, consulte as regras de atribuição de agentes.
Se atributo estiver habilitado para span evento, todas as chaves de atributo encontradas nesta lista serão enviadas em span evento. Para mais informações, consulte as regras de atribuição de agentes.
Todas as chaves de atributo encontradas nesta lista não serão enviadas no evento span. Para mais informações, consulte as regras de atribuição de agentes.
Configuração de colheita de eventos
As configurações de coleta de eventos limitam a quantidade de dados de tipo de evento enviados para o New Relic. Ao usar essas configurações, considere estes pontos importantes:
As configurações de coleta de eventos afetam os limites de uma única instância do agente, e não de todo o aplicativo. Veja o exemplo de uso abaixo para saber como definir limites em um aplicativo inteiro.
O streaming em tempo real envia dados a cada cinco segundos (12 vezes por minuto), mas as configurações de coleta de eventos ainda afetam a taxa de eventos por minute. A ativação ou desativação do streaming em tempo real não requer alteração dessas configurações.
Com streaming em tempo real (habilitado por padrão), o New Relic exibirá os limites de colheita de eventos para entidade em intervalos de cinco segundos. Isso significa, por exemplo, que quando você define um valor limite de 1200 no arquivo de configuração, você o verá como 100 no New Relic.
Exemplo de uso
Digamos que uma aplicação seja implantada em 10 hosts, cada um executando quatro processos por host. Para limitar o número de eventos de extensão a 10.000 eventos por minuto para todo o aplicativo, divida esse número por 10 hosts. Em seguida, divida novamente por quatro processos por host.
Devido à forma como o New Relic coleta dados (12 vezes por minuto), se a contagem de dados do evento for menor que 12, ele aparecerá como 0 no New Relic.
Limite de evento span por minuto enviado por uma instância do agente Python para o New Relic.
Ao configurar o agente para AI Monitoring, defina o valor máximo 10000 para garantir que o agente capture a quantidade máxima de rastreamento distribuído.
A visibilidade do loop de eventos apresenta informações sobre transações que bloqueiam o loop de eventos. O agente irá gerar informações sobre transações que esperaram um tempo significativo para adquirir o controle do loop de eventos. As configurações incluem:
O agente reporta métricas de contagem de objetos para os tipos de objetos mais comuns coletados pelo coletor de lixo. Para cada tipo de objeto, esta configuração permite definir o número máximo de métricas individuais que serão amostradas.
Configurações de nível do código métrico
As seguintes configurações estão disponíveis para configuração do nível do código métrico no agente.
Uma tag de lançamento (como v0.1.209 ou release-209).
Configuração Errors Inbox
Definir uma das tags a seguir ajudará você a identificar quais versões do seu software estão produzindo erros.
NEW_RELIC_METADATA_SERVICE_VERSION irá criar tag.service.version nos dados do evento contendo a versão do seu código que está implantada, em muitos casos uma versão semântica como 1.2.3, mas nem sempre.
NEW_RELIC_METADATA_RELEASE_TAG criará tags.releaseTag nos dados do evento contendo a tag de lançamento (como v0.1.209 ou release-209).
NEW_RELIC_METADATA_COMMIT criará tag.commit nos dados do evento contendo o commit sha. O sha inteiro pode ser usado ou apenas os primeiros sete caracteres (por exemplo, 734713b).
Uma próxima versão da Errors Inbox rastreará automaticamente quais versões do seu software estão produzindo erros. Quaisquer dados de versão também serão exibidos no CodeStream.
Configurações de log do aplicativo
As configurações a seguir estão disponíveis para configuração do log do aplicativo no agente.
Se true, habilita a decoração de log e a coleta de evento de log e métrica de log se estes sub-recursos de configuração também estiverem habilitados. Se false, nenhum recurso de instrumentação de criação de log será ativado.
Se true, o agente captura os registros de log emitidos pelo seu aplicativo e os encaminha para o New Relic. application_logging.enabled também deve ser true para que esta configuração tenha efeito.
Se você já estiver enviando os logs do seu aplicativo para o New Relic usando uma solução de encaminhamento de logs existente, desative-a antes de ativar o encaminhamento de logs no agente, para evitar cobrança por dados log duplicados.
Aplicar hash com pares de valores principais para adicionar como atributo personalizado a todos os eventos de log encaminhados para o New Relic. O valor deve ser formatado como: "chave1:valor1;chave2:valor2"
Uma lista de nomes de rótulos que não diferenciam maiúsculas de minúsculas a serem excluídos quando você habilita a inclusão de rótulos no log. Este atributo não suporta curingas ou regex.
Importante
Ao adicionar rótulos como atributo, o agente prefixa as chaves com tags.. Este prefixo NÃO é incluído ao corresponder com as regras de filtragem de exclusão.
Se true, o agente capturará os dados de contexto disponíveis (extras, atributo de mensagem de dicionário, atributo fornecido pelo framework de registro) e adicionará seu conteúdo como atributo nos logs encaminhados para New Relic. Você pode controlar esse comportamento nas configurações da seção application_logging.forwarding.context_data .
Se atributo estiver habilitado para context_data, todas as chaves de atributo encontradas nesta lista serão enviadas para nós no rastreamento da transação. Para mais informações, consulte as regras de atribuição de agentes.
Importante
Ao adicionar atributo de contexto, o agente prefixa as chaves com context. para atributo do contexto da framework de registro e message. para atributo de um contexto de mensagem de dicionário.
Esses prefixos NÃO são incluídos na correspondência com regras de filtragem de inclusão/exclusão.
Todas as chaves de atributo encontradas nesta lista não serão enviadas em context_data. Para mais informações, consulte as regras de atribuição de agentes.
Importante
Ao adicionar atributo de contexto, o agente prefixa as chaves com context. para atributo do contexto da framework de registro e message. para atributo de um contexto de mensagem de dicionário.
Esses prefixos NÃO são incluídos na correspondência com regras de filtragem de inclusão/exclusão.
Número de registros de log a serem enviados por minuto para o New Relic. Esta configuração controla o consumo geral de memória ao usar o recurso de encaminhamento de logs.
Defina um valor mais baixo para reduzir a quantidade de linhas de log enviadas (pode causar amostragem de log). Defina um valor mais alto para enviar mais linhas de log.
Cada log recebe a mesma prioridade que sua transação associada. log que ocorrem fora de uma transação receberão uma prioridade aleatória. Alguns registros podem não ser incluídos porque são limitados por max_samples_stored. Por exemplo, se o registro em log max_samples_stored estiver definido como 10.000 e a transação 1 tiver 10.000 entradas de log, somente as entradas de log da transação 1 serão registradas. Se a transação 1 tiver menos de 10.000 logs, você receberá todos os logs da transação 1. Se ainda houver espaço, você receberá todo o log da transação 2 e assim por diante.
Se após todos os logs de transação amostrados forem registrados, e eles não atingirem o limite em max_samples_stored, então será enviada a mensagem do log de transação amostrada que não estava em nossa amostragem. Se sobrar alguma, as mensagens do log fora da transação serão registradas.
Se true, o agente captura métricas relacionadas às linhas de log enviadas pela sua aplicação. application_logging.enabled também deve ser true para que esta configuração tenha efeito.
Se true, o agente decora o log com metadados para vincular entidade, hosts, rastreamento e spans. application_logging.enabled também deve ser true para que esta configuração tenha efeito.
Permite agendar sessões de criação de perfil de thread. O thread profiler capturará periodicamente um instantâneo da stack de chamadas para cada thread ativo no aplicativo para construir uma árvore de chamadas estatisticamente representativa.
Se ativado, as mensagens de exceção serão removidas do rastreamento de erros antes de serem enviadas ao coletor, para evitar a captura inadvertida de informações confidenciais. Esta opção é habilitada automaticamente no modo de alta segurança.
As exceções listadas na sua lista de permissões não terão suas mensagens removidas, mesmo que strip_exception_messages.enabled seja true. A lista de permissões é uma sequência de tipos de exceção separados por espaço, cada um na forma de module:exception_name. Liste as exceções integradas como exception_name; você não precisa acrescentar module: a eles.
Example: Built-in exception and user-defined exception
Por padrão, o agente inicia quando recebe a primeira transação (seja web ou não web). O agente então inicia em paralelo, garantindo que essa solicitação inicial não seja atrasada. Entretanto, o agente não registra os detalhes dessa solicitação inicial porque o agente não pode coletar dados até que o registro seja concluído. Esta é a configuração recomendada para a maioria dos aplicativos web para não atrasar a primeira transação enquanto o New Relic é inicializado.
Para substituir isso, você pode definir um tempo limite de inicialização em segundos. O agente irá então pausar a transação inicial e aguardar a conclusão do registro. Isso pode ser útil quando se executa uma única tarefa ou programa, onde o processo é executado uma vez e termina imediatamente.
Importante
Como startup_timeout atrasa o início do aplicativo, recomendamos definir um tempo limite de inicialização apenas para sistemas de enfileiramento de tarefas em segundo plano, e não para aplicativos da Web.
No encerramento do processo, o agente tenta fazer um upload final para o coletor. Para evitar que o agente seja executado indefinidamente em caso de problema, o processo será encerrado normalmente se o limite shutdown_timeout for atingido. Esse desligamento pode resultar em perda de dados, mas o agente prioriza os principais dados métricos durante o processo de upload.
Para sistemas de enfileiramento de tarefas em segundo plano, especialmente aqueles que executam um pequeno número de tarefas por processo, você pode querer aumentar o tempo limite de encerramento para garantir que o agente possa carregar todos os dados no encerramento do processo.
Dica
O padrão do agente é um tempo limite de 2,5 segundos porque o Apache e muitos outros servidores web têm um tempo limite de encerramento do processo de 3,0 segundos. O agente sai em 2,5 segundos para permitir o código de limpeza atexit registrado para a execução do processo.
Se o limite de compactação de dados for atingido na carga útil, o agente compactará os dados usando a compactação gzip por padrão. A opção de configuração compression_content_encoding pode ser definida como deflate para usar compactação deflacionada.
Se esta configuração estiver habilitada, ela capturará informações de pacote e versão na inicialização do agente que são exibidas na guia Ambiente APM.
Dica
Em aplicativos que possuem um grande número de pacotes, ter esta configuração habilitada pode causar um pico de CPU, pois captura todas as informações do pacote e da versão. É recomendado nesses casos desabilitar esta configuração.
Cuidado
Desabilitar esta configuração desabilitará a capacidade de detectar vulnerabilidades em pacotes desatualizados.
Se esta configuração estiver habilitada, o agente enviará mensagens detalhadas de resolução de problemas do seu script de inicialização diretamente para o seu console (STDOUT). Isso pode ser útil para depurar falhas no script de inicialização newrelic-admin , no script de inicialização alternativo bootstrap/sitecustomize.py ou na sequência de inicialização do anexo automático do Kubernetes APM.
Cuidado
Esta configuração de variável de ambiente não possui configuração de arquivo de configuração correspondente, pois o código relacionado a ela é executado antes da leitura do arquivo de configuração. Para obter registro de depuração abrangente após a inicialização do agente, defina o nível de log como debug.
Esta é uma configuração informativa usada para relatar quando o agente é injetado em um aplicativo de contêiner do Microsoft Azure.
Cuidado
Esta configuração não habilita ou desabilita esta função do agente.
Heroku
Tipo
Boleano
Padrão
true
Variável ambiental
NEW_RELIC_HEROKU_USE_DYNO_NAMES
Se true, o agente usará nomes dinâmicos Heroku como nome do host.
Tipo
Matriz
Padrão
["scheduler", "run"]
Variável ambiental
NEW_RELIC_HEROKU_DYNO_NAME_PREFIXES_TO_SHORTEN
Normalmente, o agente relata nomes dinâmicos com um ponto final e um ID de processo (por exemplo, worker.3). Você pode remover esses dados finais especificando os prefixos que deseja relatar sem dados finais (por exemplo, worker).
Instrumentação integrada
O agente Python utiliza uma variedade de pacotes/módulos Python. Essa instrumentação ocorre apenas quando o pacote/módulo Python de destino é importado por um aplicativo.
Para desativar a instrumentação padrão, forneça uma seção especial import-hook correspondente ao nome do módulo que acionou a instrumentação. Em seguida, defina a configuração enabled como false para desativar a instrumentação desse módulo.
Adicione o seguinte ao arquivo de configuração .ini :
[import-hook:MySQLdb]
enabled=false
Ou para arquivos de configuração .toml adicione o seguinte: