• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

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

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

문제 신고

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 버전에 따라 다릅니다.

이러한 오류를 무시하려면 뉴렐릭 Application settings UI 또는 에이전트 구성 파일에서 이를 설정하세요. UI 변경 사항은 설정 우선 순위 규칙 에 따라 구성 파일 변경 사항보다 우선 적용됩니다.

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

  1. one.newrelic.com

    에서

    APM > (select an app) > Settings > Application

    선택합니다.

  2. Server-side agent configuration

    선택합니다.

  3. Error collection

    에서 무시하려는 오류를 쉼표로 구분하여 입력합니다.

에이전트 구성 파일을 사용하여 이러한 오류를 무시하려면 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 에이전트가 종료됩니다. 데이터가 손실되지 않습니다.

중요

Celery의 기본 프로세스 모니터링은 에이전트로는 불가능하며 작업자 프로세스만 모니터링할 수 있습니다. 응용 프로그램 경고 활성화를참조하십시오.

Copyright © 2024 New Relic Inc.

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