웹 애플리케이션 자체 외에도 New Relic Ruby 에이전트(버전 3.6.0 이상)는 자동으로 Sidekiq 작업을 계측할 수 있습니다. 작업자에 계측 라이브러리를 포함할 필요가 없습니다.
루비 에이전트는 모든 Sidekiq 작업자에서 perform
메서드를 사용합니다. 백그라운드 작업에 대한 데이터는 APM 의 Transactions 페이지 에 표시되며, 프로세서 유형으로 Non-web transactions 를 선택하면 프로세서 트레이스와 오류가 포함됩니다.
작업 인수 캡처
Ruby 에이전트 버전 3.6.9부터 트랜잭션 추적 및 추적된 오류에서 Sidekiq 작업 인수를 캡처하도록 Ruby 에이전트를 선택적으로 구성할 수 있습니다. 이것은 실패한 작업을 재현하려고 할 때 특히 유용할 수 있습니다.
작업 인수에 민감한 정보가 포함된 경우 기본적으로 이 기능은 꺼져 있습니다. 이 기능을 활성화하려면 에이전트 버전에 맞게 newrelic.yml
편집하세요.
- newrelic_rpm 3.12.0 or higher:
attributes.include: job.sidekiq.args.*
- newrelic_rpm 3.6.9 to 3.11.x:
sidekiq.capture_params: true
팁
이 기능은 HTTP 요청 매개변수가 웹 요청에 대한 트랜잭션 추적 및 추적된 오류에서 캡처되는지 여부를 제어하는 일반 capture_params
최상위 설정과 다릅니다. 이 두 가지 설정을 독립적으로 구성할 수 있습니다.
특정 작업 인수 포함 또는 제외
Ruby 에이전트 버전 9.5.0부터 위에 설명된 대로 Sidekiq 작업 인수를 캡처하도록 구성된 에이전트 인스턴스는 New Relic에 보고되는 인수를 세부적으로 제어하기 위해 특정 인수를 포함하거나 제외하도록 추가로 구성할 수 있습니다.
:'sidekiq.args.include'
구성 옵션은 전체적으로 허용 목록 역할을 하는 문자열 배열로 설정할 수 있습니다. 전체 정규식 지원을 위해 해당 문자열 각각은 Regexp.new
에 전달됩니다. 해시인 작업 인수의 경우 해시의 키가 포함 패턴 중 하나와 일치하면 키와 해당 값이 모두 포함됩니다. 스칼라 인수의 경우 스칼라의 문자열 표현은 캡처할 포함 패턴 중 하나와 일치해야 합니다.
:'sidekiq.args.exclude'
옵션도 비슷하게 작동합니다. 패턴을 생성하기 위해 각각 Regexp.new
에 전달될 문자열 배열로 설정할 수 있습니다. 이러한 패턴은 원하지 않는 작업 인수에 대한 거부 목록 역할을 합니다. 제외 패턴과 일치하는 모든 해시 키, 해시 값 또는 스칼라는 제외됩니다(New Relic으로 전송되지 않음).
sidekiq.args.include
및 sidekiq.args.exclude
(newrelic_rpm 9.5.0 이상)을 구성합니다.
newrelic.yml
예:
:'sidekiq.args.include'
또는 :'sidekiq.args.exclude'
배열의 모든 문자열은 정규 표현식으로 변환됩니다. Ruby 정규식 지원 에 대한 지식을 활용할 수 있지만 필수는 아닙니다. 정규식 구문을 사용하지 않으면 부정확한 일치가 수행되고 "Fortune" 문자열은 "Fortune 500" 및 "Fortune and Glory"와 모두 일치합니다. 정확히 일치하려면 정규식 앵커를 사용하세요.
# Include any argument whose string representation matches either "apple" or "banana"# The "apple" pattern will match both "green apple" and "red apple"sidekiq.args.include: - apple - banana
# Exclude any arguments that match either "grape", "orange", or "pear"sidekiq.args.exclude: - grape - orange - pear
# Exclude any argument that is a 9 digit numbersidekiq.args.exclude: - '\d{9}'
# Include anything that starts with "blue" but exclude anything that ends in "green"sidekiq.args.include: - '^blue'
sidekiq.args.exclude: - 'green$'
Sidekiq 작업 문제 해결
작업이 모니터링되지 않는 것으로 나타나면 작업자가 시작될 때 생성된 newrelic_agent.log
파일을 검토하세요. 에이전트가 Sidekiq을 감지하고 서버와 통신하는지 여부를 나타내야 합니다. 지원이 필요한 경우 Sidekiq을 시작하는 데 사용한 정확한 명령줄을 기록해 두세요.