μΉ μ ν리μΌμ΄μ μ체 μΈμλ 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μ μμνλ λ° μ¬μ©ν μ νν λͺ
λ Ήμ€μ κΈ°λ‘ν΄ λμΈμ.