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

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Delayed::Job instrumentation

O agente Ruby possui instrumentação integrada para a biblioteca Delayed::Job . Nenhuma instrumentação adicional é necessária.

Visualizando tarefas em segundo plano

Contanto que a gema ou plug-in do agente New Relic Ruby seja carregado antes do início do trabalhador Delayed::Job , todas as tarefas serão monitoradas com o mesmo nível de detalhe que as ações do controlador. Para visualizar as próprias ações:

  1. Vá para

    one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions

    .

  2. Na página

    Transactions

    do APM, selecione

    Other transactions

    .

Adicionando atributo personalizado

Se quiser adicionar um atributo personalizado às suas transações Delayed::Job , você pode escrever um plug-in Delayed::Job através de um gancho de ciclo de vida e adicionar esses atributos à transação para cada trabalho executado.

  1. Crie um plug-in com a seguinte estrutura:

    module NewRelicInstrumenter
    class DelayedJobPlugin < Delayed::Plugin
    callbacks do |lifecycle|
    lifecycle.around(:invoke_job) do |job, *args, &block|
    # Forward the call to the next callback in the callback chain
    ::NewRelic::Agent.add_custom_attributes(
    {
    # Any custom attributes go here -- from here you can access info
    # about the job like run_at, created_at, etc
    my_custom_attribute: "my_custom_attribute_value"
    }
    )
    block.call(job, *args)
    end
    end
    end
    end
  2. Adicione o plug-in a Delayed::Job no inicializador do arquivo config/initializers/delayed_job.rb :

    require "new_relic_instrumenter"
    Delayed::Worker.plugins << NewRelicInstrumenter::DelayedJobPlugin

Resolução de problemas

O agente Ruby depende da capacidade de identificar que está sendo executado em Delayed::Job para configurar corretamente a instrumentação. Para fazer isso, ele examina o nome do script (a variável $0 em Ruby) para ver se termina com delayed_job.

Se você tiver renomeado o script usado para iniciar seus trabalhadores delayed_job para outro nome ou se tiver um script personalizado com um nome diferente, será necessário informar explicitamente ao agente que está usando Delayed::Job definindo o NEW_RELIC_DISPATCHER para delayed_job ao iniciar seus trabalhadores Delayed::Job . Por exemplo:

bash
$
NEW_RELIC_DISPATCHER=delayed_job bundle exec ./script/my_custom_script

Se parecer que os jobs não estão sendo monitorados, revise o arquivo newrelic_agent.log gerado quando o trabalhador for inicializado. Deve indicar se o agente detecta Delayed e se comunica com o servidor. Se você não encontrar um log ou se ainda não conseguir determinar por que as tarefas não aparecem, obtenha suporte em support.newrelic.com.

Copyright © 2024 New Relic Inc.

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