{"_id":"@6river/nestjs-prom","_rev":"7-f9a52865caf3b0021b73da087d09fb99","name":"@6river/nestjs-prom","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0-circle.2":{"author":{"name":"Tieu-Philippe KHIM","email":"pkhim@digikare.com"},"bugs":{"url":"https://github.com/digikare/nestjs-prom/issues"},"contributors":[{"name":"Michael Yankelev @FSM1"},{"name":"Ashleigh Simonelli @bashleigh"},{"name":"@blackkopcap"}],"dependencies":{},"description":"A promotheus module for nestjs","devDependencies":{"@nestjs/common":"^6.5.3","@nestjs/core":"^6.5.3","@types/node":"^10.14.16","prom-client":"^11.5.3","reflect-metadata":"^0.1.13","rxjs":"^6.5.2","ts-node":"^8.3.0","typescript":"^3.5.3"},"homepage":"https://github.com/digikare/nestjs-prom#readme","keywords":["nestjs","promotheus"],"license":"MIT","main":"dist/index.js","name":"@6river/nestjs-prom","peerDependencies":{"@nestjs/common":"^6.5.3","@nestjs/core":"^6.5.3","reflect-metadata":"^0.1.13","rxjs":"^6.5.2"},"repository":{"type":"git","url":"git+https://github.com/digikare/nestjs-prom.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rm -rf dist && tsc -p tsconfig.json","precommit":"lint-staged","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next"},"types":"dist/index.d.ts","version":"1.0.0-circle.2","gitHead":"cff59381117dfc123a75bff3156e7e2ec9db3fa6","_id":"@6river/nestjs-prom@1.0.0-circle.2","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Kt26FD83H8fIGIAnspOmmcLsrVIHEngAvPPrK0t3X7AiO1sIbg8i7EIWkEn1DXia8FQygUtIW0Zho618ZIpxDg==","shasum":"0698a3fd8aa427af11228b5202a8fc32a47fcd15","tarball":"https://registry.npmjs.org/@6river/nestjs-prom/-/nestjs-prom-1.0.0-circle.2.tgz","fileCount":33,"unpackedSize":37241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevWFxCRA9TVsSAnZWagAAwRoQAICmQ8DxKDynu7F1HvGj\nqVsPYxjLbKH/ymJNuwWscngRFCh3oB3UERRQz5t5QUK/wJNnxcMLUMD/vzSd\nk3x47rkZn0VORl/cwLrsPBHwsEgB/gGj6eQlytGltNYo55nICet+9rn2IU+X\nBa/yoMAT5fQHeN97cNNLA3SISFp6K/jsIAP2ty51XkMz6ZS/oHmg1WwkvW2M\n2Kg8aMPk1WMzMi78/ONb1vn4SgoPs0JMQhb7zgWjEJ5T8trMUmEtYRwMzgBE\n7mL4XIeQSg8vsKvnrmR1I7vmmpYkjuQpBp9WUhNXw5osYqJVW34vCE+ua8ps\nwpUvUlgHLXiDp1DABsUUxYIs+zeDlPchUXfSivMkYz4aawzBYXhbuQEwLfYx\nnNChOS2hJki5SInYt9Hk8gsLwvDbxnkRefoX2TMlfIDR/9b9IsBthXLeDSCR\n//8BBSq2jn9oH3M3Q6bEtMdgjDddi/G0EBrwScZd3lJ80631PuTBV5SIRPli\nioRwIjg2rgxEAcNv82NNdLT5sbySKxcQ1KsQkN8AshJWm2IVNx1e4zxPf5J0\n7MfRPkTa3kVUqu+VHItKp9SbcbddtZt0MyUKsnpuX6kquZYt/WKghvfzXl4+\nzFZo74RBvDtKT3LQYGZdHaVI2FZSj7hcuP3X984KjEBDrShjduZefJ1fW6Js\nXqeh\r\n=yhMs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIES9ehotoEyRrte6nliQbtbrT5Xoticykk2P/R+LfsrgAiBlhQbpfI7bxn2Zd3VmIqKmkpwTc1qlJEIVj3yUSMpXEQ=="}]},"maintainers":[{"name":"6river-machine","email":"swdev@6river.com"},{"name":"c11k","email":"josh@c11k.org"},{"name":"kolach","email":"chikolad@gmail.com"},{"name":"jbcpollak","email":"josh@offthehill.org"},{"name":"jjhughes57","email":"jjhughes57@gmail.com"}],"_npmUser":{"name":"6river-machine","email":"swdev@6river.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-prom_1.0.0-circle.2_1589469553036_0.354516383298322"},"_hasShrinkwrap":false},"1.0.0":{"author":{"name":"Tieu-Philippe KHIM","email":"pkhim@digikare.com"},"bugs":{"url":"https://github.com/digikare/nestjs-prom/issues"},"contributors":[{"name":"Michael Yankelev @FSM1"},{"name":"Ashleigh Simonelli @bashleigh"},{"name":"@blackkopcap"}],"dependencies":{},"description":"A promotheus module for nestjs","devDependencies":{"@nestjs/common":"^6.5.3","@nestjs/core":"^6.5.3","@types/node":"^10.14.16","prom-client":"^11.5.3","reflect-metadata":"^0.1.13","rxjs":"^6.5.2","ts-node":"^8.3.0","typescript":"^3.5.3"},"homepage":"https://github.com/digikare/nestjs-prom#readme","keywords":["nestjs","promotheus"],"license":"MIT","main":"dist/index.js","name":"@6river/nestjs-prom","peerDependencies":{"@nestjs/common":"^6.5.3","@nestjs/core":"^6.5.3","reflect-metadata":"^0.1.13","rxjs":"^6.5.2"},"repository":{"type":"git","url":"git+https://github.com/digikare/nestjs-prom.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rm -rf dist && tsc -p tsconfig.json","precommit":"lint-staged","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next"},"types":"dist/index.d.ts","version":"1.0.0","gitHead":"9152606df1ef628f1d578bfa0d23828afd30fd58","_id":"@6river/nestjs-prom@1.0.0","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-HdQieUnzx64MKUPxBQ5n6X0XLEqQfK/yiw9MN2tUfnwn1wshSANaV8k/6DTNd4PqzyPlG1g7J5bjbPGBy/92Lg==","shasum":"cc93074ff2655e1c47a3a6b6056299cbe27cd49c","tarball":"https://registry.npmjs.org/@6river/nestjs-prom/-/nestjs-prom-1.0.0.tgz","fileCount":33,"unpackedSize":37223,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevWHqCRA9TVsSAnZWagAAHDoP/juDxAT2foFI0Whc3tZy\nAg3zzuMSwKE1KsqYq9Ni/3/mVo3a2EVnr3ozgEiDrMlWeBvQ9Aj/8pF1F2v9\ntlCKgLYpFqwVWl3FO1im1Jeyk7DnXZZ1dlmRp0lOMbaVOAPmdD+hEBdtN/Lt\n4Mt3qsABszXBxCEH3Eu8iGoyV9hPWsdF9JEcLBn/jS5d0UVTVH3xPf5zrIuN\nE0FvROAikYYnSyJEGbKUh/SCWvgSfJSjgUgu5RLhNzSDi9muNFKNJ9vd8/Nd\n3eR6DIKmnMZLXkBOQZZjHwcsmnCRL+UqGP40Pbf+8xSD+Nvr0dR+ljSYvYJm\ncVtP1rKcpc/UJS3OX7gGsYoLa6aRgLdnyt3I3eM1XE1SemnydPRIdAfNUpI3\n0Tm6jb/jh4Y5ZlQdHh66hPhL+xQr6oyQLO6dJITFVwXKHZid4PY2wVGIyl9W\nIV+ysPU8lUURYXJe3JTcAt6qwCnks1gZULE2/GGJL1NTJa/nAHmo6vpOF2xt\npcU2SxKIx4hIn7y6VF07lhoWs0eD8/CnfBaPVYcs0nz0QvYdHU4Vsfm8L4Q+\nmUwywm29ot8JpYCerhScU3pKUZEPmKz0x3YV5ICQMbqGAKW1flYzZokSCYTP\nCjTZZFddiQ3Vwx43auP2VRWJhz+2pre7lR8PoKCUznXdbAp+0rGAuc9zybxj\n6Str\r\n=SfeD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBBpWPMtLEge8buFfmxuDmf03lcTimWDez66aEzQy2+6AiEAtwUKnJsfDc8qjnumHkA6NWUOlFvHYUeDofYTTf+bZlc="}]},"maintainers":[{"name":"6river-machine","email":"swdev@6river.com"},{"name":"c11k","email":"josh@c11k.org"},{"name":"jbcpollak","email":"josh@offthehill.org"},{"name":"jjhughes57","email":"jjhughes57@gmail.com"},{"name":"kolach","email":"chikolad@gmail.com"}],"_npmUser":{"name":"6river-machine","email":"swdev@6river.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-prom_1.0.0_1589469673683_0.23565690029137865"},"_hasShrinkwrap":false},"1.0.1":{"author":{"name":"Tieu-Philippe KHIM","email":"pkhim@digikare.com"},"bugs":{"url":"https://github.com/digikare/nestjs-prom/issues"},"contributors":[{"name":"Michael Yankelev @FSM1"},{"name":"Ashleigh Simonelli @bashleigh"},{"name":"@blackkopcap"}],"dependencies":{},"description":"A promotheus module for nestjs","devDependencies":{"@nestjs/common":"^6.5.3","@nestjs/core":"^6.5.3","@types/node":"^10.14.16","prom-client":"^12.0.0","reflect-metadata":"^0.1.13","rxjs":"^6.5.2","ts-node":"^8.3.0","typescript":"^3.5.3"},"homepage":"https://github.com/digikare/nestjs-prom#readme","keywords":["nestjs","promotheus"],"license":"MIT","main":"dist/index.js","name":"@6river/nestjs-prom","peerDependencies":{"@nestjs/common":"^6.5.3","@nestjs/core":"^6.5.3","reflect-metadata":"^0.1.13","rxjs":"^6.5.2"},"repository":{"type":"git","url":"git+https://github.com/digikare/nestjs-prom.git"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rm -rf dist && tsc -p tsconfig.json","precommit":"lint-staged","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next"},"types":"dist/index.d.ts","version":"1.0.1","gitHead":"068f9387c540ac6b659fe5d64cc0a071cf0b279c","_id":"@6river/nestjs-prom@1.0.1","_nodeVersion":"10.16.2","_npmVersion":"6.9.0","dist":{"integrity":"sha512-6lBzj47Wq0Vywv4urIEfbQrl/BOEC+gBcoBT7ST0tXtfaiPXBgdtI2Y0GF+Bw048UjV45nY/d9vdeFvQ/gwtJA==","shasum":"9698725f9073f5e033e77365ff10b9f2f72cfac5","tarball":"https://registry.npmjs.org/@6river/nestjs-prom/-/nestjs-prom-1.0.1.tgz","fileCount":33,"unpackedSize":36809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevWKzCRA9TVsSAnZWagAAJC0P/iGr0bcyV/uG+uwnAI3I\n0oUvcT+Icz0CIxKpIO4xCvor9rVMhlbwjg93WnYWxpF+9SP1QcFLiLyIEcxV\n+ErIetRUBaz+utOMGXfg+jqBZl7eacDrvG1fr/3xOf27RB6i9/muTzvWljMC\nIQFfL4vmzLXC7qE5BBLHJWq3dLi4pF3ROLMLhOQ2fb5RMv+lh/5H5P5eXcTc\n2xEI/sbB4WAW0GhyF9X35chBCRPQsnEszQBa5uumPc4jkpNJhlfLSY8mEbc6\nUsn4h/sI/0X4ThmICx8VcvbuL+Sfw3LjuxmdmcQUbGsZEQSFOUY46+Iz1Qh/\nHz1B7mF01pw58fLmGqhQ1hRauUTv/PSvbX4/Qw8P92B4Iw+xRHDKCyWp0YDC\nPhugxUYVP2u0pwP5xCRZAKUCkrKgk1wqkMVXRSuvwk5nEt1+TjNRi3W+Lbjf\n31VooC6nEBk+/rH4FbWcuU8GQE1+NIeX42vmTblz1a2Q7iI6W4c9aBwwYkBF\nECFWmd6Sd9/5fg+VX92bb0yWDHKMuTeF9YJCPn2/SvsgzbKI5D90yVYoBLF1\ngKqPk5FfiIQVbcIqnfq3MOXjbqxsVo0BUrZ6AopqbeGL9/xmxdIgvAVzDeVe\nCuA6/38rZ9CsCm8isv5auaCMxLa/FX4ec5BanksXpQHdcqgdZm2TrpdoClxB\nnEGW\r\n=372g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1946dNJXwmaSCXkXuA61JV+M7++Ob3aXdYoyY3alTLAiBu630cpi01/UxY7END1GH4o2WxBDZWgvu61MpV/gDVHQ=="}]},"maintainers":[{"name":"6river-machine","email":"swdev@6river.com"},{"name":"c11k","email":"josh@c11k.org"},{"name":"jbcpollak","email":"josh@offthehill.org"},{"name":"jjhughes57","email":"jjhughes57@gmail.com"},{"name":"kolach","email":"chikolad@gmail.com"}],"_npmUser":{"name":"6river-machine","email":"swdev@6river.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-prom_1.0.1_1589469874881_0.27587847813409705"},"_hasShrinkwrap":false}},"time":{"created":"2020-05-14T15:19:12.901Z","1.0.0-circle.2":"2020-05-14T15:19:13.138Z","modified":"2023-01-05T17:02:47.320Z","1.0.0":"2020-05-14T15:21:13.819Z","1.0.1":"2020-05-14T15:24:34.985Z"},"maintainers":[{"email":"eng_sw_devops@6river.com","name":"6river-npm"},{"email":"swdev@6river.com","name":"6river-machine"},{"email":"chikolad@gmail.com","name":"kolach"},{"email":"jjhughes57@gmail.com","name":"jjhughes57"},{"email":"afrance@6river.com","name":"aaron.france"}],"description":"A promotheus module for nestjs","homepage":"https://github.com/digikare/nestjs-prom#readme","keywords":["nestjs","promotheus"],"repository":{"type":"git","url":"git+https://github.com/digikare/nestjs-prom.git"},"contributors":[{"name":"Michael Yankelev @FSM1"},{"name":"Ashleigh Simonelli @bashleigh"},{"name":"@blackkopcap"}],"author":{"name":"Tieu-Philippe KHIM","email":"pkhim@digikare.com"},"bugs":{"url":"https://github.com/digikare/nestjs-prom/issues"},"license":"MIT","readme":"\n# TEMPORARY FORK TO UPDATE prom-client to 12.0.0 \n# Will be removed once change is accepted upstream\n\n## Description\n\nA prometheus module for Nest.\n\n## Installation\n\n```bash\n$ npm install --save @digikare/nestjs-prom prom-client\n```\n\n## How to use\n\nImport `PromModule` into the root `ApplicationModule`\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { PromModule } from '@digikare/nestjs-prom';\n\n@Module({\n  imports: [\n    PromModule.forRoot({\n      defaultLabels: {\n        app: 'my_app',\n      }\n    }),\n  ]\n})\nexport class ApplicationModule {}\n```\n\n### Setup metric\n\nIn your module, use `forMetrics()` method to define the metrics needed.\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { PromModule, MetricType } from '@digikare/nest-prom';\n\n@Module({\n  imports: [\n    PromModule.forMetrics([\n      {\n        type: MetricType.Counter,\n        configuration: {\n          name: 'my_counter',\n          help: 'my_counter a simple counter',\n        }\n      },\n      {\n        type: MetricType.Gauge,\n        configuration: {\n          name: 'my_gauge',\n          help: 'my_gauge a simple gauge',\n        }\n      },\n      {\n        type: MetricType.Histogram,\n        configuration: {\n          name: 'my_histogram',\n          help: 'my_histogram a simple histogram',\n        }\n      },\n      {\n        type: MetricType.Summary,\n        configuration: {\n          name: 'my_summary',\n          help: 'my_summary a simple summary',\n        }\n      }\n    ]),\n  ]\n})\nexport class MyModule\n```\n\nAnd you can use `@InjectCounterMetric()` decorator to get the metrics\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport {\n  InjectCounterMetric,\n  InjectGaugeMetric,\n  InjectHistogramMetric,\n  InjectSummaryMetric,\n  CounterMetric,\n  GaugeMetric,\n  HistogramMetric,\n  SummaryMetric,\n} from '@digikare/nest-prom';\n\n@Injectable()\nexport class MyService {\n  constructor(\n    @InjectCounterMetric('my_counter') private readonly _counterMetric: CounterMetric,\n    @InjectGaugeMetric('my_gauge') private readonly _gaugeMetric: GaugeMetric,\n    @InjectHistogramMetric('my_histogram') private readonly _histogramMetric: HistogramMetric,\n    @InjectSummaryMetric('my_summary') private readonly _summaryMetric: SummaryMetric,\n  ) {}\n\n  doStuff() {\n    this._counterMetric.inc();\n  }\n\n  resetCounter() {\n    this._counterMetric.reset();\n  }\n}\n```\n\n### Metric class instances\n\n```typescript\n@PromInstanceCounter\nexport class MyClass {\n\n}\n```\n\nWill generate a counter called: `app_MyClass_instances_total`\n\n### Metric method calls\n\n```typescript\n@Injectable()\nexport class MyService {\n  @PromMethodCounter\n  doMyStuff() {\n\n  }\n}\n```\n\nWill generate a counter called: `app_MyService_doMyStuff_calls_total`\n\n### Metric endpoint\n\nThe default metrics endpoint is `/metrics` this can be changed with the customUrl option\n\n```ts\n@Module({\n  imports: [\n    PromModule.forRoot({\n      defaultLabels: {\n        app: 'my_app',\n      },\n      customUrl: 'custom/uri',\n    }),\n  ],\n})\nexport class MyModule\n```\n\nNow your metrics can be found at `/custom/uri`.\n\n> PS: If you have a global prefix, the path will be `{globalPrefix}/metrics` for\nthe moment.\n\n## API\n\n### PromModule.forRoot() options\n\n- `withDefaultsMetrics: boolean (default true)` enable defaultMetrics provided by prom-client\n- `withDefaultController: boolean (default true)` add internal controller to expose /metrics endpoints\n- `useHttpCounterMiddleware: boolean (default false)` register http_requests_total counter\n\n## Auth/security\n\nI do not provide any auth/security for `/metrics` endpoints.\nThis is not the aim of this module, but depending of the auth strategy, you can\napply a middleware on `/metrics` to secure it.\n\n## TODO\n\n- Update readme\n  - Gauge\n  - Histogram\n  - Summary\n- Manage registries\n- Tests\n- Give possibility to custom metric endpoint\n- Adding example on how to secure `/metrics` endpoint\n  - secret\n  - jwt\n\n## License\n\nMIT licensed\n","readmeFilename":"README.md"}