Skip to main content
Monocle tracks your background job activity with a dedicated Jobs dashboard. You get visibility into job throughput, error rates, processing times, and queue delays across all your queues.

What Monocle tracks

  • Throughput over time with success/error breakdown
  • Error rate trends to spot problematic jobs
  • Processing time (average and P95) per job
  • Queue time between dispatch and processing start
  • Retry attempts and failure reasons
  • Per-job detail pages with recent executions and error breakdown

How it works

Monocle creates two types of spans for each job:
  • A producer span when a job is dispatched (enqueued)
  • A consumer span when a job is processed by a worker
These spans carry standardized OpenTelemetry Messaging Semantic Conventions attributes, so the Jobs dashboard can aggregate metrics regardless of which queue library you use.

Span attributes

All job instrumentations must emit these attributes for the Jobs dashboard to work correctly.

Standard semconv attributes

These follow the official OpenTelemetry Messaging Semantic Conventions:
AttributeDescription
messaging.systemQueue system identifier (e.g., "bullmq")
messaging.destination.nameQueue name
messaging.operation.type"send" for producers, "process" for consumers
messaging.operation.nameOperation name (e.g., Queue.add, Worker.run)
messaging.message.idJob ID
messaging.client.idWorker name (consumer spans)
messaging.batch.message_countNumber of jobs in bulk operations
messaging.message.retry.countNumber of retry attempts

Monocle attributes

These custom attributes power specific dashboard features:
AttributeDashboard Feature
messaging.job.nameJob name grouping, per-job detail page
messaging.operation.typeDistinguishing published vs processed jobs in throughput charts
messaging.job.queue_time_msQueue time metrics and charts
entry_point.type = "job"Identifies the span as a job entry point, used for dashboard routing

Supported libraries

BullMQ

Redis-backed job queue with priorities, retries, rate limiting, and flows

boringnode/queue

Lightweight job queue for Node.js. Instrumentation is built into the Monocle agent when @boringnode/queue is installed.

Getting started

See the individual instrumentation pages above for setup instructions, or the AdonisJS guide if you are using AdonisJS.