diff --git a/docker-compose.yml b/docker-compose.yml index 7ee7f33..5b8868e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -54,6 +54,8 @@ services: - 3002:9090 volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml + extra_hosts: + - "host.docker.internal:host-gateway" redis: image: redis:alpine ports: diff --git a/src/bull/bullmq-metrics.factory.ts b/src/bull/bullmq-metrics.factory.ts index 44a74ac..9d6a1ce 100644 --- a/src/bull/bullmq-metrics.factory.ts +++ b/src/bull/bullmq-metrics.factory.ts @@ -203,6 +203,7 @@ export class BullMQMetricsFactory { queueEvents.on('stalled', async (event) => { const job = await queue.getJob(event.jobId); + if (!job) { return; } const jobLabels = { [LABEL_NAMES.JOB_NAME]: job.name, ...labels, @@ -211,6 +212,7 @@ export class BullMQMetricsFactory { }); queueEvents.on('active', async (event) => { const job = await queue.getJob(event.jobId); + if (!job) { return; } const jobLabels = { [LABEL_NAMES.JOB_NAME]: job.name, ...labels, @@ -219,6 +221,7 @@ export class BullMQMetricsFactory { }); queueEvents.on('waiting', async (event) => { const job = await queue.getJob(event.jobId); + if (!job) { return; } const jobLabels = { [LABEL_NAMES.JOB_NAME]: job.name, ...labels, @@ -227,6 +230,7 @@ export class BullMQMetricsFactory { }); queueEvents.on('failed', async (event) => { const job = await queue.getJob(event.jobId); + if (!job) { return; } const errorType = job.stacktrace[job.stacktrace.length - 1]?.match( /^(?[^:]+):/, )?.groups?.errorType; @@ -240,6 +244,7 @@ export class BullMQMetricsFactory { }); queueEvents.on('delayed', async (event) => { const job = await queue.getJob(event.jobId); + if (!job) { return; } const jobLabels = { [LABEL_NAMES.JOB_NAME]: job.name, ...labels, @@ -248,6 +253,7 @@ export class BullMQMetricsFactory { }); queueEvents.on('completed', async (event) => { const job = await queue.getJob(event.jobId); + if (!job) { return; } const jobLabels = { [LABEL_NAMES.JOB_NAME]: job.name, ...labels,