• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Ruby agent release notesRSS

April 16
Ruby agent v10.4.0

Importante

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.notify are 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 of application_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'].

    PR#3526

  • 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 to false). PR#3493

  • Feature: 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#3514

  • Bugfix: 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_segment encountered an error and returned nil, the agent would trigger a NoMethodError when 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

April 9
Ruby agent v10.3.0

Importante

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.3.0

  • Feature: Add database query naming via SQL comments

    Database queries can now be explicitly named using SQL comments. Queries can include /* NewRelicQueryName: CustomName */ comments to assign stable names for better tracking and identification. This is especially useful for tracking specific database queries during performance regressions or incidents. PR#3480

  • Feature: Add Semantic Logger instrumentation

    The agent now supports Semantic Logger log forwarding and decoration for the semantic_logger gem versions 4.6.0+. If you were previously using Semantic Logger's built-in New Relic appender, it is recommended to choose one approach to avoid sending duplicate logs. New Relic's Semantic Logger instrumentation can be disabled by setting instrumentation.semantic_logger to disabled. PR#3467

    Thanks to @jdelStrother for providing valuable feedback that helped shape this instrumentation.

  • Feature: Add new 'ignored_middleware_classes' configuration

    A new configuration option, ignored_middleware_classes, allows users to exclude specific middlewares from instrumentation (ex. Rack::Cors). It defaults to an empty array. Issue#1814 PR#3481

  • Feature: Add new NewRelic::Agent.add_transaction_log_attributes API

    A new API, NewRelic::Agent.add_transaction_log_attributes, allows users to add transaction-scoped custom attributes to log events for the current transaction. These attributes will only be applied to logs created within the scope of the current transaction. PR#3472

  • Bugfix: Provide config option to reduce cardinality of ActionCable broadcast metrics

    By default, the metrics for ActionCable broadcast method calls include the value of the broadcasting. This value can have very high cardinality. Now, the :simplify_action_cable_broadcast_metrics configuration option allows users to remove the broadcasting value from the metric name. This creates a metric that looks like: Ruby/ActionCable/broadcast. When this configuration option is enabled, the broadcasting value will be added as a span attribute. PR#3463

  • Bugfix: Remove dead 'digest/md5' require for FIPS/FedRAMP compliance

    In version 7.1.0 of the agent, MD5 usage was replaced with SHA1 for FIPS compliance (PR). However, the old require for 'digest/md5' was not removed. We have removed the require to help our FIPS/FedRAMP users. Thank you to @ashleyboehs for bringing this to our attention! Issue#3469 PR#3470

  • Bugfix: Prevent agent from starting during rails test to avoid shutdown delay

    Previously, the agent would cause a ~3 second shutdown delay when running the rails test command. The Rails::Command::TestCommand constant has been added to the default autostart.denylisted_constants list to prevent the agent from starting during Rails test runs. Thanks to @varyform for bringing this to our attention. PR#3478

  • Bugfix: Fix "Unable to calculate elapsed transaction time" warnings when using Falcon web server

    The agent now uses Fiber.current.object_id instead of Thread.current.object_id to track transaction state when running under Falcon, preventing collisions from concurrent requests sharing the same thread. Also fixes a "NameError: uninitialized constant Async::HTTP::VERSION" when using Falcon. Thanks to @97jaz and @gsar for bringing this to our attention. PR#3483

  • Bugfix: Fix typo in harvest.rb causing NoMethodError

    A typo in lib/new_relic/agent/agent_helpers/harvest.rb caused a NoMethodError: undefined method 'agent' for NewRelic:Module. Thanks to @oakbow for reporting this issue. PR#3484

  • Bugfix: Remove usage of deprecated ObjectSpace._id2ref

    The agent now uses an alternative approach instead of the deprecated ObjectSpace._id2ref method, eliminating deprecation warnings when running on Ruby 4.0+. PR#3490

  • Bugfix: Fix NoMethoError in Logging instrumentation

    Previously, when the Logging gem instrumentation attempted to decorate local logs, it would raise a NoMethodError if it encountered a non-string object. This is now fixed. PR#3501

