• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Agente Python e Celery

Se estiver usando o Celery como um sistema de enfileiramento de tarefas distribuído, você pode usar o agente Python para registrar processos do Celery como transação fora da web.

Para fazer o agente Python funcionar com o Celery, primeiro siga as instruções de instalação do agente para instalar, configurar e testar o agente. Em seguida, use estas instruções específicas do Celery.

Execute o Celery

O comando que você usa para executar o Celery com o agente depende da sua versão do Celery e da sua configuração específica.

Selecione o nome do aplicativo

A configuração app_name no arquivo de configuração do agente Python define o nome do aplicativo exibido na interface do New Relic.

  • Se o seu agente Python monitorar as tarefas do Celery e você definir app_name com o mesmo valor usado no app_name do seu agente de aplicativo, os dados de ambas as fontes serão combinados na interface com esse nome.
  • Se você definir nomes diferentes, os dados aparecerão separadamente na interface como dois nomes diferentes.

Ao definir vários nomes de aplicativos nos arquivos de configuração do agente, você pode monitor os dados combinados e os dados segregados. Aqui está uma maneira comum de fazer isso, usando um aplicativo Django como exemplo:

Ignorar erros de nova tentativa de tarefa

Ao usar o Celery, uma tarefa pode falhar e gerar uma exceção celery.exceptions:Retry ou celery.exceptions:RetryTaskError . A exceção depende de qual versão do Celery é usada.

Para ignorar esses erros, defina isso na interface Application settings do New Relic ou no arquivo de configuração do agente. As alterações na interface do usuário substituem as alterações no arquivo de configuração de acordo com as regras de precedência de configuração.

Para usar as configurações de erro ignorado da interface:

  1. Em

    one.newrelic.com

    , selecione

    APM > (select an app) > Settings > Application

    .

  2. Selecione

    Server-side agent configuration

    .

  3. Em

    Error collection

    , insira os erros que deseja ignorar, separados por vírgulas.

Para ignorar esses erros usando o arquivo de configuração do agente, use a configuração ignore_errors e uma lista de exceções separadas por espaços:

error_collector.ignore_errors = celery.exceptions:Retry celery.exceptions:RetryTaskError

Resolução de problemas

Quando um processo de trabalho do Celery é encerrado repentinamente, o agente não consegue concluir seu processo de desligamento normal, o que significa que sua carga útil de dados final não é enviada. Isso faz com que o agente relate menos transação do Celery do que o esperado ou nenhuma transação.

Isso pode ocorrer ao usar a configuração CELERYD_MAX_TASKS_PER_CHILD , que define o número máximo de tarefas que um processo de trabalho do pool pode executar antes de ser substituído por um novo. Se usado, o trabalhador será desligado à força quando esse limite for atingido, o que significa que esses dados não serão registrados pelo agente. Por exemplo, se MAX_TASKS_PER_CHILD = 1, isso resultará em nenhum dado sendo relatado.

Como solucionar isso dependerá do motivo pelo qual você deseja usar o limite MAX_TASKS_PER_CHILD em seu aplicativo.

  • Para permitir o processo de desligamento normal, retorne à configuração padrão sem limite.
  • Para diminuir o impacto do problema, aumente o limite MAX_TASKS_PER_CHILD .

Importante

Para a versão 3.2.2.94 ou superior, o agente Python será encerrado quando o limite MAX_TASKS_PER_CHILD for atingido. Nenhum dado será perdido.

Importante

O monitoramento do processo principal do Celery não é possível com o agente, ele só pode monitor os processos de trabalho. Consulte Ativar aviso de aplicativo

Copyright © 2024 New Relic Inc.

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