{"_id":"@message-queue-toolkit/metrics","_rev":"15-dc42ed41048766e8b24d3bd25944b0de","name":"@message-queue-toolkit/metrics","dist-tags":{"latest":"6.0.0"},"versions":{"1.0.0":{"name":"@message-queue-toolkit/metrics","version":"1.0.0","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@1.0.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"7cec7fad602ef913e2b80446704f0b62556c60f6","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-1.0.0.tgz","fileCount":8,"integrity":"sha512-xUrbV5CKYvjKVyi6aymMrOVj4K9rNZgVQefyG8c66bSbfPCxrT7K1SvqxvtFnhkaUq9U2TGhA+WHi/IU/8IB2w==","signatures":[{"sig":"MEUCIQCuuvk5nG7vkmtqPhn9xOaFArOre1uCidGNe13L7wDCVgIgGyenC3FU5cyM+dckCf81PFhS7ZcEvQwTAnhkzmBIzZI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8401},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"37bbd0e470809f6fde6553190d90b6bf505ae31d","private":false,"scripts":{"lint":"biome check . && tsc --project tsconfig.json --noEmit","test":"vitest","build":"del-cli dist && del-cli coverage && tsc","test:ci":"npm run test:coverage","lint:fix":"biome check --write .","build:release":"del-cli dist && del-cli coverage && npm run lint && tsc --project tsconfig.release.json","test:coverage":"npm test -- --coverage","prepublishOnly":"npm run build:release"},"_npmUser":{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"10.9.0","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@lokalise/node-core":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.5","del-cli":"^6.0.0","typescript":"^5.7.2","@biomejs/biome":"1.9.4","@vitest/coverage-v8":"^2.1.5","@kibertoad/biome-config":"^1.2.1"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=18.1.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_1.0.0_1736416748154_0.5504199566560055","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@message-queue-toolkit/metrics","version":"2.0.0","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@2.0.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"c1478153d5b8853c3d0746b00bbd434092aa5fad","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-2.0.0.tgz","fileCount":17,"integrity":"sha512-PajAmdx/74l4hBTWCpRDqya7JM4Fx+5xHyMX27bpDloQEeOw4/YOftRuNDVxeVVbP17f1KiF3QIhLZGS7vhr2g==","signatures":[{"sig":"MEUCIQCd5P0uGUJt12XXIUt3ozFSRuyzqsXvfX0i6b49Sn2hOQIgZVLZIYMjBude0hkXSPQjn2fjYqkM+EUrLYLIfQOUmKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15233},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"799a0b87fd65aee3fb2a93fa8d37494bed2a4475","private":false,"scripts":{"lint":"biome check . && tsc --project tsconfig.json --noEmit","test":"vitest","build":"del-cli dist && del-cli coverage && tsc","test:ci":"npm run test:coverage","lint:fix":"biome check --write .","build:release":"del-cli dist && del-cli coverage && npm run lint && tsc --project tsconfig.release.json","test:coverage":"npm test -- --coverage","prepublishOnly":"npm run build:release"},"_npmUser":{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"10.9.0","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@lokalise/node-core":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.5","del-cli":"^6.0.0","typescript":"^5.7.2","@biomejs/biome":"1.9.4","@vitest/coverage-v8":"^2.1.5","@kibertoad/biome-config":"^1.2.1"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_2.0.0_1737975347995_0.18567901205758908","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@message-queue-toolkit/metrics","version":"3.0.0","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@3.0.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"1d16778920845c4c9ff2bfca232eac7d3ed114fa","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-3.0.0.tgz","fileCount":26,"integrity":"sha512-DNjCyWnvdsdtSBAwBEDjJS/XYjY+Ij5beqFevqsRcPOl2VH2rA4egH4pJzsHzZCIBskuO97gcRCey6HPIoKA5w==","signatures":[{"sig":"MEUCIDpBE/8hTQT1gtDODlaZqAVV6OfmtSJIT5AYjqbd3qLvAiEA9rUnH3oktZu2wMVzgN2raOSb/3/lr98c+fiaNEPeCS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18586},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fe615b8027d028e1b39ac6fc2acbe61c8782bf3c","private":false,"scripts":{"lint":"biome check . && tsc --project tsconfig.json --noEmit","test":"vitest","build":"del-cli dist && del-cli coverage && tsc","test:ci":"npm run test:coverage","lint:fix":"biome check --write .","build:release":"del-cli dist && del-cli coverage && npm run lint && tsc --project tsconfig.release.json","test:coverage":"npm test -- --coverage","prepublishOnly":"npm run build:release"},"_npmUser":{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"10.9.0","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@lokalise/node-core":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.7","del-cli":"^6.0.0","typescript":"^5.7.2","@biomejs/biome":"1.9.4","@vitest/coverage-v8":"^3.0.7","@kibertoad/biome-config":"^1.2.1"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_3.0.0_1741602761308_0.9213134100330749","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@message-queue-toolkit/metrics","version":"4.0.0","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.0.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"4fb61b50edf2f35f51c036930d79619d0f6fa21c","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.0.0.tgz","fileCount":26,"integrity":"sha512-SfYsDUdWBKUSAj0nEx/gRTtHstZcH15yfCZO+GMC+0FHk4AAL6MgZQ1yFMf4wX2VZIrCWugaEY5Iva1DyjDdcw==","signatures":[{"sig":"MEYCIQCf9l3AZSwf4WMT2ENd2govYpU3BYXPJ69mfS/m3rCNlQIhANL147dKai05So3S9xQvwpn2dXHr5cvXl5LK5pvBbvPu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17345},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"ce2e611fcc2fe3329b247d8f128b9ff6f7c6c87d","private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"npm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","test:ci":"npm run test:coverage","lint:fix":"biome check --write .","test:coverage":"npm test -- --coverage","prepublishOnly":"npm run lint && npm run build"},"_npmUser":{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@lokalise/node-core":"^13.3.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^3.0.7","typescript":"^5.7.2","@biomejs/biome":"1.9.4","@lokalise/tsconfig":"^1.3.0","@vitest/coverage-v8":"^3.0.7","@lokalise/biome-config":"^2.0.0","@message-queue-toolkit/core":"*"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.0.0_1745916233455_0.8810942039773075","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@message-queue-toolkit/metrics","version":"4.0.1","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.0.1","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"7b51f97353cff6d6ca8159bb23352940138c2f0a","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.0.1.tgz","fileCount":26,"integrity":"sha512-csRBL4UbsIkf9JUpNcjyNAmXse0UrDiz6m4dXHMWoD0uDCulqBhTIbk0iyEVUEyA1TSXAcFv5lXMp4SEFOJS0Q==","signatures":[{"sig":"MEUCIQD06nFXA6CcKlm7a9GoYuytOXCbAaRrIFFrI5LqDd49BQIgPZyMlC295Evlfmt68y3suBQHhw9XvmDzeuBIZKvsgps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17305},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"ad6c6a35c36440ce58ae92a12215be006df2a8b4","private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"npm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"npm run test -- --coverage","prepublishOnly":"npm run lint && npm run build"},"_npmUser":{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@lokalise/node-core":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^3.0.7","typescript":"^5.7.2","@biomejs/biome":"1.9.4","@lokalise/tsconfig":"^1.3.0","@vitest/coverage-v8":"^3.0.7","@lokalise/biome-config":"^2.0.0","@message-queue-toolkit/core":"*"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.0.1_1747219645453_0.3321369474837359","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@message-queue-toolkit/metrics","version":"4.1.0","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.1.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"441b5623872ca59be2c3a2b9c7f9e73ee49098f4","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.1.0.tgz","fileCount":29,"integrity":"sha512-m69ZypYuiGdCBdCPT8qRgJ2se7ZpNZ84LfOs1RtYChhTle4PUB7UozRTPlyKEAyvtTrmc4eZFThfNFKvlbw/SA==","signatures":[{"sig":"MEYCIQCFMCtkMrGl034UVfnFsHb8vcxzuPN6K7ztpILPQxMefAIhAO4SHvsnWl7wtaQI2Ezs25Y7bOhQkco9x+Qtg1Z81Efz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19110},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"aff25ac556d91338bca85d22326e22fed8df8edb","private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"npm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"npm run test -- --coverage","prepublishOnly":"npm run lint && npm run build"},"_npmUser":{"name":"carlos_gamero","actor":{"name":"carlos_gamero","type":"user","email":"carlos.gamero@lokalise.com"},"email":"carlos.gamero@lokalise.com"},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@lokalise/node-core":"^14.0.1"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^3.0.7","typescript":"^5.7.2","@biomejs/biome":"^1.9.4","@lokalise/tsconfig":"^2.0.0","@vitest/coverage-v8":"^3.0.7","@lokalise/biome-config":"^2.0.0","@message-queue-toolkit/core":"*"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.1.0_1752155033996_0.5645939568026295","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"@message-queue-toolkit/metrics","version":"4.1.1","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.1.1","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"ca667784ed743de477fbed017b0edae9f748d129","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.1.1.tgz","fileCount":29,"integrity":"sha512-OB4ZbH+cJkBqKaxj9Uvs9OjZMry3r2bBZGVZDLI7I2AfP8oJuiaeCfcw2tvEKdmPOj+Zpv6+uVJRvhFbqDRsTw==","signatures":[{"sig":"MEUCIAvbUvtNN+SxuCdoGJia2dNd2352k00pF1XkWhKr/9TNAiEA0L0pdH/NNlihlRrtxqYWOC7XBOEQHlDejxHOI3Vam1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19370},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"719d8162dc587db7f2db4081c0bd018e89eab950","private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"npm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"npm run test -- --coverage","prepublishOnly":"npm run lint && npm run build"},"_npmUser":{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@lokalise/node-core":"^14.0.1","@lokalise/universal-ts-utils":"^4.4.1"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^3.0.7","typescript":"^5.7.2","@biomejs/biome":"^1.9.4","@lokalise/tsconfig":"^2.0.0","@vitest/coverage-v8":"^3.0.7","@lokalise/biome-config":"^2.0.0","@message-queue-toolkit/core":"*"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.1.1_1752591581638_0.3956498265564554","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"@message-queue-toolkit/metrics","version":"4.4.0","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.4.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"vsevostianov","email":"vsevolod.sevostyanov@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"38321a9e1e074f8d384806bd192d59daa178ee21","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.4.0.tgz","fileCount":35,"integrity":"sha512-s5MzUSx2SPb84JLctTock9A1BPfDmcxAdWhmtBAzH0SNtz30adii0qf4gVjGswu1CkZAZrmRLnZ0+v+iM6Fslw==","signatures":[{"sig":"MEYCIQCtj3/DaMrdwTPwhfYuJ0g9qCQ4zYMCcIegGDU076uyUQIhAI8p+QOgDCMqdMT/6PqyQYqbIoc/nvNHONC6N+JnxexP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@message-queue-toolkit%2fmetrics@4.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30465},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"0044ca8d28100dcd6c464837ad84ed1adf9bd9ee","private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"npm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"npm run test -- --coverage","prepublishOnly":"npm run lint && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7101b407-98f4-4f9a-a365-6bd7e22715c9"}},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@lokalise/node-core":"^14.2.0","@lokalise/universal-ts-utils":"^4.5.1"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^4.0.15","typescript":"^5.9.3","@biomejs/biome":"^2.3.2","@lokalise/tsconfig":"^3.0.0","@vitest/coverage-v8":"^4.0.15","@lokalise/biome-config":"^3.1.0","@message-queue-toolkit/core":"*"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.4.0_1773675929745_0.144005281543367","host":"s3://npm-registry-packages-npm-production"}},"4.4.1":{"name":"@message-queue-toolkit/metrics","version":"4.4.1","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.4.1","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"vsevostianov","email":"vsevolod.sevostyanov@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"0a354967cfb5b74746afe2faf1d50b7fc3fd5b1a","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.4.1.tgz","fileCount":35,"integrity":"sha512-WNfH+6l5Kn/YqqIjgBbCcNbeibOzxa8+ESQxQR+Hzugmha9zCUFOavN5hdAm5cGR8UKB4B2TfN90/RXSxuVW+Q==","signatures":[{"sig":"MEUCIQDwTF+FkRk0XN+fp2bYvVGtomGk/iPOZSpwmLGd3WglQQIgNTBlOCsFcR6Hb1lrYh5mppi8POxn2CRWm1wZ6g/cHZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@message-queue-toolkit%2fmetrics@4.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30948},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"bb974b224f3ea8373a8c496b48347c059baa4efb","private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"npm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"npm run test -- --coverage","prepublishOnly":"npm run lint && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7101b407-98f4-4f9a-a365-6bd7e22715c9"}},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@lokalise/node-core":"^14.2.0","@lokalise/universal-ts-utils":"^4.5.1"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^4.0.15","typescript":"^5.9.3","@biomejs/biome":"^2.3.2","@lokalise/tsconfig":"^3.0.0","@vitest/coverage-v8":"^4.0.15","@lokalise/biome-config":"^3.1.0","@message-queue-toolkit/core":"*"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.4.1_1773679932660_0.5136598966946975","host":"s3://npm-registry-packages-npm-production"}},"4.4.2":{"name":"@message-queue-toolkit/metrics","version":"4.4.2","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.4.2","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"vsevostianov","email":"vsevolod.sevostyanov@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","bugs":{"url":"https://github.com/kibertoad/message-queue-toolkit/issues"},"dist":{"shasum":"14086a359d03dae8bceaa0a7f4eb4181c0b1f035","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.4.2.tgz","fileCount":35,"integrity":"sha512-UOwXRa0+N/2ZqYOygL6Q10mPxMcyYHlbFgnyFMT4j4yt9WcZS5lV0kPDUky3AGg3D3D0qQmA2jxvUbY/2inOAg==","signatures":[{"sig":"MEUCIDpJiSxeMQCC1MYiWJ7lgEKhZ2oPi8oHvhURfo994Um2AiEA0G1rgEO5PcepZD8pnW1manFiYCk8nBIShZLQkv3H+ac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@message-queue-toolkit%2fmetrics@4.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30949},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./package.json":"./package.json"},"gitHead":"6a526cde6cc7e9ab69a244fd60e591af004fe7d6","private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"npm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"npm run test -- --coverage","prepublishOnly":"npm run lint && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7101b407-98f4-4f9a-a365-6bd7e22715c9"}},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"_npmVersion":"11.9.0","description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@lokalise/node-core":"^14.2.0","@lokalise/universal-ts-utils":"^4.5.1"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^4.0.15","typescript":"^5.9.3","@biomejs/biome":"^2.3.2","@lokalise/tsconfig":"^3.0.0","@vitest/coverage-v8":"^4.0.15","@lokalise/biome-config":"^3.1.0","@message-queue-toolkit/core":"*"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.4.2_1773680245145_0.08264987895361986","host":"s3://npm-registry-packages-npm-production"}},"4.4.3":{"name":"@message-queue-toolkit/metrics","version":"4.4.3","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.4.3","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"vsevostianov","email":"vsevolod.sevostyanov@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","dist":{"shasum":"68858e6dec1d621e6338793cd44518e14d5e34f1","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.4.3.tgz","fileCount":36,"integrity":"sha512-h1KTe4BXDoASZLvzcw4K9+Tq0R1Foz2iDhSZ7T2fVuOiX9vSdsgeSZHtjqKdU7VIA34ncu7GTBXrng/Zp2S1zA==","signatures":[{"sig":"MEUCIG+1kfdP7Efb8wMUPwUxYx3SRbfJC3vW+zg3VAQ97XPCAiEA5xpqcV9s9u8l3ok0TZRjZehK2R9+aQfj+qOJcnLSePA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@message-queue-toolkit%2fmetrics@4.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31747},"main":"./dist/index.js","type":"module","exports":{".":"./dist/index.js","./package.json":"./package.json"},"private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"pnpm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"pnpm run test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7101b407-98f4-4f9a-a365-6bd7e22715c9"}},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@lokalise/node-core":"^14.2.0","@lokalise/universal-ts-utils":"^4.5.1"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^4.1.8","typescript":"^5.9.3","@biomejs/biome":"^2.4.16","@lokalise/tsconfig":"^3.0.0","@vitest/coverage-v8":"^4.1.8","@lokalise/biome-config":"^3.1.0","@message-queue-toolkit/core":"26.1.1"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.4.3_1781523332169_0.6700666038034657","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@message-queue-toolkit/metrics","version":"5.0.0","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@5.0.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"vsevostianov","email":"vsevolod.sevostyanov@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","dist":{"shasum":"e4dac17f302a27d9ead26251776abff242924194","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-5.0.0.tgz","fileCount":36,"integrity":"sha512-H987IFR6GnmOZhmtyk1eL9nsgag6QBjFUDIrHQVGqsksyM6g5lsr+R6KtdumW6kCh4doD9UCM+8s5lXo4D4nRw==","signatures":[{"sig":"MEYCIQChaharpXxW4x/qAsZe+Rx1kG0lCZnlcFDJ9Xv5/fNXTgIhAJS+Ri0We6F198O2K5VEyAclcUyRsFwtaXR1ihMaLyoh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@message-queue-toolkit%2fmetrics@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31749},"main":"./dist/index.js","type":"module","exports":{".":"./dist/index.js","./package.json":"./package.json"},"private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"pnpm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"pnpm run test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7101b407-98f4-4f9a-a365-6bd7e22715c9"}},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@lokalise/node-core":"^14.8.1","@lokalise/universal-ts-utils":"^4.11.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","vitest":"^4.1.10","typescript":"^7.0.2","@biomejs/biome":"^2.5.6","@lokalise/tsconfig":"^5.0.0","@vitest/coverage-v8":"^4.1.10","@lokalise/biome-config":"^3.1.1","@message-queue-toolkit/core":"27.0.0"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_5.0.0_1786359761084_0.9347487042999916","host":"s3://npm-registry-packages-npm-production"}},"4.4.4":{"name":"@message-queue-toolkit/metrics","version":"4.4.4","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"license":"MIT","_id":"@message-queue-toolkit/metrics@4.4.4","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"vsevostianov","email":"vsevolod.sevostyanov@lokalise.com"}],"homepage":"https://github.com/kibertoad/message-queue-toolkit","dist":{"shasum":"901015673616707292d2710e6a0b86220d6aa6a1","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-4.4.4.tgz","fileCount":36,"integrity":"sha512-eVk/X8SGIUfB1iydq87fDdpd8ok0FkdrjWAwnCjhHqlpWU8nEtta2JhVJ3WTlEpl1Qx3I3vTHGXw2u0LI8ieyw==","signatures":[{"sig":"MEUCIQCHuIk8FA0cCF1QmordfxGXq+nPWgwdEVNqYcfp/PwapgIgDRR/sxD95Oqf52dfXdm7Z2a0bpEmMInN6Z7v9ucWIzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@message-queue-toolkit%2fmetrics@4.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31750},"main":"./dist/index.js","type":"module","exports":{".":"./dist/index.js","./package.json":"./package.json"},"private":false,"scripts":{"lint":"biome check . && tsc","test":"vitest","build":"pnpm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint:fix":"biome check --write .","test:coverage":"pnpm run test --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7101b407-98f4-4f9a-a365-6bd7e22715c9"}},"repository":{"url":"git://github.com/kibertoad/message-queue-toolkit.git","type":"git"},"description":"Utilities for collecting metrics in message-queue-toolkit","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@lokalise/node-core":"^14.9.1","@lokalise/universal-ts-utils":"^4.11.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","vitest":"^4.1.11","typescript":"^7.0.2","@biomejs/biome":"^2.5.11","@lokalise/tsconfig":"^5.0.0","@vitest/coverage-v8":"^4.1.11","@lokalise/biome-config":"^3.1.1","@message-queue-toolkit/core":"26.2.1"},"peerDependencies":{"prom-client":">=15.0.0","@message-queue-toolkit/core":">=21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/metrics_4.4.4_1788429418199_0.662366297695111","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@message-queue-toolkit/metrics","version":"6.0.0","private":false,"license":"MIT","description":"Utilities for collecting metrics in message-queue-toolkit","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"vsevostianov","email":"vsevolod.sevostyanov@lokalise.com"}],"type":"module","main":"./dist/index.js","exports":{".":"./dist/index.js","./package.json":"./package.json"},"dependencies":{"@lokalise/node-core":"^14.9.1","@lokalise/universal-ts-utils":"^4.11.0"},"peerDependencies":{"@message-queue-toolkit/core":">=21.0.0","@prometheus-io/client":">=0.16.0 <1"},"devDependencies":{"@biomejs/biome":"^2.5.11","@lokalise/biome-config":"^3.1.1","@lokalise/tsconfig":"^5.0.0","@message-queue-toolkit/core":"26.2.0","@vitest/coverage-v8":"^4.1.11","rimraf":"^6.1.3","typescript":"^7.0.2","vitest":"^4.1.11"},"homepage":"https://github.com/kibertoad/message-queue-toolkit","repository":{"type":"git","url":"git://github.com/kibertoad/message-queue-toolkit.git"},"keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"scripts":{"build":"pnpm run clean && tsc --project tsconfig.build.json","clean":"rimraf dist","lint":"biome check . && tsc","lint:fix":"biome check --write .","test":"vitest","test:coverage":"pnpm run test --coverage"},"_nodeVersion":"24.20.0","_id":"@message-queue-toolkit/metrics@6.0.0","dist":{"integrity":"sha512-g6E/v8KAQnTxT4r2H+ch/X1n7IdcDcklE2BfF4BGZkoGgsBQuNvJTWfA1a9tL5JcrNPPU/11tM34rNwBs2rWZg==","shasum":"e89a0218b07f7294052a1b3a898dae9372c4b83e","tarball":"https://registry.npmjs.org/@message-queue-toolkit/metrics/-/metrics-6.0.0.tgz","fileCount":36,"unpackedSize":31920,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@message-queue-toolkit%2fmetrics@6.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAKvQRZWW7MvTuIj62edLCHRXKZ6Ni+PlHVQ+mmRDcc5AiBOoNjbMCM0XHcg1JmjAjIiqBb4vhXYz8aacQtXWDd0+Q=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7101b407-98f4-4f9a-a365-6bd7e22715c9"}},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/metrics_6.0.0_1788465617444_0.4972340306471461"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-09T09:59:08.046Z","modified":"2026-09-03T20:00:18.035Z","1.0.0":"2025-01-09T09:59:08.312Z","2.0.0":"2025-01-27T10:55:48.167Z","3.0.0":"2025-03-10T10:32:41.556Z","4.0.0":"2025-04-29T08:43:53.621Z","4.0.1":"2025-05-14T10:47:25.620Z","4.1.0":"2025-07-10T13:43:54.188Z","4.1.1":"2025-07-15T14:59:41.799Z","4.4.0":"2026-03-16T15:45:29.872Z","4.4.1":"2026-03-16T16:52:12.811Z","4.4.2":"2026-03-16T16:57:25.303Z","4.4.3":"2026-06-15T11:35:32.308Z","5.0.0":"2026-08-10T11:02:41.221Z","4.4.4":"2026-09-03T09:56:58.330Z","6.0.0":"2026-09-03T20:00:17.622Z"},"license":"MIT","homepage":"https://github.com/kibertoad/message-queue-toolkit","keywords":["message","queue","queues","abstract","common","utils","sqs","amqp","rabbitmq","rabbit"],"repository":{"type":"git","url":"git://github.com/kibertoad/message-queue-toolkit.git"},"description":"Utilities for collecting metrics in message-queue-toolkit","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"vsevostianov","email":"vsevolod.sevostyanov@lokalise.com"}],"readme":"# Metrics\n\nThis package contains utilities for collecting metrics in `@message-queue-toolkit`.\n\n## Installation\n\n```sh\nnpm install @message-queue-toolkit/metrics @prometheus-io/client\n```\n\n## Overview\n\nAll metrics implement the `MessageMetricsManager` interface from `@message-queue-toolkit/core`, which means they can be passed directly to any `AbstractQueueService` via the `messageMetricsManager` option.\n\n```ts\nimport { PrometheusMessageProcessingTimeMetric } from '@message-queue-toolkit/metrics'\n\nconst metric = new PrometheusMessageProcessingTimeMetric({\n  name: 'message_processing_duration_ms',\n  helpDescription: 'Time spent processing a message',\n  buckets: [10, 50, 100, 500, 1000],\n})\n\n// Pass to your queue service\nconst service = new MyQueueService({ messageMetricsManager: metric })\n```\n\n---\n\n## Prometheus metrics\n\nAll Prometheus metrics use [@prometheus-io/client](https://github.com/prometheus/client_js) under the hood.\n\n### Base parameters\n\nAll metrics accept `PrometheusMetricParams`:\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `name` | `string` | yes | Prometheus metric name |\n| `helpDescription` | `string` | yes | Prometheus metric description |\n| `buckets` | `number[]` | histograms only | Histogram bucket boundaries |\n| `messageVersion` | `string \\| (metadata) => string \\| undefined` | no | Static version string or function to extract version from message metadata |\n| `labelNames` | `Labels[]` | when `Labels` is specified | Names of the custom labels to register. Must not overlap with `DefaultLabels` (`queue`, `messageType`, `version`, `result`) — TypeScript enforces this at compile time |\n\nAn optional second argument accepts a custom `@prometheus-io/client` instance (useful for testing or multi-registry setups).\n\n---\n\n### Histogram metrics (time-based)\n\nUse `Histogram` to measure message timing. Base labels registered on every observation:\n\n| Label | Value |\n|---|---|\n| `messageType` | Message type identifier |\n| `version` | Resolved message version |\n| `queue` | Queue or topic name |\n| `result` | Processing result status (`consumed`, `published`, `retryLater`, `error`) |\n\n#### Built-in implementations\n\n**`PrometheusMessageProcessingTimeMetric`**\nMeasures elapsed time from when processing started to when it ended.\n```\nvalue = messageProcessingEndTimestamp - messageProcessingStartTimestamp\n```\n\n**`PrometheusMessageLifetimeMetric`**\nMeasures elapsed time from when the message was originally sent to when it was fully processed. Includes any time the message spent waiting in the queue.\n```\nvalue = messageProcessingEndTimestamp - messageTimestamp\n```\nSkips observation if `messageTimestamp` is not available.\n\n**`PrometheusMessageQueueTimeMetric`**\nMeasures elapsed time from when the message was originally sent to when processing started (i.e., queue wait time only).\n```\nvalue = messageProcessingStartTimestamp - messageTimestamp\n```\nSkips observation if `messageTimestamp` is not available.\n\n#### Custom histogram with extra labels\n\nExtend `PrometheusMessageTimeMetric` to add custom labels. Pass `labelNames` in the params and override `getLabelValuesForProcessedMessage`. Custom label names must not conflict with `DefaultLabels` — using a reserved name (e.g. `'result'`) will produce a TypeScript compile error:\n\n```ts\nimport { PrometheusMessageTimeMetric } from '@message-queue-toolkit/metrics'\nimport type { ProcessedMessageMetadata } from '@message-queue-toolkit/core'\nimport type { LabelValues } from '@prometheus-io/client'\n\nclass MyProcessingTimeMetric extends PrometheusMessageTimeMetric<MyMessage, 'env'> {\n  protected calculateObservedValue(metadata: ProcessedMessageMetadata<MyMessage>): number | null {\n    return metadata.messageProcessingEndTimestamp - metadata.messageProcessingStartTimestamp\n  }\n\n  protected getLabelValuesForProcessedMessage(): LabelValues<'env'> {\n    return { env: process.env.NODE_ENV ?? 'unknown' }\n  }\n}\n\nconst metric = new MyProcessingTimeMetric({\n  name: 'message_processing_duration_ms',\n  helpDescription: 'Processing time by environment',\n  buckets: [10, 50, 100, 500],\n  labelNames: ['env'],\n})\n```\n\n---\n\n### Counter metrics (event-based)\n\nUse `Counter` to count message events. Base labels registered on every increment:\n\n| Label | Value |\n|---|---|\n| `messageType` | Message type identifier |\n| `version` | Resolved message version |\n| `queue` | Queue or topic name |\n| `result` | Processing result status (`consumed`, `published`, `retryLater`, `error`) |\n\n#### Built-in implementations\n\n**`PrometheusMessageResultCounter`**\nCounts all processed messages using only the built-in base labels. No extra configuration needed.\n\n```ts\nimport { PrometheusMessageResultCounter } from '@message-queue-toolkit/metrics'\n\nconst metric = new PrometheusMessageResultCounter({\n  name: 'messages_total',\n  helpDescription: 'Number of messages processed',\n})\n```\n\n**`PrometheusMessageErrorCounter`**\nCounts only messages that result in an error. Adds an `errorReason` label. Skips all non-error messages.\n\n```ts\nimport { PrometheusMessageErrorCounter } from '@message-queue-toolkit/metrics'\n\nconst metric = new PrometheusMessageErrorCounter({\n  name: 'message_errors_total',\n  helpDescription: 'Number of messages that failed processing',\n  labelNames: ['errorReason'],\n})\n```\n\n#### Custom counter with extra labels\n\nExtend `PrometheusMessageCounter` and implement `calculateCount`. Override `getLabelValuesForProcessedMessage` when adding custom labels. Same as histograms, custom label names must not conflict with `DefaultLabels`:\n\n```ts\nimport { PrometheusMessageCounter } from '@message-queue-toolkit/metrics'\nimport type { ProcessedMessageMetadata } from '@message-queue-toolkit/core'\nimport type { LabelValues } from '@prometheus-io/client'\n\nclass MyRegionCounter extends PrometheusMessageCounter<MyMessage, 'region'> {\n  protected calculateCount(): number | null {\n    return 1\n  }\n\n  protected override getLabelValuesForProcessedMessage(\n    metadata: ProcessedMessageMetadata<MyMessage>,\n  ): LabelValues<'region'> {\n    return { region: metadata.message.region }\n  }\n}\n\nconst metric = new MyRegionCounter({\n  name: 'messages_by_region_total',\n  helpDescription: 'Number of messages processed, by region',\n  labelNames: ['region'],\n})\n```\n\nWhen no custom labels are needed, omit `labelNames` and skip overriding `getLabelValuesForProcessedMessage`:\n\n```ts\nclass MyConsumedCounter extends PrometheusMessageCounter<MyMessage> {\n  protected calculateCount(metadata: ProcessedMessageMetadata<MyMessage>): number | null {\n    return metadata.processingResult.status === 'consumed' ? 1 : null\n  }\n}\n\nconst metric = new MyConsumedCounter({\n  name: 'messages_consumed_total',\n  helpDescription: 'Number of successfully consumed messages',\n})\n```\n\n---\n\n### Using multiple metrics together\n\n`MessageMultiMetricManager` aggregates multiple `MessageMetricsManager` instances and fans out each `registerProcessedMessage` call to all of them.\n\n```ts\nimport {\n  MessageMultiMetricManager,\n  PrometheusMessageProcessingTimeMetric,\n  PrometheusMessageResultCounter,\n  PrometheusMessageErrorCounter,\n} from '@message-queue-toolkit/metrics'\n\nconst metricsManager = new MessageMultiMetricManager([\n  new PrometheusMessageProcessingTimeMetric({\n    name: 'message_processing_duration_ms',\n    helpDescription: 'Message processing time',\n    buckets: [10, 50, 100, 500, 1000],\n  }),\n  new PrometheusMessageResultCounter({\n    name: 'messages_total',\n    helpDescription: 'Messages processed',\n  }),\n  new PrometheusMessageErrorCounter({\n    name: 'message_errors_total',\n    helpDescription: 'Messages that failed processing',\n    labelNames: ['errorReason'],\n  }),\n])\n\nconst service = new MyQueueService({ messageMetricsManager: metricsManager })\n```\n\n","readmeFilename":""}