February 18
Ruby agent v10.2.0

Importante

Recomendamos atualizar para a versão mais recente do agente assim que estiver disponível. Se você não puder atualizar para a versão mais recente, atualize seu agente para uma versão com no máximo 90 dias. Saiba mais sobre como manter o agente atualizado.

Consulte a política de fim de vida útil do agente Ruby New Relic para obter informações sobre lançamentos de agentes e datas de suporte.

v10.2.0

  • Recurso: Introduzir Agente Híbrido para suporte ao Rastreamento OpenTelemetry

    As APIs de rastreamento do OpenTelemetry agora podem ser traduzidas em telemetria da New Relic com os novos recursos de Agente Híbrido do agente Ruby da New Relic. Isso permite que a gem newrelic_rpm se comporte de forma semelhante a um SDK OpenTelemetry, aceitando chamadas da API OpenTelemetry e transformando-as em Transações e Segmentos do New Relic com atributos e nomes familiares.

    As seguintes opções de configuração referem-se aos recursos do Hybrid Agent:

    Nome da configuraçãoPadrãoComportamento
    opentelemetry.enabledfalseUma opção de configuração global para desativar todos os sinais do OpenTelemetry enviados pelo New Relic.
    opentelemetry.traces.enabledtruePermite a criação de segmentos de Transaction Trace e métricas de timeslice a partir de Spans do OpenTelemetry
    opentelemetry.traces.include''Uma lista de rastreadores do OpenTelemetry delimitada por vírgulas, representada como uma string (por exemplo, "AppTracer1,OpenTelemetry::Instrumentation::Bunny::Instrumentation"), que terão seus sinais de rastreamento enviados para a New Relic.
    opentelemetry.traces.exclude''Uma lista de rastreadores do OpenTelemetry delimitada por vírgulas, representada como uma string (por exemplo, "AppTracer1,OpenTelemetry::Instrumentation::Bunny::Instrumentation"), que não terão seus sinais de trace enviados para o New Relic. Todos os rastreadores conhecidos para instrumentação que conflita com a instrumentação da New Relic são excluídos por padrão.
  • Recurso: Adicionar opção de configuração error_collector.backtrace_truncate_location

    Uma nova opção de configuração foi adicionada, error_collector.backtrace_truncate_location, que permite ao usuário especificar onde truncar o backtrace quando o número de frames exceder error_collector.max_backtrace_frames. As opções são 'top' (remove frames do início), 'middle' (remove frames do meio, preservando o início e o fim) ou 'end' (remove frames do fim). O padrão é 'middle'. PR#3424

  • Recurso: Adicionar instrumentação da gem Logging

    O agente agora registrará logs gerados pela gem Logging. PR#3420

  • Funcionalidade: Adicionar opção de configuração utilization.detect_in_parallel

    Uma nova opção de configuração foi adicionada, utilization.detect_in_parallel, que controla se o agente usa threads ao detectar informações do provedor de nuvem para acelerar a inicialização do agente. Quando definido como false, a detecção de fornecedor é executada sequencialmente sem criar threads. O padrão é true. PR#3439

February 3
Ruby agent v10.1.0

Importante

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.guid values in the health check files. PR#3409 Issue#3408

  • Bugfix: Fix sidekiq.ignore_retry_errors

    The configuration option sidekiq.ignore_retry_errors: true was continuing to report retry errors. The agent now correctly ignores retry errors and only reports when jobs permanently fail. PR#3399

January 14
Ruby agent v10.0.0

Importante

Atualização da Versão Principal: Esta versão do agente Ruby é uma atualização MAJOR SemVer e contém alterações significativas. As versões MAJOR podem remover o suporte para tempos de execução de linguagem que atingiram o fim da vida útil de acordo com o responsável pela manutenção. Além disso, as versões MAJOR podem remover o suporte e remover certas instrumentações. Para obter mais detalhes sobre essas alterações, consulte o guia de migração aqui.

