• 로그인지금 시작하세요

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Python 에이전트 및 셀러리

Celery를 분산 작업 대기열 시스템으로 사용하는 경우 Python 에이전트를 사용하여 Celery 프로세스를 웹이 아닌 트랜잭션 으로 기록할 수 있습니다.

Python 에이전트가 Celery와 함께 작동하도록 하려면 먼저 에이전트 설치 지침 에 따라 에이전트를 설치, 구성 및 테스트 하십시오. 그런 다음 이 Celery 관련 지침을 사용하십시오.

샐러리를 실행

에이전트와 함께 Celery를 실행하는 데 사용하는 명령은 Celery 버전 및 특정 설정에 따라 다릅니다.

애플리케이션 이름 선택

Python 에이전트 구성 파일의 app_name 설정은 New Relic UI에 표시되는 앱 이름을 설정합니다.

  • Python 에이전트가 Celery 작업을 모니터링하고 app_name 을 애플리케이션 에이전트의 app_name 에 사용된 것과 동일한 값으로 설정하면 두 소스의 데이터가 해당 이름으로 UI에서 결합됩니다.
  • 다른 이름을 설정하면 데이터가 두 개의 다른 이름으로 UI에 별도로 나타납니다.

에이전트 구성 파일에 여러 앱 이름을 설정 하여 결합된 데이터와 분리된 데이터를 모두 모니터링할 수 있습니다. 다음은 Django 애플리케이션을 예로 사용하여 이를 수행하는 일반적인 방법입니다.

작업 재시도 오류 무시

Celery를 사용할 때 작업이 실패하고 celery.exceptions:Retry 또는 celery.exceptions:RetryTaskError 예외가 발생할 수 있습니다. 예외는 사용되는 Celery 버전에 따라 다릅니다.

이러한 오류를 무시하려면 New Relic Application 설정 UI 또는 에이전트 구성 파일에서 설정하십시오. UI 변경 사항은 구성 우선 순위 규칙에 따라 구성 파일 변경 사항을 재정의합니다.

UI에서 오류 무시 설정을 사용하려면:

  1. one.newrelic.com 에서 APM > (선택한 앱) > Settings > Application 을 선택합니다.
  2. 서버 측 에이전트 구성을 선택하십시오.
  3. 오류 수집 에서 무시할 오류를 쉼표로 구분하여 입력합니다.

에이전트 구성 파일을 사용하여 이러한 오류를 무시하려면 ignore_errors 설정과 공백으로 구분된 예외 목록을 사용하십시오.

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

문제점 해결

Celery 작업자 프로세스가 갑자기 종료되면 에이전트는 정상적인 종료 프로세스를 완료할 수 없습니다. 즉, 최종 데이터 페이로드가 전송되지 않습니다. 그 결과 에이전트가 예상보다 적은 수의 Celery 트랜잭션을 보고하거나 트랜잭션이 전혀 보고되지 않습니다.

이는 풀 작업자 프로세스가 새 프로세스로 교체되기 전에 실행할 수 있는 최대 작업 수를 정의하는 CELERYD_MAX_TASKS_PER_CHILD 설정을 사용할 때 발생할 수 있습니다. 사용하면 해당 제한에 도달하면 작업자가 강제로 종료되므로 에이전트에서 데이터를 기록하지 않습니다. 예를 들어, MAX_TASKS_PER_CHILD = 1 인 경우 보고되는 데이터가 없습니다.

이 문제를 해결하는 방법은 애플리케이션에서 MAX_TASKS_PER_CHILD 제한을 사용하려는 이유에 따라 다릅니다.

  • 정상적인 종료 프로세스를 허용하려면 이를 기본 무제한 설정으로 되돌립니다.
  • 문제의 영향을 줄이려면 MAX_TASKS_PER_CHILD 제한을 높이십시오.

중요

버전 3.2.2.94 이상의 경우 MAX_TASKS_PER_CHILD 제한에 도달하면 Python 에이전트가 종료됩니다. 데이터가 손실되지 않습니다.

Copyright © 2022 New Relic Inc.

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