Important
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.
Important
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.enabledfoi removida. Os métodos da API públicaNewRelic::Agent::External.process_request_metadata,NewRelic::Agent::External.get_response_metadata,NewRelic::Agent::Transaction::ExternalRequestSegment#process_response_metadata,NewRelic::Agent::Transaction::ExternalRequestSegment#get_request_metadataeNewRelic::Agent::Transaction::ExternalRequestSegment#read_response_headerstambém foram removidos. PR#3333Mudanç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>
- Formato antigo:
Mudança radical: Renomear o comando
bin/newrelicparabin/newrelic_rpmO arquivo executável para a CLI do agente foi renomeado de
bin/newrelicparabin/newrelic_rpm. Essa alteração resolve uma colisão de nomes com a ferramenta CLI autônoma do New Relic. PR#3323Mudança radical: Remova o comando CLI
newrelic deploymentsO comando CLI
newrelic deploymentsobsoleto 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#3299Mudança radical: Remover o método NewRelic::Agent::SqlSampler#notice_sql
Os usuários devem chamar
NewRelic::Agent::Datastores.notice_sqlem vez disso. PR#3338Mudança radical: Remova argumentos não utilizados de várias APIs NewRelic::Agent::Datastores
As seguintes APIs da classe
NewRelic::Agent::Datastorestiveram argumentos de método removidos:NewRelic::Agent::Datastores.notice_sql, anteriormente tinha três argumentos posicionais,query,scoped_metriceelapsed. Agora, ele só temquery.NewRelic::Agent::Datastores.notice_statement, anteriormente tinha dois argumentos posicionaisqueryeelapsed. Agora ele só temquery.NewRelic::Agent::Datastores.wrapexige 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_samplededistributed_tracing.sampler.remote_parent_not_samplederadefault, que usava o amostrador adaptável pré-existente. A opçãodefaultfoi renomeada paraadaptive. PR#3363Recurso: Adicionar
loggercomo uma dependênciaO gem
loggeragora 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#3293Recurso: 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#3327Recurso: Use a compressão Gzip integrada do Ruby
O agente agora usa o método
Zlib.gzipintegrado da biblioteca padrão Ruby para compactação, substituindo a implementação personalizada anterior. PR#3332Recurso: Adicionar validação de argumento para a API
NewRelic::Agent#record_custom_eventA API
NewRelic::Agent#record_custom_eventagora levanta umArgumentErrorquando umevent_typeinválido é fornecido. Um tipo de evento válido deve consistir apenas em caracteres alfanuméricos, sublinhados (_), dois pontos (:) ou espaços (). PR#3319Recurso: 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#3330Há quatro modos disponíveis:
Modo Descriçã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,0Recurso: 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_basede, em seguida, definir o amostradordistributed_tracing.sampler.*.trace_id_ratio_based.ratiocorrespondente 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.5Essa 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.rootdistributed_tracing.sampler.remote_parent_sampleddistributed_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
NoMethodErrorna detecção de utilização do GCP.A lógica de descoberta de metadados do GCP agora lidará normalmente com
nilou valores inesperados, evitando falhas na inicialização do serviço. PR#3388
Important
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_sqlestá obsoleto e será removido em uma futura versão principal. Em vez disso, o usuário deve chamarNewRelic::Agent::Datastores.notice_sql. PR#3345recurso: 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étodoNewRelic::Agent::Datastores.notice_sqlestã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#3345recurso: Aviso de depreciação para o segundo argumento em Datastores.notice_statement API
O segundo argumento (
elapsed) no métodoNewRelic::Agent::Datastores.notice_statementestá 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#3346recurso: Aviso de descontinuação para o segundo e terceiro argumentos do procedimento na APIDatastores.wrap
O método
NewRelic::Agent::Datastores.wrapestá 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étodoDatastores.notice_sql. O nome da métrica definida e os valores decorridos são derivados do segmento atual quando o loop é acionado. PR#3346
Important
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.23.0
recurso: Adicionar sidekiq.ignore_retry_errors opção de configuração
Uma nova opção de configuração,
sidekiq.ignore_retry_errors, foi adicionada para controlar se as tentativas de repetição de tarefas do Sidekiq são capturadas. Os erros de repetição são capturados por padrão, mas agora sesidekiq.ignore_retry_errorsfor definido comotrue, o agente ignorará as exceções geradas durante as tentativas de repetição do Sidekiq e só relatará o erro se o trabalho falhar permanentemente. Obrigado DonGiulio por reconhecer essa melhoria e contribuir com uma solução. PR#3317recurso: Aviso de descontinuação para registro de implantação usando Capistrano
O envio de informações de implantação do aplicativo usando uma receita Capistrano está obsoleto e será removido na versão 10.0.0 do agente. Para registro de implantação, consulte nosso guia de Monitoramento de Alterações para obter uma lista de opções disponíveis.
recurso: Use configuração de amostragem pai remota para decisões em mais cenários
Anteriormente, as opções de configuração
distributed_tracing.sampler.remote_parent_samplededistributed_tracing.sampler.remote_parent_not_samplederam usadas para a decisão de amostragem apenas quando os cabeçalhostraceparentetracestateestavam presentes. Agora, essas opções de configuração são aplicadas nos casos em que o cabeçalhotracestateestá ausente e quando apenas o cabeçalhonewrelicestá disponível. Essa mudança torna a amostragem distributed trace mais consistente e previsível. PR#3306
Important
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.22.0
recurso: Instrumentação em uma etapa para Kubernetes
O Kubernetes APM auto-attach automaticamente o aplicativo instrumentado e gerencia atualizações de agente dentro da implantação Kubernetes. Este recurso saiu da versão de pré-visualização e agora está disponível para o público em geral. Saiba mais sobre a anexação automática do Kubernetes. PR#2635 PR#3287
Recurso: Aviso de descontinuação do Ruby 2.4 e Ruby 2.5
O suporte ao agente Ruby para as versões 2.4 e 2.5 do Ruby está obsoleto e será removido na versão 10.0.0 do agente. A nova versão mínima necessária do Ruby será o Ruby 2.6 e pararemos de testar com o Ruby 2.4 e 2.5. PR#3288
Recurso: Aviso de descontinuação do comando
newrelic deploymentsO suporte para gravação de implantação usando o comando
newrelic deploymentsagora está obsoleto e será removido na versão 10.0.0 do agente.No futuro, há uma série de maneiras automatizadas e manuais de registrar alterações no New Relic. Consulte nosso guia de Monitoramento de Alterações para obter uma lista de opções disponíveis. PR#3262
Recurso: Lembrete de descontinuação para rastreamento multiaplicativo
O rastreamento multiaplicativo foi descontinuado desde a versão principal 8.0.0 do Ruby Agente. Removeremos totalmente o suporte a ele na versão 10.0.0 do agente. PR#3288
Recurso: Garanta a compatibilidade com a alteração Ruby 3.5 para Method#source_location
O agente foi atualizado para analisar corretamente o valor de retorno de Method#source_location, que está mudando no Ruby 3.5 de uma matriz de dois elementos para uma de cinco elementos. Essa alteração mantém o suporte para versões mais antigas do Ruby e, ao mesmo tempo, adiciona suporte para a versão futura. PR#3257
Important
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 New Relic Ruby política de fim de vida útil do agente para obter informações sobre lançamentos de agentes e datas de suporte.
v9.21.0
Recurso: No modo Serverless APM, use o nome da origem do evento como prefixo do nome da transação
O agente agora usará o nome da fonte do evento como prefixo para o nome da transação no modo Serverless APM. Isso ajudará a identificar melhor a origem da transação na interface do usuário do New Relic. PR#3245
Bugfix: Reverter a lógica alterada de como rastreamos o thread em que o intervalo começa
Essa alteração restaura o comportamento anterior de rastrear o thread em que o intervalo começa, resolvendo problemas que surgiram da lógica atualizada. Obrigado @david-zw-liu por nos alertar sobre isso. PR#3248