Importante

Recomendamos atualizar para a versão mais recente do agente assim que estiver disponível. Se você não puder atualizar para a versão mais recente, atualize seu agente para uma versão com no máximo 90 dias. Saiba mais sobre como manter o agente atualizado.

Consulte a política de fim de vida útil do agente Ruby New Relic para obter informações sobre lançamentos de agentes e datas de suporte.

v10.0.0

  • Alteração significativa: Remover o suporte para Ruby 2.4 e 2.5

    O suporte para as versões Ruby 2.4 e 2.5 foi removido. A nova versão mínima do Ruby necessária agora é 2.6. PR#3314

  • Mudança importante: Remoção do Cross Application Tracing (CAT)

    Anteriormente, o Cross Application Tracing (CAT) foi descontinuado em favor do Distributed Tracing. A funcionalidade CAT foi removida. A opção de configuração cross_application_tracer.enabled foi removida. Os métodos da API pública 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 e NewRelic::Agent::Transaction::ExternalRequestSegment#read_response_headers também foram removidos. PR#3333

  • Mudança radical: Renomear métricas e segmentos do ActiveJob

    As métricas do ActiveJob foram atualizadas para incluir o nome da classe do trabalho para relatórios mais específicos. Esta é uma alteração significativa e pode exigir a atualização de painéis ou alertas personalizados. PR#3370 PR#3320

    • Formato antigo: Ruby/ActiveJob/<QueueName>/<Method>
    • Novo formato: Ruby/ActiveJob/<QueueName>/<ClassName>/<Method>

    Além disso, os segmentos criados para ações de enfileiramento do Active Job agora incluem a classe de trabalho.

    • Formato antigo: ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName>
    • Novo formato: ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName>/<ClassName>
  • Mudança radical: Renomear o comando bin/newrelic para bin/newrelic_rpm

    O arquivo executável para a CLI do agente foi renomeado de bin/newrelic para bin/newrelic_rpm. Essa alteração resolve uma colisão de nomes com a ferramenta CLI autônoma do New Relic. PR#3323

  • Mudança radical: Remova o comando CLI newrelic deployments

    O comando CLI newrelic deployments obsoleto foi removido. Para rastrear alterações e implantações no New Relic, consulte nosso guia sobre Rastreamento de alterações para obter uma lista de opções disponíveis. PR#3299

  • Mudança radical: Remover o método NewRelic::Agent::SqlSampler#notice_sql

    Os usuários devem chamar NewRelic::Agent::Datastores.notice_sql em vez disso. PR#3338

  • Mudança radical: Remova argumentos não utilizados de várias APIs NewRelic::Agent::Datastores

    As seguintes APIs da classe NewRelic::Agent::Datastores tiveram argumentos de método removidos:

    • NewRelic::Agent::Datastores.notice_sql, anteriormente tinha três argumentos posicionais, query, scoped_metric e elapsed. Agora, ele só tem query.
    • NewRelic::Agent::Datastores.notice_statement, anteriormente tinha dois argumentos posicionais query e elapsed. Agora ele só tem query.
    • NewRelic::Agent::Datastores.wrap exige um proc. Anteriormente, o proc recebia três argumentos: o resultado do yield, o nome da métrica com escopo mais específico e o tempo decorrido da chamada. Agora, ele recebe apenas um: o resultado do yield.

    Os valores dos argumentos removidos são derivados do segmento atual no momento da chamada. PR#3347

  • Mudança radical: Remover o recurso experimental Configurable Security Policies (CSP)

    O recurso experimental, Configurable Security Policies (CSP), não é mais suportado e foi removido. PR#3292

  • Mudança radical: Remover o suporte para as versões do Puma '<' 3.9.0

    A versão mínima do Puma agora suportada é 3.9.0 ou superior. PR#3326

  • Mudança radical: Melhorar a validação e coerção da configuração

    Os mecanismos internos usados para forçar e validar os valores fornecidos para a configuração do agente agora são mais eficientes e precisos.

    • Mensagens de aviso agora serão registradas no arquivo newrelic_agent.log quando nil for fornecido como um valor de configuração para uma configuração que não o suporta.
    • Valores inteiros são permitidos para tipos de configuração Float
    • Valores float são permitidos para tipos de configuração Integer
    • Interrupções fatais são evitadas quando um valor padrão pode ser encontrado para substituir um valor de entrada inválido PR#3341
  • Mudança radical: Substitua a opção 'default' por 'adaptive' para amostradores de pais remotos de rastreamento distribuído

    Anteriormente, a opção padrão para distributed_tracing.sampler.remote_parent_sampled e distributed_tracing.sampler.remote_parent_not_sampled era default, que usava o amostrador adaptável pré-existente. A opção default foi renomeada para adaptive. PR#3363

  • Recurso: Adicionar logger como uma dependência

    O gem logger agora está listado como uma dependência do agente para garantir a funcionalidade contínua de logging e suporte para as versões Ruby 4.0.0 e mais recentes. PR#3293

  • Recurso: Adicione a opção de configuração de lista de permissões de notificação do Active Support

    Uma nova opção de configuração, instrumentation.active_support_notifications.active_support_events, permite que os usuários definam uma lista de permissões de nomes de eventos de notificação do Active Support para o agente assinar. Por padrão, o agente se inscreve em todos os eventos Active Support: Caching e Active Support: Messages. PR#3327

  • Recurso: Use a compressão Gzip integrada do Ruby

    O agente agora usa o método Zlib.gzip integrado da biblioteca padrão Ruby para compactação, substituindo a implementação personalizada anterior. PR#3332

  • Recurso: Adicionar validação de argumento para a API NewRelic::Agent#record_custom_event

    A API NewRelic::Agent#record_custom_event agora levanta um ArgumentError quando um event_type inválido é fornecido. Um tipo de evento válido deve consistir apenas em caracteres alfanuméricos, sublinhados (_), dois pontos (:) ou espaços ( ). PR#3319

  • Recurso: Adicionar opções de configuração de amostragem raiz

    Agora você pode configurar o comportamento de amostragem para rastreios que se originam dentro do serviço atual usando distributed_tracing.sampler.root. PR#3330

    Há quatro modos disponíveis:

    ModoDescrição
    adaptiveUsa o algoritmo de amostragem adaptável existente
    always_offMarca 0% dos rastreamentos raiz como amostrados
    always_onMarca 100% dos rastreamentos raiz como amostrados
    trace_id_ratio_basedAmostra rastreamentos com base em uma proporção definida em distributed_tracing.sampler.root.trace_id_ratio_based.ratio. A proporção deve ser um float entre 0,0 e 1,0
  • Recurso: Adicione opções de amostragem baseadas na taxa de ID de rastreamento

    O agente agora pode amostrar rastreios usando o algoritmo de amostragem baseado na taxa de ID de rastreio OpenTelemetry. PR#3330 Isso amostra rastreios com base em uma probabilidade entre 0,0 e 1,0 com base no ID do rastreio.

    Para usar esta opção, você deve primeiro definir sua configuração de amostrador de rastreamento distribuído para trace_id_ratio_based e, em seguida, definir o amostrador distributed_tracing.sampler.*.trace_id_ratio_based.ratio correspondente para um Float entre 0,0 e 1,0.

    Por exemplo:

    distributed_tracing.sampler.remote_parent_sampled: 'trace_id_ratio_based'
    distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio': 0.5

    Essa configuração amostrará aproximadamente 50% de seus rastreamentos para todos os rastreamentos em que o pai remoto for amostrado.

    Esta opção está disponível para:

    • distributed_tracing.sampler.root
    • distributed_tracing.sampler.remote_parent_sampled
    • distributed_tracing.sampler.remote_parent_not_sampled
  • Recurso: Adicionar GUID da entidade aos arquivos de verificação de integridade do Agent Control

    Quando o agente é iniciado em um ambiente de Controle do Agente, um arquivo de verificação de integridade é criado no local configurado do arquivo para cada processo do agente. Este arquivo agora inclui o guid da entidade relacionada ao agente quando disponível. PR#3371

  • Correção de bug: Resolver um NoMethodError na detecção de utilização do GCP.

    A lógica de descoberta de metadados do GCP agora lidará normalmente com nil ou valores inesperados, evitando falhas na inicialização do serviço. PR#3388

