μ€μ
μ΅μ μμ΄μ νΈ λ²μ μ΄ μΆμλλ©΄ μ¦μ μ λ°μ΄νΈνλ κ²μ΄ μ’μ΅λλ€. μ΅μ λ²μ μΌλ‘ μ κ·Έλ μ΄λν μ μλ κ²½μ°, μμ΄μ νΈλ₯Ό 90μΌ μ΄λ΄ λ²μ μΌλ‘ μ λ°μ΄νΈνμΈμ. μμ΄μ νΈμκ² μ΅μ μ 보λ₯Ό μ 곡νλ λ°©λ² μ λν΄ μμΈν μμ보μΈμ.
μμ΄μ νΈ λ¦΄λ¦¬μ€ λ° μ§μ λ μ§μ λν μ 보λ λ΄λ λ¦ λ£¨λΉ μμ΄μ νΈ EOL μ μ± μ μ°Έμ‘°νμΈμ.
v10.3.0
κΈ°λ₯: SQL μ£Όμμ ν΅ν΄ λ°μ΄ν°λ² μ΄μ€ 쿼리 μ΄λ¦ μ§μ μΆκ°
μ΄μ SQL μ£Όμμ μ¬μ©νμ¬ λ°μ΄ν°λ² μ΄μ€ 쿼리μ λͺ μμ μΈ μ΄λ¦μ μ§μ ν μ μμ΅λλ€. 쿼리μλ μΆμ λ° μλ³μ κ°μ νκΈ° μν΄ μμ μ μΈ μ΄λ¦μ μ§μ νλ
/* NewRelicQueryName: CustomName */μ£Όμμ΄ ν¬ν¨λ μ μμ΅λλ€. μ΄λ μ±λ₯ νκ· λλ μΈμλνΈ μ€μ νΉμ λ°μ΄ν°λ² μ΄μ€ 쿼리λ₯Ό μΆμ νλ λ° νΉν μ μ©ν©λλ€. PR#3480κΈ°λ₯: μλ―Έλ‘ μ λ‘κ±° μΈ‘μ μΆκ°, λ‘κ·Έ
μμ΄μ νΈλ μ΄μ
semantic_loggergem λ²μ 4.6.0+μ λν Semantic λ‘κ±° λ‘κ·Έ ν¬μλ© λ° μ₯μμ μ§μν©λλ€. μ΄μ μ Semantic λ‘κ±°μ λ΄μ₯ λ΄λ λ¦ μ΄νλλ₯Ό μ¬μ©νμ ¨λ€λ©΄, μ€λ³΅ λ‘κ·Έ μ μ‘μ λ°©μ§νκΈ° μν΄ ν κ°μ§ λ°©λ²μ μ ννμλ κ²μ΄ μ’μ΅λλ€. λ΄λ λ¦μ Semantic λ‘κ±° μΈ‘μ , 리μμ€λinstrumentation.semantic_loggerμdisabledλ‘ μ€μ νμ¬ λΉνμ±νν μ μμ΅λλ€. PR#3467@jdelStrother λκ»μ κ·μ€ν νΌλλ°±μ μ κ³΅ν΄ μ£Όμ μ μ΄ μΈ‘μ , κ³μΈ‘μ ꡬ체ννλ λ° λμμ΄ λμμ΅λλ€.
κΈ°λ₯: 'ignored_middleware_classes' μ€μ μ μλ‘ μΆκ°ν©λλ€.
μλ‘μ΄ μ€μ μ΅μ μΈ
ignored_middleware_classesμ¬μ©νλ©΄ μ¬μ©μκ° μΈ‘μ , λ‘κ·Έμμ νΉμ λ―Έλ€μ¨μ΄λ₯Ό μ μΈν μ μμ΅λλ€(μ: λ::μ½μ΄μ€). κΈ°λ³Έμ μΌλ‘ λΉμ΄ μλ λ€μμ λλ€. μ΄μ λ²νΈ 1814 PR λ²νΈ 3481κΈ°λ₯: μλ‘μ΄
NewRelic::Agent.add_transaction_log_attributesAPI μΆκ°μ API μΈ
NewRelic::Agent.add_transaction_log_attributes) μ¬μ©νλ©΄ μ¬μ©μκ° νμ¬ νλ‘μΈμμ λν νλ‘μΈμ λ²μμ κ΄μ΅ μμ± λ±λ‘ μ΄λ²€νΈλ₯Ό μΆκ°ν μ μμ΅λλ€. μ΄λ¬ν μμ±μ νμ¬ νΈλμμ λ²μ λ΄μμ μμ±λ λ‘κ·Έμλ§ μ μ©λ©λλ€. PR#3472λ²κ·Έ μμ : ActionCable λΈλ‘λμΊμ€νΈ λ©νΈλ¦μ μΉ΄λλ리ν°λ₯Ό μ€μ΄λ κ΅¬μ± μ΅μ μ μ 곡ν©λλ€.
κΈ°λ³Έμ μΌλ‘ ActionCable λΈλ‘λμΊμ€νΈ λ©μλ νΈμΆμ λν λ©νΈλ¦μλ λΈλ‘λμΊμ€ν κ°μ΄ ν¬ν¨λ©λλ€. μ΄ κ°μ λ§€μ° λμ μΉ΄λλ리ν°λ₯Ό κ°μ§ μ μμ΅λλ€. μ΄μ
:simplify_action_cable_broadcast_metricsμ€μ μ΅μ μ μ¬μ©νλ©΄ μ§ν μ΄λ¦μμ λ°©μ‘ κ°μ μ κ±°ν μ μμ΅λλ€. μ΄κ²μ λ€μκ³Ό κ°μ ννλ₯Ό κ°λ κ²μ μμ±ν©λλ€:Ruby/ActionCable/broadcast. μ΄ μ€μ μ΅μ μ νμ±ννλ©΄ λΈλ‘λμΊμ€ν κ°μ΄ span μμ±μΌλ‘ μΆκ°λ©λλ€. PR#3463λ²κ·Έ μμ : FIPS/FedRAMP κ·μ μ€μλ₯Ό μν λ μ΄μ νμ μλ 'digest/md5' μꡬ μ¬νμ μ κ±°νμ΅λλ€.
μμ΄μ νΈ λ²μ 7.1.0μμλ FIPS κ·μ μ€μλ₯Ό μν΄ MD5 μ¬μ©μ΄ SHA1μΌλ‘ λ체λμμ΅λλ€ (PR). νμ§λ§ κΈ°μ‘΄μ 'digest/md5' μꡬ μ¬νμ μ κ±°λμ§ μμμ΅λλ€. FIPS/FedRAMP μ¬μ©μλ€μ μ§μνκΈ° μν΄ ν΄λΉ μꡬ μ¬νμ μ κ±°νμ΅λλ€. μ΄ λ¬Έμ λ₯Ό μλ €μ£Όμ @ashleyboehs λκ» κ°μ¬λ립λλ€! μ΄μ λ²νΈ 3469 PR λ²νΈ 3470
λ²κ·Έ μμ : μ’ λ£ μ§μ°μ λ°©μ§νκΈ° μν΄
rails testλμ μμ΄μ νΈκ° μμλμ§ μλλ‘ μμ νμ΅λλ€.μ΄μ μλ μμ΄μ νΈκ°
rails testλͺ λ Ήμ μ€νν λ μ½ 3μ΄μ μ’ λ£ μ§μ°μ΄ λ°μνμ΅λλ€.Rails::Command::TestCommandμμλ Rails ν μ€νΈ μ€ν μ€μ μμ΄μ νΈκ° μμλλ κ²μ λ°©μ§νκΈ° μν΄ κΈ°λ³Έautostart.denylisted_constantsλͺ©λ‘μ μΆκ°λμμ΅λλ€. μ΄ λ¬Έμ λ₯Ό μλ €μ£Όμ @varyform λκ» κ°μ¬λ립λλ€. PR#3478λ²κ·Έ μμ : Falcon μΉ μλ² μ¬μ© μ "κ²½κ³Όλ μμ μκ°μ κ³μ°ν μ μμ΅λλ€"λΌλ κ²½κ³ λ©μμ§λ₯Ό μμ νμ΅λλ€.
μ΄μ Falcon μμ μ€νλ λ μνλ₯Ό μΆμ νκΈ° μν΄
Thread.current.object_idλμFiber.current.object_idμ¬μ©νμ¬ λμΌν μ€λ λλ₯Ό 곡μ νλ λμ requests μΌλ‘ μΈν μΆ©λμ λ°©μ§ν©λλ€. λν Falconμ μ¬μ©ν λ λ°μνλ "NameError: uninitialized constantAsync::HTTP::VERSION" μ€λ₯λ₯Ό μμ ν©λλ€. μ΄ λ¬Έμ λ₯Ό μλ €μ£Όμ @97jazλ κ³Ό @gsar λκ» κ°μ¬λ립λλ€. PR#3483λ²κ·Έ μμ : harvest.rb νμΌμ μ€νλ‘ μΈν΄ λ°μνλ NoMethodError μ€λ₯λ₯Ό μμ νμ΅λλ€.
lib/new_relic/agent/agent_helpers/harvest.rbμ μ€νλ‘ μΈν΄NoMethodError: undefined method 'agent' for NewRelic:Moduleμ΄ λ°μνμ΅λλ€. μ΄ λ¬Έμ λ₯Ό μ λ³΄ν΄ μ£Όμ @oakbow λκ» κ°μ¬λ립λλ€. PR#3484λ²κ·Έ μμ : λ μ΄μ μ¬μ©λμ§ μλ ObjectSpace._id2ref μ¬μ©μ μ κ±°νμ΅λλ€.
μ΄μ ν΄λΉ λꡬλ λ μ΄μ μ¬μ©λμ§ μλ
ObjectSpace._id2refλ°©λ² λμ λ체 μ κ·Ό λ°©μμ μ¬μ©νλ―λ‘ λ£¨λΉ 4.0 μ΄μμμ μ€ν μ μ¬μ© μ€λ¨ κ²½κ³ κ° μ¬λΌμ§λλ€. PR#3490λ²κ·Έ μμ : Logging μΈ‘μ , 리μμ€μ NoMethoError μμ
μ΄μ μ Logging gem μΈ‘μ , κ³μΈ‘μ΄ λ‘컬 λ‘κ·Έλ₯Ό λ°μ½λ μ΄μ νλ €κ³ μλν λ λ¬Έμμ΄μ΄ μλ κ°μ²΄λ₯Ό λ§λλ©΄
NoMethodErrorμ€λ₯κ° λ°μνμ΅λλ€. μ΄ λ¬Έμ λ μ΄μ ν΄κ²°λμμ΅λλ€. PR#3501