• /
  • EnglishEspañolFrançais日本語한국어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

Ativar aviso do aplicativo (Python)

|View as Markdown (English)

Problema

Importante

Observe que isso só será um problema se nenhum dado estiver sendo relatado.

Você está usando o agente Python mais recente e vê uma entrada de log com uma mensagem de aviso como:

Attempt to activate application in a process different to where the agent harvest thread was started.

OU:

Attempt to reactivate application or record transactions in a process different to where the agent was already registered.

O aplicativo é exibido como relatório na interface do New Relic, mas nenhum dado é relatado ao New Relic.

Solução

Para resolver este problema com seu aplicativo:

  1. Mova todas as chamadas para newrelic.agent.register_application ou newrelic.agent.application dentro das funções dentro de uma verificação __name__ == __main__ .

  2. Se você não tiver certeza de onde as chamadas para newrelic.agent.register_application ou newrelic.agent.application estão ocorrendo, use o log de depuração do agente para procurar uma entrada contendo:

    newrelic.core.agent DEBUG - Application was activated from:
  3. Use o rastreamento da entrada da chamada que ativou o agente. Consulte os seguintes quadros, que são considerados normais:

    File "newrelic/api/transaction.py", line x, in __init__
    application.activate()
    File "newrelic/hooks/application_celery.py", line x, in process_initializer
    application_instance().activate()
  4. Se a ativação estiver ocorrendo em um local diferente, corrija esse problema seguindo este exemplo:

    Antes:

    import newrelic.agent
    # This will cause the agent to activate whenever custom_event is imported
    app = newrelic.agent.application()
    def custom_event():
    newrelic.agent.record_custom_event('CustomEvent', {}, application=app)

    Depois:

    import newrelic.agent
    def custom_event():
    app = newrelic.agent.application()
    newrelic.agent.record_custom_event('CustomEvent', {}, application=app)

Para outras dicas quando nenhum dado aparece, consulte a documentação de resolução de problemas do Python.

Causa

Existem duas causas principais para esse problema. A primeira é criar uma instância de aplicativo várias vezes ou criar uma instância de aplicativo antes da bifurcação.

  1. Isso geralmente é causado por uma chamada para newrelic.agent.register_application ou newrelic.agent.application que ocorre no momento da importação.

    Example:

    import newrelic.agent
    # This will cause the agent to activate whenever custom_event is imported
    app = newrelic.agent.application()
    def custom_event():
    newrelic.agent.record_custom_event('CustomEvent', {}, application=app)
  2. Esse problema também pode ocorrer quando serviços de monitoramento como o celery, onde um processo pai principal lança processos de trabalho. Ocorre quando uma instância de aplicativo do agente é criada no processo principal antes da bifurcação dos processos de trabalho. Como o agente é lançado no processo pai, nenhum dado é coletado no processo filho.

Copyright © 2026 New Relic Inc.

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