December 2, 2025
Ruby agent v9.24.0

Importante

Recomendamos atualizar para a versão mais recente do agente assim que estiver disponível. Se você não puder atualizar para a versão mais recente, atualize seu agente para uma versão com no máximo 90 dias. Saiba mais sobre como manter o agente atualizado.

Consulte a política de fim de vida útil do agente Ruby New Relic para obter informações sobre lançamentos de agentes e datas de suporte.

v9.24.0

  • recurso: Lembrete de descontinuação da APISqlSampler#notice_sql

    O método NewRelic::Agent::SqlSampler#notice_sql está obsoleto e será removido em uma futura versão principal. Em vez disso, o usuário deve chamar NewRelic::Agent::Datastores.notice_sql. PR#3345

  • recurso: Aviso de obsolescência para o segundo e terceiro argumentos em Datastores.notice_sql API

    O segundo (scoped_metric) e o terceiro (elapsed) argumentos no método NewRelic::Agent::Datastores.notice_sql estão obsoletos. Eles não são usados por esse método há algum tempo. Em vez disso, esses valores serão definidos com base no segmento atual no momento em que a API for chamada. PR#3345

  • recurso: Aviso de depreciação para o segundo argumento em Datastores.notice_statement API

    O segundo argumento (elapsed) no método NewRelic::Agent::Datastores.notice_statement está obsoleto. Esse método não é utilizado há algum tempo. Em vez disso, esse valor será definido com base no segmento atual no momento em que a API for chamada. PR#3346

  • recurso: Aviso de descontinuação para o segundo e terceiro argumentos do procedimento na APIDatastores.wrap

    O método NewRelic::Agent::Datastores.wrap está mudando. Em uma futura versão principal, o procedimento aceitará apenas um único argumento, o resultado do yield. O nome da métrica com escopo e os argumentos decorridos serão removidos, pois estão sendo removidos do método Datastores.notice_sql. O nome da métrica definida e os valores decorridos são derivados do segmento atual quando o loop é acionado. PR#3346

November 12, 2025
Ruby agent v9.23.0

Importante

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.

v9.23.0

  • Feature: Add sidekiq.ignore_retry_errors configuration option

    A new configuration option, sidekiq.ignore_retry_errors, has been added to control if Sidekiq job retries are captured. Retry errors are captured by default, but now if sidekiq.ignore_retry_errors is set to true, the agent will ignore exceptions raised during Sidekiq's retry attempts and will only report the error if the job permanently fails. Thank you DonGiulio for recognizing this improvement and contributing a solution. PR#3317

  • Feature: Deprecation notice for recording deployments using Capistrano

    Sending application deployment information using a Capistrano recipe is deprecated and will be removed in agent version 10.0.0. For recording deployments, please see our guide to Change Tracking for a list of available options.

  • Feature: Use remote parent sampling configurations for decisions in more scenarios

    Previously, the distributed_tracing.sampler.remote_parent_sampled and distributed_tracing.sampler.remote_parent_not_sampled configuration options were used for the sampling decision only when the traceparent and tracestate headers were present. Now, these configuration options are applied in cases when the tracestate header is missing and when only the newrelic header is available. This change makes distributed trace sampling more consistent and predictable. PR#3306

Copyright © 2026 New Relic Inc.

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