diff --git a/packages/events/package.json b/packages/events/package.json index a72819598..54109ef94 100644 --- a/packages/events/package.json +++ b/packages/events/package.json @@ -24,6 +24,7 @@ "@ctrlplane/validators": "workspace:*", "@t3-oss/env-core": "catalog:", "bullmq": "catalog:", + "bullmq-otel": "^1.0.1", "date-fns": "^4.1.0", "ioredis": "^5.4.1", "lodash": "catalog:", diff --git a/packages/events/src/index.ts b/packages/events/src/index.ts index fca20938c..54ba76dc8 100644 --- a/packages/events/src/index.ts +++ b/packages/events/src/index.ts @@ -1,5 +1,6 @@ import type { Job, WorkerOptions } from "bullmq"; import { Queue, Worker } from "bullmq"; +import { BullMQOtel } from "bullmq-otel"; import { logger } from "@ctrlplane/logger"; @@ -18,6 +19,7 @@ export const createWorker = ( removeOnComplete: { age: 1 * 60 * 60, count: 5000 }, removeOnFail: { age: 12 * 60 * 60, count: 5000 }, concurrency: 50, + telemetry: new BullMQOtel("ctrlplane/event-worker"), ...opts, }); }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c9e05967..f86ed43ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1169,6 +1169,9 @@ importers: bullmq: specifier: 'catalog:' version: 5.48.1 + bullmq-otel: + specifier: ^1.0.1 + version: 1.0.1 date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -6962,6 +6965,9 @@ packages: resolution: {integrity: sha512-sWm8iPbqvL9+5SiYxXH73UOkyEbGQg7kyHQmReF89WJHQJw2eV4P/yZ0E+b71cczJ4pPobVhXxgQcmfSTgGHxQ==} engines: {node: '>= 0.10.x'} + bullmq-otel@1.0.1: + resolution: {integrity: sha512-9SSBA/iq8bFUJ9I5bDwv1UmtbJAmIGHt796g5lsYZWasqouTqkFA3+Z/n17mCc8VzfxxygCCCBsXdC1mICbxdw==} + bullmq@5.48.1: resolution: {integrity: sha512-WA/NlPwmxgbDsL8KGIkQvGlRkBdVAyRiypP+Witm6Tyd2PwnBQ8K62ifnlA16rF59vpnEKwO+rmh/ZM7gKmDqg==} @@ -18157,6 +18163,13 @@ snapshots: hexer: 1.5.0 xtend: 4.0.2 + bullmq-otel@1.0.1: + dependencies: + '@opentelemetry/api': 1.9.0 + bullmq: 5.48.1 + transitivePeerDependencies: + - supports-color + bullmq@5.48.1: dependencies: cron-parser: 4.9.0