Platform Introduction
QueueWatch is an operational reliability and SRE diagnostics platform built to monitor, investigate, and triage distributed asynchronous processes. By hooking directly into your background queues and worker runtimes, QueueWatch extracts real-time event logs, stack traces, and worker processing metrics. It generates active dependency topology maps and detects incident bottlenecks automatically, providing SREs with actionable resolution runbooks.
Installing the SDK
Deploy our lightweight, non-blocking telemetry collector directly into your background worker processes. The SDK collects and streams processing performance data asynchronously to avoid overhead on your active job pipelines.
$ npm install @queuewatch/nodeCreate a Project
QueueWatch segments telemetry event records using distinct projects. This allows you to separate dashboards for staging, production, or individual microservices:
- Open the QueueWatch Console.
- Click the project selector in the left sidebar and select + Create Project.
- Enter a descriptive name (e.g.,
Checkout API - Production). - Copy the credentials from the project setup panel and assign them in your environment settings (
.env):
# QueueWatch Project Credentials
QUEUEWATCH_PROJECT_ID=proj_1780690458226_qffyus
QUEUEWATCH_API_KEY=qw_pk_70ycesng1mlqril8
QUEUEWATCH_ENDPOINT=http://localhost:3001API Credentials Security
Authentication tokens authorize your background queues to transmit telemetry to our SRE event ingestion brokers. Keep these tokens secure.
BullMQ Integration
To capture metrics, import the SDK and wrap your active BullMQ queues. This hooks onto queue listeners and streams telemetry indicators to your designated ingestion server:
import { monitorQueue } from '@queuewatch/node';
import { Queue } from 'bullmq';
// 1. Initialize your BullMQ Queue as usual
const paymentQueue = new Queue('payment_processing', {
connection: { host: 'localhost', port: 6379 }
});
// 2. Attach QueueWatch telemetry listeners
monitorQueue(paymentQueue, {
projectId: process.env.QUEUEWATCH_PROJECT_ID,
apiKey: process.env.QUEUEWATCH_API_KEY,
endpoint: process.env.QUEUEWATCH_ENDPOINT,
queueName: 'payment_processing'
});Tracked Telemetry Events
Once wrapped with the monitorQueue function, the SDK automatically listens for and transmits the following state transitions:
Structured Log Correlation
Forward application logs from inside workers to automatically link trace logs directly with active SRE incident reports in the console. This correlation helps isolate issues instantly:
import { queuewatchLogger } from '@queuewatch/node';
// Stream structured SRE logs from inside your worker execution blocks:
worker.on('active', (job) => {
queuewatchLogger.info('Job started processing', {
jobId: job.id,
queueName: 'payment_processing',
traceId: `tr_${job.id}`
});
});Troubleshooting & Support
If your console dashboard continues to show the onboarding waiting screen, verify the following:
1. Confirm Port Bindings & Endpoints
By default, the SDK communicates with the endpoint on http://localhost:3001. Ensure your API server is actively listening on port 3001 and is accessible from your worker nodes.
2. Verify Project IDs & Secret Tokens
Double check that the QUEUEWATCH_API_KEY matches the exact string shown under the SDK Setup & Keys tab inside the Console, and matches the active QUEUEWATCH_PROJECT_ID.
3. Check Redis Connection State
Verify that your local Redis container is up and running. In standard environments, you can verify this by checking if the docker container is active on port 6379.
curl http://localhost:3001/health from your worker server to verify network connectivity to the QueueWatch event API.