Naar hoofdinhoud gaan
Active Job is een framework voor het declareren van jobs en het uitvoeren ervan op een verscheidenheid aan queuing-backends die met Rails worden meegeleverd. De Active Job-integratie trackt de uitvoering en events van de uitgevoerde job. Wanneer AppSignal Active Job-metrics detecteert, maakt het een Magic Dashboard aan, zodat u kernmetrics visueel kunt monitoren.

Ondersteunde adapters

De Active Job-integratie ondersteunt alle Active Job-adapters. Het kan ook ondersteuning bieden voor adapters die niet op die pagina worden vermeld en die toegankelijk zijn via een aparte gem. Houd er echter rekening mee dat deze adapters niet getest zijn.

Integratie met door AppSignal ondersteunde libraries

De volgende background job-libraries die AppSignal ondersteunt, worden automatisch geïntegreerd met Active Job, waardoor AppSignal u diepgaandere performance-inzichten kan geven:

Errors rapporteren bij job-discard

Zet de activejob_report_errors config-optie op discard om alleen errors te rapporteren wanneer een job wordt weggegooid. Wanneer een job wordt weggegooid, zijn alle retry-pogingen uitgeput en wordt de job niet meer opnieuw geprobeerd. Lees de Active Job-documentatie voor meer informatie over Active Job exception handling en mislukte job-retries.
class ExampleJob < ActiveJob::Base
  # Configure the retry attempts using the `retry_on` method
  retry_on StandardError, :attempts => 2

  # ...
end
Sommige Active Job-adapters (zoals Sidekiq, Delayed::Job, enz.) hebben hun eigen retry-systeem. Nadat Active Job zijn retries heeft uitgeput, kunnen deze libraries hun eigen job-retry-systeem activeren.Dit retryt jobs zelfs nadat Active Job zijn retries heeft uitgeput en de job heeft weggegooid. Om te voorkomen dat jobs opnieuw worden geprobeerd nadat Active Job is gestopt met retrying en dat er errors voor die retries worden gerapporteerd, zorgt u ervoor dat het retry-systeem van de adapter is uitgeschakeld.Wanneer u vertrouwt op het retry-systeem van Sidekiq, configureer het dan ook om alleen errors te rapporteren bij discard, zodat er geen meerdere keren errors worden gerapporteerd.

Metadata

AppSignal verzamelt de volgende metadata voor Active Job-jobs:
MetadataBeschrijving
Active Job IDDe Active Job-ID die door de Active Job-adapter wordt gerapporteerd.
ArgumentsArgumenten doorgegeven aan de job bij het aanroepen van perform_later.
EventsAlle *.active_job events.
Job-naambv. MyBackgroundJob#perform zoals gebruikt om de job voor AppSignal-incidenten te groeperen.
PriorityDe prioriteit van de sample, als een adapter wordt gebruikt die job-prioriteit ondersteunt.
Provider job IDDe job-ID die door de Active Job-adapter wordt gerapporteerd.
QueueDe queue-naam van de sample, als een adapter wordt gebruikt die meerdere queues ondersteunt.
Queue time*Verstreken tijd vanaf het in de queue plaatsen van een job tot de uitvoering.
*Vanaf Rails versie 6 worden queue times gerapporteerd voor de namespace waaruit ze worden gerapporteerd en kunnen ze worden bekeken in AppSignal’s Performance Graphs. AppSignal gebruikt Active Job-metadata om u diepere contextuele inzichten te geven in job-performance. Bij het inspecteren van Active Job-samples in AppSignal:
  • De job-naam wordt gebruikt om de job voor AppSignal-incidenten te groeperen:
Example performance issues overview
  • Metadata (behalve job-naam en events) is beschikbaar als filterbare tags op incident-samples:
Example Active Job tags
  • *.active_job events worden weergegeven in de event timeline voor performance-samples:
Example Event timeline

Magic dashboard

Wanneer AppSignal Active Job-metrics ontvangt, maakt het een Active Job magic dashboard aan, beschikbaar vanuit de dashboard-sectie van de AppSignal-app. Het Active Job magic dashboard bevat de volgende grafieken:
GrafiekMetricsTags
Duur per job-klassetransaction_duration
  • namespace
  • action
  • Job-status per queueactive_job_queue_job_count
  • status
  • queue
  • Job-status per queue met prioriteitactive_job_queue_job_count
  • status
  • queue
  • priority
  • Throughput per job-klassetransaction_duration
  • namespace
  • action
  • Tags geven u een contextuele uitsplitsing van Active Job-performance-informatie; momenteel rapporteert AppSignal de volgende tags voor Active Job-jobs:
    NaamBeschrijving
    actionDe naam van de actie waaruit de metric werd gerapporteerd (bv.: YourWorker#perform).
    queueGenoemde queue waarin jobs worden verwerkt, bv. default of mailer.
    statusStatus van elke job, ofwel processed of failed.
    Jobs die failed zijn, worden ook geteld als processed.
    priorityDe prioriteit die aan elke job is toegekend, bv. 0 of 1.
    Elke tag wordt vertegenwoordigd door een gekleurde lijn op de grafiek: Example Actie Job dashboard

    Duur-per-job-klasse-grafiek

    De Duur-per-job-klasse-grafiek toont de hoeveelheid tijd die jobs nodig hadden om te worden uitgevoerd, gegroepeerd op de klasse die de job definieert. U kunt deze grafiek gebruiken om de performance van jobs per klasse te monitoren, wat u een overzicht geeft van de job-performance en u in staat stelt om snel pieken in de uitvoeringstijd te identificeren en te onderzoeken.

    Job-status-per-queue-grafiek

    De Job-status-per-queue-met-prioriteit-grafiek toont het aantal jobs dat werd uitgevoerd, gegroepeerd op hun resulterende status, op de queue waarin ze in de wachtrij werden geplaatst. U kunt deze grafiek gebruiken om job-error-aantallen en performance te monitoren op basis van queue, knelpunten te identificeren en uw background jobs te optimaliseren voor schaalbaarheid.

    Job-status-per-queue-met-prioriteit-grafiek

    Niet alle Active Job-adapters ondersteunen job-prioriteit. Als jobs geen prioriteitswaarden hebben, is de grafiek leeg.
    De Job-status-per-queue-met-een-prioriteit-grafiek toont het aantal jobs dat werd uitgevoerd, gegroepeerd op hun resulterende status op de queue waarin ze in de wachtrij werden geplaatst, en op de prioriteit die aan hen werd toegekend. U kunt deze grafiek gebruiken om job-error-aantallen en performance te monitoren op basis van queue en prioriteit, knelpunten te identificeren en uw background jobs te optimaliseren voor schaalbaarheid.

    Throughput-per-job-klasse-grafiek

    De Throughput-per-job-klasse-grafiek toont het aantal jobs dat werd uitgevoerd, gegroepeerd op de klasse die de job definieert. U kunt deze grafiek gebruiken om te monitoren hoeveel jobs er worden uitgevoerd, gegroepeerd op de klasse die de job definieert.