Important
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Ruby agent EOL policy for information about agent releases and support dates.
v10.4.0
Feature: Add Rails.event instrumentation for structured logging
The agent now supports Rails.event as structured log events. When enabled, events published via
Rails.event.notifyare captured and forwarded to New Relic as log events. Event payloads, tags, context, timestamps, and source locations are automatically captured as log attributes.This instrumentation can be configured with the following options:
instrumentation.rails_event_logger- Controls whether Rails.event instrumentation is enabled. Defaults to use the value ofapplication_logging.enabled.instrumentation.rails_event_logger.event_names- An array of specific event names to capture. When empty (default), all Rails.event notifications are captured. Use this to filter events by name, for example:['user.signup', 'payment.processed'].
Feature: Add instrumentation for Rails Active Job Continuations
The agent now instruments Rails Active Job Continuations, providing visibility into individual step execution within long-running jobs. Step names are included in segment metrics (e.g.,
Ruby/ActiveJob/default/MyJob/step/process_records) and step-specific attributes like cursor position, resumed status, and interrupted status are captured. A new configuration option,disable_active_job_step_names, allows users to exclude step names from metric names to reduce metric cardinality if needed (defaults tofalse). PR#3493Feature: Add sidekiq.separate_transactions configuration option
A new configuration option,
sidekiq.separate_transactions, allows Sidekiq jobs executed during a web transaction to run in their own separate transaction. When enabled, this prevents Sidekiq job execution time from being included in web transaction metrics, providing more accurate performance data. The feature is opt-in (default: false) to maintain backward compatibility. This only affects jobs executed during active web transactions; jobs starting independently or nested within other background jobs are unaffected. Issue#3364 PR#3514Bugfix: Update regexes that may have been vulnerable to ReDOS attacks
Previously, the agent had a few regexes identified as possible targets for polynomial time complexity (ReDOS) attacks. Those regexes are now updated to address the concerns. PR#3520
Bugfix: Prevent crashes during HTTPX segment creation
Previously, if
start_external_request_segmentencountered an error and returnednil, the agent would trigger aNoMethodErrorwhen attempting to add headers to the missing segment. We've added a guard check to ensure the instrumentation handles these cases gracefully.Bravo to @thebravoman for the report! Issue#3509 PR#3510
Bugfix: Make Transaction#finish idempotent
Previously, if the Transaction#finish method was called multiple times, more than one transaction could be created for the same operation. Now, a mutex protects calls to Transaction#finish to make sure finish operations only run once. PR#3513
Bugfix: Log deprecation warning for Datastores.wrap API once
Previously, this warning was being logged on every call to Datastores.wrap. Now, it will be logged only on the first call. In addition, the documentation has been updated to note the deprecated status of the second and third callback arguments. Issue#3516 PR#3519
Important
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Ruby ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã
v10.3.0
æ©èœïŒSQLã³ã¡ã³ãã«ããããŒã¿ããŒã¹ã¯ãšãªåœåæ©èœã远å
ããŒã¿ããŒã¹ã¯ãšãªã«SQLã³ã¡ã³ãã䜿çšããŠæç€ºçã«ååãä»ããããšãã§ããããã«ãªããŸãããã¯ãšãªã«ã¯ã远跡ãšèå¥ã容æã«ããããã«å®å®ããååãå²ãåœãŠãããã®
/* NewRelicQueryName: CustomName */ã³ã¡ã³ããå«ããããšãã§ããŸããããã¯ãããã©ãŒãã³ã¹äœäžãã€ã³ã·ãã³ãçºçæã«ç¹å®ã®ããŒã¿ããŒã¹ã¯ãšãªã远跡ããéã«ç¹ã«åœ¹ç«ã¡ãŸããPR#3480æ©èœ: ã»ãã³ãã£ãã¯ãã¬ãŒèšè£ ã远å
ãšãŒãžã§ã³ãã¯ã
semantic_loggergem ããŒãžã§ã³ 4.6.0 以éã®ã»ãã³ãã£ã㯠ãã¬ãŒãã°è»¢éãšè£ 食ããµããŒãããããã«ãªããŸããã 以å Semantic ãã¬ãŒã®çµã¿èŸŒã¿New Relicã¢ãã³ããŒã䜿çšããŠããå Žåã¯ãéè€ãã°ã®éä¿¡ãé¿ããããã«ãããããã®æ¹æ³ãéžæããããšããå§ãããŸãã New Relicã®ã»ãã³ãã£ã㯠ãã¬ãŒèšè£ ã¯ãinstrumentation.semantic_loggerãdisabledã«èšå®ããããšã§ç¡å¹ã«ã§ããŸãã PR#3467ãã®èšè£ ã圢äœãäžã§è²Žéãªãã£ãŒãããã¯ãæäŸããŠããã@jdelStrotherã«æè¬ããŸãã
æ©èœ: æ°ãããignored_middleware_classesãèšå®ã远å
æ°ããèšå®ãªãã·ã§ã³
ignored_middleware_classes䜿çšãããšããŠãŒã¶ãŒã¯ç¹å®ã®ããã«ãŠã§ã¢ãèšè£ ããé€å€ã§ããŸãã ã©ãã¯::Cors)ãããã©ã«ãã§ã¯ç©ºã®é åã«ãªããŸããåé¡çªå·1814 PRçªå·3481æ©èœ: æ°ãã
NewRelic::Agent.add_transaction_log_attributesAPI ãè¿œåæ°ããAPI
NewRelic::Agent.add_transaction_log_attributes䜿çšãããšããŠãŒã¶ãŒã¯ãçŸåšã®å Žæã®ãã°ã€ãã³ãã«ãç¬éã¹ã³ãŒãã®ã«ã¹ã¿ã ã¢ããªãã¥ãŒãã远å ã§ããŸãã ãããã®å±æ§ã¯ãçŸåšã®ãã©ã³ã¶ã¯ã·ã§ã³ã®ç¯å²å ã§äœæããããã°ã«ã®ã¿é©çšãããŸããPR#3472ãã°ä¿®æ£ïŒActionCableãããŒããã£ã¹ãã¡ããªã¯ã¹ã®ã«ãŒãã£ããªãã£ãåæžããããã®èšå®ãªãã·ã§ã³ãæäŸ
ããã©ã«ãã§ã¯ãMetrix for ActionCable ãããŒããã£ã¹ã ã¡ãœããåŒã³åºãã«ã¯ãããŒããã£ã¹ãã®å€ãå«ãŸããŸãã ãã®å€ã¯éåžžã«é«ãã«ãŒãã£ããªãã£ãæã€å¯èœæ§ããããŸãã çŸåšã
:simplify_action_cable_broadcast_metricsèšå®ãªãã·ã§ã³ã«ããããŠãŒã¶ãŒã¯ã¡ããªã¯ã¹åãããããŒããã£ã¹ãå€ãåé€ã§ããããã«ãªããŸããã ããã«ãããRuby/ActionCable/broadcastã®ãããªã¡ããªã¯ã¹ãäœæãããŸãã ãã®èšå®ãªãã·ã§ã³ãæå¹ã«ãããšããããŒããã£ã¹ãå€ãã¹ãã³å±æ§ãšããŠè¿œå ãããŸããPR#3463ãã°ä¿®æ£: FIPS/FedRAMPæºæ ã®ããã®äžèŠãªãdigest/md5ãèŠä»¶ãåé€
ãšãŒãžã§ã³ãã®ããŒãžã§ã³7.1.0ã§ã¯ãFIPSæºæ ã®ããMD5ã®äœ¿çšãSHA1ã«çœ®ãæããããŸããïŒPRïŒ ããããã以åã®ãdigest/md5ãã®èŠä»¶ã¯åé€ãããŸããã§ãããFIPS/FedRAMP ã®æ¯æŽã«é¢ããèŠä»¶ãåé€ããŸããã ãã®ä»¶ãææããŠãã ãã£ã@ashleyboehsããã«æè¬ããããŸãïŒIssue#3469 PR#3470
ãã°ä¿®æ£: ã·ã£ããããŠã³é å»¶ãåé¿ããããã
rails testã®éã«ãšãŒãžã§ã³ããèµ·åããªãããã«ãã以åã¯ããšãŒãžã§ã³ãã
rails testã³ãã³ããå®è¡ãããšãçŽ3ç§ã®ã·ã£ããããŠã³é å»¶ãçºçããŠããŸãããRailsã®ãã¹ãå®è¡äžã«ãšãŒãžã§ã³ããèµ·åããªãããã«ããããã宿°Rails::Command::TestCommandãããã©ã«ãã®autostart.denylisted_constantsãªã¹ãã«è¿œå ãããŸããããã®ä»¶ãææããŠãã ãã£ã@varyformããã«æè¬ããŸããPR#3478ãã°ä¿®æ£: Falcon Web ãµãŒããŒã䜿çšããå Žåã®ãçµéæéãèšç®ã§ããŸããããšããèŠåãä¿®æ£
ãšãŒãžã§ã³ãã¯ã Falconã§å®è¡ãããšãã«
Thread.current.object_idã®ä»£ããã«Fiber.current.object_id䜿çšããŠç¶æ ã远跡ããããã«ãªããåãã¹ã¬ãããå ±æããåærequestsã«ããè¡çªãé²ããŸãã ãŸããFalconäœ¿çšæã«çºçãããNameError: uninitilized 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ã¡ãœããã®ä»£ããã«å¥ã®æ¹æ³ã䜿çšããããã«ãªããRuby 4.0 以éã§å®è¡ããå Žåã®éæšå¥šèŠåãè§£æ¶ãããŸããPR#3490ãã°ä¿®æ£: ãã®ã³ã°èšè£ ã® NoMethoError ãä¿®æ£
以åã¯ãLogging gem èšè£ ãããŒã«ã« ãã°ãè£ é£Ÿããããšãããšãã«ãæåå以å€ã®ãªããžã§ã¯ãã«ééãããš
NoMethodErrorãçºçããŠããŸããã ãã®åé¡ã¯ä¿®æ£ãããŸãããPR#3501
Important
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Ruby ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã
v10.2.0
æ©èœ: OpenTelemetry ãã¬ãŒã¹ã®ãµããŒãã®ããã®ãã€ããªãã ãšãŒãžã§ã³ãã®å°å ¥
New Relic RubyãšãŒãžã§ã³ãã®æ°ãããã€ããªãããšãŒãžã§ã³ãæ©èœã䜿çšããŠã OpenTelemetry Tracing APIãNew Relicãã¬ã¡ããªãŒã«å€æã§ããããã«ãªããŸããã ããã«ããã
newrelic_rpmgem ã¯OpenTelemetry SDK ãšåæ§ã«åäœãã OpenTelemetry APIã³ãŒã«ãåãå ¥ããŠãäœ¿ãæ £ãã屿§ãšååãæã€New Relicãã©ã³ã¶ã¯ã·ã§ã³ãšã»ã°ã¡ã³ãã«å€æã§ããããã«ãªããŸããæ¬¡ã®èšå®ãªãã·ã§ã³ã¯ããã€ããªãã ãšãŒãžã§ã³ãæ©èœã«é¢é£ããŠããŸãã
èšå®å ããã©ã«ã è¡å OpenTelemetryãæå¹ falseNew Relicãä»ããŠéä¿¡ããããã¹ãŠã®OpenTelemetryä¿¡å·ãç¡å¹ã«ããã°ããŒãã«èšå®ãªãã·ã§ã³ã OpenTelemetry.Trace.enabled trueOpenTelemetryã¹ãã³ããã®ç¬éãã¬ãŒã¹ ã»ã°ã¡ã³ããšã¿ã€ã ã¹ã©ã€ã¹ ã¡ããªã¯ã¹ã®äœæãæå¹ã«ããŸã OpenTelemetry.ãã¬ãŒã¹.include ''OpenTelemetryã®ã«ã³ãåºåãã®ãªã¹ããæååãšããŠè¡šãããŸã(äŸ: ãAppTracer1, OpenTelemetry ::èšè£ ::Bunny::èšè£ ã)ããã¬ãŒã¹ä¿¡å·ãNew Relicã«éä¿¡ãããŸãã OpenTelemetry.ãã¬ãŒã¹.exclude ''OpenTelemetryã®ã«ã³ãåºåãã®ãªã¹ããæååãšããŠè¡šãããŸã(äŸ: "AppTracer1, OpenTelemetry ::èšè£ ::Bunny::èšè£ ")ããã¬ãŒã¹ä¿¡å·ã¯New Relicã«éä¿¡ãããŸããã New Relicèšè£ ãšç«¶åããèšè£ çšã®æ¢ç¥ã®ãã¬ãŒãµãŒã¯ãã¹ãŠããã©ã«ãã§é€å€ãããŸãã æ©èœ: èšå®ãªãã·ã§ã³ error_collector.backtrace_truncate_location ã远å
æ°ããèšå®ãªãã·ã§ã³
error_collector.backtrace_truncate_locationã远å ãããŸãããããã«ããããã¬ãŒã æ°ãerror_collector.max_backtrace_framesãè¶ ããå Žåã«ããã¯ãã¬ãŒã¹å ã®ã©ãã§åãæšãŠããããŠãŒã¶ãŒãæå®ã§ããããã«ãªããŸããã ãªãã·ã§ã³ã¯ã'top'(å é ãããã¬ãŒã ãåé€)ã'middle'(å é ãšæ«å°Ÿãä¿æãããŸãŸäžéãããã¬ãŒã ãåé€)ããŸãã¯'end'(æ«å°Ÿãããã¬ãŒã ãåé€) ã§ããããã©ã«ãã¯'middle'ã§ããPR#3424æ©èœ: Logging gem èšè£ ã远å
ãšãŒãžã§ã³ãã¯ã Logging gemã«ãã£ãŠçæããããã°ãèšé²ããããã«ãªããŸãããPR#3420
æ©èœ: èšå®ãªãã·ã§ã³ utilization.detect_in_parallel ã远å
æ°ããèšå®ãªãã·ã§ã³
utilization.detect_in_parallelã远å ãããŸãããããã¯ããšãŒãžã§ã³ãã®èµ·åãé«éåããããã«cloudãã³ããŒæ å ±ãæ€åºãããšãã«ãšãŒãžã§ã³ããã¹ã¬ããã䜿çšãããã©ãããå¶åŸ¡ããŸããfalseã«èšå®ãããšããã³ããŒæ€åºã¯ã¹ã¬ãããäœæããã«é çªã«å®è¡ãããŸããããã©ã«ãã¯trueã§ããPR#3439
Important
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Ruby agent EOL policy for information about agent releases and support dates.
v10.1.0
Feature: Add support for forking processes in Parallel gem instrumentation
Parallel gem instrumentation has been added to allow more consistent monitoring in processes forked using the Parallel gem. PR#3405
Feature: Add support for Grape v3.1.0
Grape's release of v3.1.0 introduced changes that were incompatible with the agent's instrumentation, causing issues when collecting transaction names. The agent has been updated to properly extract class names for transaction naming in the updated Grape API structure. PR#3413
Bugfix: Create health check files in forked processes
The agent now properly initializes health check loops after forking, ensuring each process generates its own health check file. This fix also has the effect of correctly including
entity.guidvalues in the health check files. PR#3409 Issue#3408Bugfix: Fix
sidekiq.ignore_retry_errorsThe configuration option
sidekiq.ignore_retry_errors: truewas continuing to report retry errors. The agent now correctly ignores retry errors and only reports when jobs permanently fail. PR#3399
Important
ã¡ãžã£ãŒ ããŒãžã§ã³ ã¢ããããŒã:ãã®ããŒãžã§ã³ã® Ruby ãšãŒãžã§ã³ã㯠SemVer ã¡ãžã£ãŒ ã¢ããããŒãã§ãããé倧ãªå€æŽãå«ãŸããŠããŸããã¡ãžã£ãŒ ããŒãžã§ã³ã§ã¯ãã¡ã³ãããŒã®èŠå®ã«ãããµããŒãçµäºãšãªã£ãèšèªã©ã³ã¿ã€ã ã®ãµããŒãã廿¢ãããããšããããŸããããã«ãã¡ãžã£ãŒ ããŒãžã§ã³ã§ã¯ãç¹å®ã®èšè£ ã®ãµããŒããçµäºããåé€ãããå ŽåããããŸãã ãããã®å€æŽã®è©³çްã«ã€ããŠã¯ãããã«ããç§»è¡ã¬ã€ããåç §ããŠãã ããã
Important
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Ruby ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã
v10.0.0
é倧ãªå€æŽ: Ruby 2.4 ããã³ 2.5 ã®ãµããŒããåé€
Ruby ããŒãžã§ã³ 2.4 ããã³ 2.5 ã®ãµããŒãã¯åé€ãããŸãããæ°ããæäœéå¿ èŠãª Ruby ããŒãžã§ã³ã¯ 2.6 ã«ãªããŸãããPR#3314
é倧ãªå€æŽ: ã¯ãã¹ã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã¹ (CAT) ã®åé€
以åã¯ãã¯ãã¹ã¢ããªã±ãŒã·ã§ã³ ãã¬ãŒã·ã³ã° (CAT) ãéæšå¥šãšãªãããã£ã¹ããªãã¥ãŒãã£ããïŒåæ£ïŒãã¬ãŒã·ã³ã°ã䜿çšãããŸããã CAT æ©èœã¯åé€ãããŸãããèšå®ãªãã·ã§ã³
cross_application_tracer.enabledã¯åé€ãããŸããã ãããªã㯠API ã¡ãœããNewRelic::Agent::External.process_request_metadataãNewRelic::Agent::External.get_response_metadataãNewRelic::Agent::Transaction::ExternalRequestSegment#process_response_metadataãNewRelic::Agent::Transaction::ExternalRequestSegment#get_request_metadataãããã³NewRelic::Agent::Transaction::ExternalRequestSegment#read_response_headersãåé€ãããŸãããPR#3333é倧ãªå€æŽ: ActiveJob ã¡ããªã¯ã¹ãšã»ã°ã¡ã³ãã®ååã倿Žãã
ActiveJob ã¡ããªã¯ã¹ãæŽæ°ãããããå ·äœçãªã¬ããŒããäœæããããã«ãžã§ãã®ã¯ã©ã¹åãå«ãŸããããã«ãªããŸããã ããã¯é倧ãªå€æŽã§ãããã«ã¹ã¿ã ããã·ã¥ããŒããŸãã¯ã¢ã©ãŒãã®æŽæ°ãå¿ èŠã«ãªãå ŽåããããŸãã PR#3370 PR#3320
- å€ã圢åŒ:
Ruby/ActiveJob/<QueueName>/<Method> - æ°ãããã©ãŒããã:
Ruby/ActiveJob/<QueueName>/<ClassName>/<Method>
ããã«ãã¢ã¯ãã£ã ãžã§ãã®ãã¥ãŒç»é²ã¢ã¯ã·ã§ã³çšã«äœæãããã»ã°ã¡ã³ãã«ãžã§ã ã¯ã©ã¹ãå«ãŸããããã«ãªããŸããã
- å€ã圢åŒ:
ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName> - æ°ãããã©ãŒããã:
ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName>/<ClassName>
- å€ã圢åŒ:
倿Žç¹:
bin/newrelicã³ãã³ãã®ååãæ¬¡ã®ããã«å€æŽããŸãbin/newrelic_rpmãšãŒãžã§ã³ãã® CLI ã®å®è¡å¯èœãã¡ã€ã«ã®ååã
bin/newrelicããbin/newrelic_rpmã«å€æŽãããŸããããã®å€æŽã«ãããã¹ã¿ã³ãã¢ãã³ã® New Relic CLI ããŒã«ãšã®ååã®ç«¶åã解決ãããŸããPR#3323倿Žç¹:
newrelic deploymentsCLI ã³ãã³ããåé€ããŸãéæšå¥šã®
newrelic deploymentsCLI ã³ãã³ãã¯åé€ãããŸãããNew Relicã®å€æŽãšãããã€ã¡ã³ãã远跡ããã«ã¯ãå©çšå¯èœãªãªãã·ã§ã³ã®ãªã¹ãã«ã€ããŠã¯ã倿Žè¿œè·¡ (倿Žè¿œè·¡æ©èœ)ã®ã¬ã€ããåç §ããŠãã ããã PR#3299é倧ãªå€æŽ: NewRelic::ãšãŒãžã§ã³ã::SqlSampler#notice_sql ã¡ãœãããåé€
代ããã«ããŠãŒã¶ãŒã¯
NewRelic::Agent::Datastores.notice_sqlãåŒã³åºãå¿ èŠããããŸããPR#3338é倧ãªå€æŽ: ããŸããŸãª NewRelic::ãšãŒãžã§ã³ã::Datastores API ããæªäœ¿çšã®åŒæ°ãåé€
NewRelic::Agent::Datastoresã¯ã©ã¹ã®æ¬¡ã® API ããã¡ãœããåŒæ°ãåé€ãããŸãã:NewRelic::Agent::Datastores.notice_sqlã«ã¯ã以å㯠3 ã€ã®äœçœ®åŒæ°queryãscoped_metricãelapsedããããŸãããçŸåšã¯queryã®ã¿ã«ãªã£ãŠããŸããNewRelic::Agent::Datastores.notice_statementã以å㯠2 ã€ã®äœçœ®åŒæ°queryãšelapsedããããŸãããçŸåšã¯queryã®ã¿ã«ãªã£ãŠããŸããNewRelic::Agent::Datastores.wrapããã»ã¹ãå¿ èŠã§ãã以åã¯ãããã·ãŒãžã£ã¯ãyield ã®çµæãæãå ·äœçãªã¹ã³ãŒãã®ã¡ããªãã¯åãããã³åŒã³åºãã®çµéæéãšãã 3 ã€ã®åŒæ°ãåãåããŸããã ä»ã§ã¯ãyield ã®çµæã®ã¿ãåãåããŸãã
åé€ãããåŒæ°ã®å€ã¯ãåŒã³åºãæã®çŸåšã®ã»ã°ã¡ã³ãããå°åºãããŸããPR#3347
é倧ãªå€æŽ: å®éšçæ©èœã®èšå®å¯èœãªã»ãã¥ãªã㣠ããªã·ãŒ (CSP) ãåé€ããŸãã
å®éšçæ©èœã§ããèšå®å¯èœãªã»ãã¥ãªã㣠ããªã·ãŒ (CSP) ã¯ãµããŒããããªããªããåé€ãããŸããã PR#3292
é倧ãªå€æŽ: Puma ããŒãžã§ã³ '<' 3.9.0 ã®ãµããŒããåé€ããŸã
çŸåšãµããŒããããŠãã Puma ã®æå°ããŒãžã§ã³ã¯ 3.9.0 以äžã§ããPR#3326
é倧ãªå€æŽ: èšå®ã®æ€èšŒãšåŒ·å¶å®è¡ã®æ¹å
ä¿æ°èšå®ã«æäŸãããå€ã匷å¶ããã³æ€èšŒããããã«äœ¿çšãããå éšæ©èœã¯ãããããã©ãŒãã³ã¹ãåäžããããæ£ç¢ºã«ãªããŸããã
- nil ããµããŒããããŠããªãèšå®ã®èšå®å€ãšããŠæå®ãããå ŽåãèŠåã¡ãã»ãŒãžã newrelic_agent.log ãã¡ã€ã«ã«èšé²ãããããã«ãªããŸããã
- ãããŒãèšå®ã¿ã€ãã«ã¯æŽæ°å€ãèš±å¯ãããŸã
- ãããŒãå€ã¯æŽæ°èšå®åã§èš±å¯ãããŸã
- ç¡å¹ãªå ¥åå€ã眮ãæããããã©ã«ãå€ãèŠã€ãããšãèŽåœçãªäžæã鲿¢ãããŸãPR#3341
é倧ãªå€æŽ: ãã£ã¹ããªãã¥ãŒãã£ããïŒåæ£ïŒãã¬ãŒã·ã³ã° ãªã¢ãŒã芪ãµã³ãã©ãŒã®ãdefaultããªãã·ã§ã³ããadaptiveãã«çœ®ãæããŸãã
以åã¯ã
distributed_tracing.sampler.remote_parent_sampledãšdistributed_tracing.sampler.remote_parent_not_sampledããã©ã«ã ãªãã·ã§ã³ã¯defaultã§ãããæ¢åã®ã¢ãããã£ã ãµã³ãã©ãŒã䜿çšãããŠããŸãããdefaultãªãã·ã§ã³ã®ååãadaptiveã«å€æŽãããŸãããPR#3363æ©èœ:
loggeräŸåé¢ä¿ãšããŠè¿œåç¶ç¶çãªãã°æ©èœãš Ruby 4.0.0 以éã®ããŒãžã§ã³ã®ãµããŒãã確ä¿ããããã«ã
loggergem ããšãŒãžã§ã³ãã®äŸåé¢ä¿ãšããŠãªã¹ããããããã«ãªããŸãããPR#3293æ©èœ: Active Support éç¥èš±å¯ãªã¹ãã®èšå®ãªãã·ã§ã³ã远å
æ°ããèšå®ãªãã·ã§ã³
instrumentation.active_support_notifications.active_support_events䜿çšãããšããŠãŒã¶ãŒã¯ãšãŒãžã§ã³ãã賌èªããã¢ã¯ãã£ã ãµããŒãéç¥ã€ãã³ãåã®èš±å¯ãªã¹ããå®çŸ©ã§ããŸãã ããã©ã«ãã§ã¯ããšãŒãžã§ã³ãã¯ãã¹ãŠã®Active Support: Cachingããã³Active Support: Messagesã€ãã³ãããµãã¹ã¯ã©ã€ãããŸããPR#3327æ©èœ: Ruby ã®çµã¿èŸŒã¿ Gzip å§çž®ã䜿çšãã
ãšãŒãžã§ã³ãã¯ã以åã®ã«ã¹ã¿ã å®è£ ã«ä»£ãã£ãŠãRuby æšæºã©ã€ãã©ãªã®çµã¿èŸŒã¿
Zlib.gzipã¡ãœãããå§çž®ã«äœ¿çšããããã«ãªããŸãããPR#3332æ©èœ:
NewRelic::Agent#record_custom_eventAPI ã®åŒæ°æ€èšŒã远åç¡å¹ãª
event_typeãæå®ãããå ŽåãNewRelic::Agent#record_custom_eventAPI ã¯ArgumentErrorãçºçãããããã«ãªããŸãããæå¹ãªã€ãã³ã ã¿ã€ãã¯ãè±æ°åãã¢ã³ããŒã¹ã³ã¢ (_)ãã³ãã³ (:)ããŸãã¯ã¹ããŒã¹ () ã®ã¿ã§æ§æãããŠããå¿ èŠããããŸããPR#3319æ©èœ: ã«ãŒããµã³ããªã³ã°èšå®ãªãã·ã§ã³ã远å
distributed_tracing.sampler.rootã䜿çšããŠãçŸåšã®ãµãŒãã¹å ã§çæããããã¬ãŒã¹ã®ãµã³ããªã³ã°åäœãæ§æã§ããããã«ãªããŸãããPR#3330å©çšã§ããã¢ãŒã㯠4 ã€ãããŸãã
ã¢ãŒã 説æ adaptiveæ¢åã®é©å¿ãµã³ãã©ãŒã¢ã«ãŽãªãºã ã䜿çšãã always_offã«ãŒããã¬ãŒã¹ã®0%ããµã³ããªã³ã°æžã¿ãšããŠããŒã¯ããŸã always_onã«ãŒããã¬ãŒã¹ã®100%ããµã³ããªã³ã°æžã¿ãšããŠããŒã¯ããŸã trace_id_ratio_baseddistributed_tracing.sampler.root.trace_id_ratio_based.ratioã«èšå®ãããæ¯çã«åºã¥ããŠãã¬ãŒã¹ããµã³ããªã³ã°ããŸããæ¯ç㯠0.0 ïœ 1.0 ã®ãããŒãã§ãªããã°ãªããŸããæ©èœ: ãã¬ãŒã¹ ID æ¯çããŒã¹ã®ãµã³ããªã³ã° ãªãã·ã§ã³ã远å
ãšãŒãžã§ã³ãã¯ã OpenTelemetry ID Ratio Based ãµã³ãã©ãŒ ã¢ã«ãŽãªãºã ã䜿çšããŠãã¬ãŒã¹ããµã³ããªã³ã°ã§ããããã«ãªããŸããã PR#3330ãã¬ãŒã¹ ID ã«åºã¥ã㊠0.0 ïœ 1.0 ã®ç¢ºçã§ãã¬ãŒã¹ããµã³ããªã³ã°ããŸãã
ãã®ãªãã·ã§ã³ã䜿çšããã«ã¯ããŸããã£ã¹ããªãã¥ãŒãã£ããïŒåæ£ïŒãã¬ãŒã·ã³ã° ãµã³ãã©ãŒèšå®ã
trace_id_ratio_basedã«èšå®ããæ¬¡ã«å¯Ÿå¿ããdistributed_tracing.sampler.*.trace_id_ratio_based.ratioãµã³ãã©ãŒã 0.0 ïœ 1.0 ã®ãããŒãã«èšå®ããå¿ èŠããããŸããäŸãã°ïŒ
distributed_tracing.sampler.remote_parent_sampled: 'trace_id_ratio_based'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio': 0.5ãã®èšå®ã§ã¯ããªã¢ãŒãã®èŠªããµã³ããªã³ã°ããããã¹ãŠã®ãã¬ãŒã¹ã«ã€ããŠããã¬ãŒã¹ã®çŽ 50% ããµã³ããªã³ã°ãããŸãã
ãã®ãªãã·ã§ã³ã¯ä»¥äžã§å©çšå¯èœã§ã:
distributed_tracing.sampler.rootdistributed_tracing.sampler.remote_parent_sampleddistributed_tracing.sampler.remote_parent_not_sampled
æ©èœ: ãšã³ãã£ã㣠GUID ãAgent Controlãã«ã¹ ãã§ã㯠ãã¡ã€ã«ã«è¿œå ããŸã
Agent Controlç°å¢å ã§ãšãŒãžã§ã³ããéå§ããããšãåããã»ã¹ã®æ§æããããã¡ã€ã«ã®å Žæã«ãã«ã¹ ãã§ã㯠ãã¡ã€ã«ãäœæãããŸãã ãã®ãã¡ã€ã«ã«ã¯ãå©çšå¯èœãªå ŽåããšãŒãžã§ã³ãã«é¢é£ãããšã³ãã£ãã£ã® GUID ãå«ãŸããããã«ãªããŸãããPR#3371
ãã°ä¿®æ£: GCP 䜿çšçæ€åºã«ããã
NoMethodErrorã解決ããŸãããGCP ã¡ã¿ããŒã¿æ€åºããžãã¯ã¯ã
nilãŸãã¯äºæããªãå€ãé©åã«åŠçãããµãŒãã¹åæåã®ã¯ã©ãã·ã¥ãé²ãããã«ãªããŸãããPR#3388
Important
ææ°ã®ãšãŒãžã§ã³ã ããŒãžã§ã³ãå©çšå¯èœã«ãªã£ããããã«æŽæ°ããããšããå§ãããŸããææ°ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãã§ããªãå Žåã¯ããšãŒãžã§ã³ãã 90 æ¥ä»¥å ã®ããŒãžã§ã³ã«æŽæ°ããŠãã ããããšãŒãžã§ã³ããææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããã
ãšãŒãžã§ã³ãã®ãªãªãŒã¹ãšãµããŒãæ¥ã«ã€ããŠã¯ãNew Relic Ruby ãšãŒãžã§ã³ãã®EOL ããªã·ãŒãåç §ããŠãã ããã
ããŒãžã§ã³9.24.0
æ©èœ: SqlSampler#notice_sql API ã®å»æ¢ã«é¢ãããç¥ãã
NewRelic::Agent::SqlSampler#notice_sqlã¡ãœããã¯éæšå¥šã§ãããå°æ¥ã®ã¡ãžã£ãŒ ããŒãžã§ã³ã§åé€ãããäºå®ã§ãã代ããã«ããŠãŒã¶ãŒã¯NewRelic::Agent::Datastores.notice_sqlãåŒã³åºãå¿ èŠããããŸããPR#3345æ©èœ: Datastores.notice_sql ã® 2 çªç®ãš 3 çªç®ã®åŒæ°ã®éæšå¥šéç¥API
NewRelic::Agent::Datastores.notice_sqlã¡ãœããã® 2 çªç® (scoped_metric) ããã³ 3 çªç® (elapsed) ã®åŒæ°ã¯éæšå¥šã§ãããããã¯ãã°ããã®éããã®æ¹æ³ã§ã¯äœ¿çšãããŠããŸããã代ããã«ããããã®å€ã¯ãAPI ãåŒã³åºããããšãã«çŸåšã®ã»ã°ã¡ã³ãã«åºã¥ããŠèšå®ãããŸããPR#3345æ©èœ: Datastores.notice_statement ã® 2 çªç®ã®åŒæ°ã®éæšå¥šéç¥API
NewRelic::Agent::Datastores.notice_statementã¡ãœããã® 2 çªç®ã®åŒæ° (elapsed) ã¯éæšå¥šã§ãããã®æ¹æ³ã¯ããã°ããã®é䜿çšãããŠããŸããã代ããã«ããã®å€ã¯ API ãåŒã³åºããããšãã«çŸåšã®ã»ã°ã¡ã³ãã«åºã¥ããŠèšå®ãããŸããPR#3346æ©èœ: Datastores.wrap API ã® proc ã® 2 çªç®ãš 3 çªç®ã®åŒæ°ã®éæšå¥šéç¥
NewRelic::Agent::Datastores.wrapã¡ãœããã¯å€æŽãããŠããŸããå°æ¥ã®ã¡ãžã£ãŒ ããŒãžã§ã³ã§ã¯ãproc ã¯åäžã®åŒæ° (yield ã®çµæ) ã®ã¿ãåãå ¥ããããã«ãªããŸããã¹ã³ãŒãä»ãã¡ããªãã¯åãšçµéåŒæ°ã¯ãDatastores.notice_sqlã¡ãœããããåé€ãããããåé€ãããŸãã ã¹ã³ãŒãä»ãã¡ããªãã¯åãšçµéå€ã¯ãã©ãããå®è¡ããããšãã«çŸåšã®ã»ã°ã¡ã³ãããå°åºãããŸãã PR#3346