• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Delayed::Job instrumentation

L'agent Ruby dispose d'une instrumentation intégrée pour la bibliothèque Delayed::Job . Aucune instrumentation supplémentaire n'est requise.

Affichage des tâches en arrière-plan

Tant que le gem ou le plugin de l'agent Ruby New Relic est chargé avant le démarrage du travailleur Delayed::Job, toutes les tâches seront monitorées avec le même niveau de détail que les actions du contrôleur. Pour visualiser les actions elles-mêmes :

  1. Allez à one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions.
  2. Depuis la page APM Transactions , sélectionnez Other transactions.

Ajout d'attribut personnalisé

Si vous souhaitez ajouter des attributs personnalisés à vos transactions Delayed::Job , vous pouvez écrire un plugin Delayed::Job via un hook de cycle de vie et ajouter ces attributs à la transaction pour chaque tâche exécutée.

  1. Créez un plugin avec la structure suivante :

    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. Ajoutez le plugin à Delayed::Job dans l'initialiseur dans le fichier config/initializers/delayed_job.rb :

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

Dépannage

L'agent Ruby doit pouvoir identifier qu'il s'exécute sous Delayed::Job afin de configurer correctement l'instrumentation. Pour ce faire, il examine le nom du script (la variable $0 dans Ruby) pour voir s'il se termine par delayed_job.

Si vous avez renommé le script que vous utilisez pour démarrer vos travailleurs delayed_job en quelque chose d'autre, ou si vous avez un script personnalisé avec un nom différent, vous devrez indiquer explicitement à l'agent que vous utilisez Delayed::Job en définissant la variable d'environnement NEW_RELIC_DISPATCHER sur delayed_job lors du démarrage de vos travailleurs Delayed::Job . Par exemple:

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

S'il semble que les tâches ne sont pas monitorées, examinez le fichier newrelic_agent.log généré au démarrage du travailleur. Il doit indiquer si l'agent détecte Delayed et communique avec le serveur. Si vous ne trouvez pas de log ou si vous ne parvenez toujours pas à déterminer pourquoi les tâches n'apparaissent pas, obtenez de l'aide sur support.newrelic.com.

Droits d'auteur © 2025 New Relic Inc.

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