{"_id":"@financial-times/community-js-metrics","_rev":"42-c0aa194e066ab8f206cf509846b728d4","name":"@financial-times/community-js-metrics","dist-tags":{"pre-release":"3.0.2-alpha.215.1","latest":"3.0.2"},"versions":{"1.0.0":{"name":"@financial-times/community-js-metrics","version":"1.0.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@1.0.0","maintainers":[{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"briggsc","email":"charlie.briggs@bbc.co.uk"},{"name":"the-ft","email":"strategic.products+npm@ft.com"},{"name":"quarterto","email":"kara@153.io"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"mattandrews","email":"matt@mattandre.ws"},{"name":"jakedchampion","email":"me@jakechampion.name"},{"name":"sdbernard","email":"steve.bernard@ft.com"},{"name":"bobhaslett","email":"bob.haslett@ft.com"},{"name":"joannaskao","email":"joannaskao@gmail.com"},{"name":"robinmarr-ft","email":"robin.marr@ft.com"},{"name":"ft-internal-products","email":"ip.engineering@ft.com"},{"name":"chee","email":"chee@snoot.club"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"tatiana.stantonian","email":"tatiana.stantonian@ft.com"},{"name":"conor-mullen","email":"conor.mullen@ft.com"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"89b4bd8285906bbe1616c971c9c218b81eb53408","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-1.0.0.tgz","fileCount":4,"integrity":"sha512-hDLNX5k5/+9zhVleIeImJx8ifgD4ZfoJ9qrvPhfJontdS1a1ZDJns9Mts1TFu1njeLTnNboxdd//DOhBFPkXBw==","signatures":[{"sig":"MEYCIQCe60pZttUb9aZfFlOKuJjPCnDQJUstJbWb2MxiQcwwTQIhAPbA93NHcyVbvA+Uotc+J7n0Buy2yPxoq2L9DBGbf38q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":423041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiA/KJCRA9TVsSAnZWagAAHnkP/jRK571PB34HA+ZgLKfH\noyKca5Jm6wLLemvhvVZylBVUfjQ3Q6xdWnFu4GlHtD9gO+1cK+HRjEETp5Kq\njV8WEDKmC4vqzWX+4dmobRsNc2YLsqbHIwJQ51SlXrtkWxPfQcnemgXgQfv7\nof8Gnl3HvuAQ1/sl4h29QhA6GsIvY2QbHcZ0cAZXy0GvKLyBVZQL1hJEDKAd\n1L+BzQl/5JaRr4fCrmib6YPSAzdca9HMIN7/+Muu+MBH5wPUQk+0f2dvsdHa\nVpi2+TTl9AGBIztn8cw/inrhOM9uBF/fZL2VfLTLzNuN+3SFQhUkn8fz+Hde\nWRibiY6mcP9MxexvNHXrFxhbJkAoKo/7TH4Gwc0NiK3ahlC3vcSXnl/kXWNR\nxpC6O0jmUk5ktA0bwmfBroWbxYALJMpedVvGc/EBHjoKYYi68Yzp8JaMX5AZ\nbJLu8BIX/6OcVKW+j5nX7TyUvL8+GJ4IrqRm4M1JvZiMMYm5YzfvloMP9POC\n9oA4I6oZHqS2TQFW2ynVe5Y17aCGHrxqM9NQibumEIKCSxPHkLlKHv8S6164\netjof8EWGpaLRYFVe8Y2VXI4TG/4ZQbP75sa7JU1I8FXxLGH0FnJycT4kLdy\neJfq+bWVaUL8zK5d118t9jk0xeAgU6Ow78YszssoU2y04W1nXGQv9oBa6249\nXnxa\r\n=LmPe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"d5fe201a9bca84972e9ba90501650e4c7dbe6682","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"rollup --config rollup.config.ts --configPlugin typescript","prepare":"if [ ! \"${CI}\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"strategic.products+npm@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.15","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.8.0","rollup":"2.67.1","ts-jest":"27.1.3","ts-node":"10.5.0","mockdate":"3.0.5","prettier":"^2.5.1","typescript":"4.5.5","@types/jest":"27.4.0","eslint-plugin-jest":"26.1.0","eslint-plugin-import":"2.25.4","eslint-config-prettier":"7.2.0","eslint-plugin-prettier":"4.0.0","@rollup/plugin-typescript":"8.3.0","@typescript-eslint/parser":"5.11.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.11.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_1.0.0_1644425864998_0.2003049598381521","host":"s3://npm-registry-packages"}},"2.0.0-beta.1":{"name":"@financial-times/community-js-metrics","version":"2.0.0-beta.1","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.0.0-beta.1","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"53e78db67d1b48f1ba10c8019ddfed2b95a6b79a","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.0.0-beta.1.tgz","fileCount":4,"integrity":"sha512-RNm8I/rVCdWVGMkAqeg/3sjlfkN2qQA50RVzp9hwaqouwnLp/BTxN1hFxKQUonfpXnh4+UlPgXYvJ9/6n6vbOw==","signatures":[{"sig":"MEQCIADMiVu+S0bnQkbgQUiXZCgBUkMjs3p249CKmRzw76O4AiBVcHMNffB8KXK4oSn/BlnXUsUX/0WfjWlCavf39sw+Zg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":249255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaVs6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmodTBAAkis0IGXNdfSWUmjXvZnzKkIg4gZ1RASWhxMCSHLM6KqoU3fl\r\nOACGoGrF7d6y8h5+oXL4o4rkaLA+5o7w/vOzMl7QJ074Q6bTr/dVb6YJwZVK\r\nMJ+MUZmdorssxcFjRiIso01WXVMAUjIfXt/5EPgBjl5NQxnRvPDQmCl1KhGW\r\neU3ULVxn38FbU0OSeeTOuoOiHilbhRh92s7lEiaaazaGAh+b7OJnWyanDoGA\r\nhueZmk1WrwZHTQijSOtYGY9MQQz8O3aOgBGSFxF4EipJX9ffT8UC0a52n9Ft\r\nfoPdR1ywrMJgBvkMgYozLZfFP1i+OL4h4NQ2OLYdotvi77JI5CeJFWhohh9v\r\n2rL8NbbKr+l5OuZZgvTilIEI9yEpmgg5+luLT3Hc2rv/MQWwHC0oNBe7L1vI\r\nMsSpMnq5H+JzpW4KBmed9Kx+e+aClwpAwhEcOlBZcwsUc1DzSDybBmCk1jAD\r\nE3NbEYoy6ZGM5fCEIyR4bjdI3I3ho+Ywx4gTA1TJTQgwcMxwVtAuEuDcsyI5\r\nTD0f8uHwufr37ZWduDIpZfc6hpfJX38foC8sI/C4HyVauyRmw99lYWdR3Uj9\r\nKwfnWVvVxXt3gMV940O9j1zetUsVoudecMawjt/rK4V+lZq4cVpkIBYXWr59\r\nHwaF6KMVj6pJcWrOTASYLWYl9iY8QF1jsKY=\r\n=hZDF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# community-js-metrics\n\nMetrics for community javascript and typescript projects\n\n## MetricsDestinationStreams\n\nThis library allows the sending of metrics to multiple destinations if required.\nThese are configured at initialisation and the available destinations are listed below.\n\n### GraphiteDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: GraphiteDestinationStreamOptions\n- `options.metricsPrefix` _(optional)_: String - the prefix to use for your metrics, i.e. `'<uuid>.foo.bar.baz'`, see\n  note below for defaults.\n- `options.host` _(optional)_: String - the graphite host to send your metrics to, defaults to `'graphitev2.ft.com'`\n- `options.port` _(optional)_: Number - the port on the graphite host to send the metrics to, defaults to `2003`\n\n**Note**\nIf `options.metricPrefix` is not set, the metricsPrefix is built up from the following environment variables:\n\n1) `FT_GRAPHITE_APP_UUID` - will throw an error on instantiation if this is not set\n2) `ENVIRONMENT` _or_ `NODE_ENV` - will default to 'unknown' if not set\n3) `DYNO` _or_ `AWS_LAMBDA_FUNCTION_NAME` _or_ `INSTANCE_ID` - will default to 'unknown' if not set\n\n**Example**\n\n```js\nimport {GraphiteDestinationStream} from '@financial-times/community-js-metrics'\n\nconst opts = {/* ...opts */}\nconst graphiteDestinationStream = new GraphiteDestinationStream(opts)\n````\n\n### CloudWatchDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: CloudWatchDestinationStreamOptions\n- `options.clientConfig` _(optional)_: [CloudWatchClientConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/interfaces/cloudwatchclientconfig.html) - the config you wish to use to initialise the [CloudWatchClient](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/cloudwatchclient.html)\n- `options.namespace` _(optional)_: String - the namespace in which you want your metrics placed (see note below for details of defaults)\n- `options.dimensions` _(optional)_: Dimension[] - the dimensions you wish your metrics to have, (see note below for details of defaults)\n\n**Note**\nIf `options.namespace` is not set, the namespace will be `FT/<system-code>` where `<system-code>` is obtained from the `SYSTEM_CODE` environment variable. \nAn error will be thrown if this environment variable is not set.\n\nIf `options.dimensions` is not set, default dimensions will be added from the below environment variables, if they are set:\n- `ENVIRONMENT`\n- `NODE_ENV`\n- `DYNO`\n- `AWS_LAMBDA_FUNCTION_NAME`\n- `INSTANCE_ID`\n\n**Example**\n\n```js\nimport {CloudWatchDestinationStream} from '@financial-times/community-js-metrics'\n\nconst opts = {/* ...opts */}\nconst cloudWatchDestinationStream = new CloudWatchDestinationStream(opts)\n````\n\n## Methods\n\n### `metrics.init(initOptions?:InitOptions)`\n\nInitialises metrics and adds destination streams.\n\n**Arguments**:\n\n- `initOptions` _(optional)_: MetricsClientInitOptions\n- `initOptions.destinations` _(optional)_: MetricsDestinationsStream[] - an array of destinationStreams for your metrics\n  to be sent to, if no destinations are set,\n  metrics will be sent to graphite by default.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nimport metrics, {GraphiteDestinationStream} from '@financial-times/community-js-metrics'\n\nconst metricsInitOptions = {\n  destinations: [\n    new GraphiteDestinationStream()\n  ]\n}\nmetrics.init(metricsInitOptions)\n```\n\n### `metrics.count(metricName:string, increment: number = 1)`\n\nRecords something happening in metrics and sends to the destinationStreams\n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `increment`: number - the number of times the thing happened, defaults to `1`\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nmetric.count('didThing.success', 22)\n```\n\n### `metrics.end()`\n\nEnds all destination streams.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nawait metric.end()\n```\n\n## Examples\n\n### Lambda/Serverless\n\nIn a lambda function, simply init at the start and end at the end of each invocation.\n\n```js\nconst metrics = require('@financial-times/community-js-metrics')\n\nexport async function handler(event, context) {\n    try {\n        await metrics.init()\n        // handler code...\n    } catch (error) {\n        // log errors\n    } finally {\n        await metrics.end()\n    }\n}\n```\n\n## Guides etc\n\n### Getting an FT_GRAPHITE_APP_UUID for Graphite metrics\n\nFirst add a `FT_GRAPHITE_APP_UUID` to your projects shared env vars. This uuid can be obtained via the `/graphiteuuid `\nslackbot, i.e with:\n\n```text\n/graphiteuuid community.<system-code> <system-code> community.engineering@ft.com\n```\n\nReplace `<host-platform>` with the relevant host platform, e.g. `lambda`, `ecs` or `heroku`. Replace `<system-code>`\nwith the system code of your service (this needs to already exist in BizOps).\n\nThen add it to the shared secrets in vault, i.e. in: `secret/teams/community/<system-code>/shared`\n","gitHead":"821bd23f52d7f7012a5441fac156deb86d590701","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"rollup --config rollup.config.ts --configPlugin typescript","prepare":"if [ ! \"${CI}\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.15","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.18.3","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.8.0","rollup":"2.67.1","ts-jest":"27.1.3","ts-node":"10.5.0","mockdate":"3.0.5","prettier":"^2.5.1","typescript":"4.5.5","@types/jest":"27.4.0","eslint-plugin-jest":"26.1.0","eslint-plugin-import":"2.25.4","eslint-config-prettier":"7.2.0","eslint-plugin-prettier":"4.0.0","@rollup/plugin-typescript":"8.3.0","@typescript-eslint/parser":"5.11.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.11.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.0.0-beta.1_1651071802653_0.7563468385835019","host":"s3://npm-registry-packages"}},"2.0.0-beta.2":{"name":"@financial-times/community-js-metrics","version":"2.0.0-beta.2","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.0.0-beta.2","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"13899f7c3efb3ac81f46bddcef7641939bfa2f1b","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.0.0-beta.2.tgz","fileCount":9,"integrity":"sha512-PlDcmepYggs2BjU48MBDj6J+/bjabePv3adODxBm8qtDIEDcag9ffRXDihkCULeMqTCgFsFsRKaQebUlvLQhkg==","signatures":[{"sig":"MEYCIQDzdJ8XZuDyUVP/u+8uLwLPvgeIFCly8tKFOK8R6eFuEQIhAN2PxzqX1UDfERzqkEUSV6U/q/yYyfs3A3MAHLHkClje","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":269037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaWWXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8PA/+PJ3IUvtl2bgSrKjDFI7aTcqIF4QbXGLBSKUbdqoE5+elBdDd\r\nuH8jlXT0O92p59Dlyw1sV/HexZGGHUiNZBmaJ1BomHjlcCZDXHDBpOYwsKw0\r\nMd2Q7WA5Un2Vd4sQNV404C+UY7iG8UmFriwB4M259UPD4mZ5z3ILo5tb1A6t\r\nR+fcx3IAuPammQeHJhW5EiLrNiXufwsOWjI/liMYz6tt2EZnrLgm8R6wasRM\r\nJ+oSRhRnGRal5/vamV/iVVdbuq0w13lQ9+t6tFEOpNis3N5HcfEwFBU41fG8\r\nNT8tQH68+OxMo4AXEsHSUff8D/OYf0A++SOwqWd7nMJOEkMhPsa3YplbAhgl\r\ny1mdEMcvm4MWAkr2j2HQQZEu3cB1mCdqJK0x/wIO7EJ5nZCyH2Bvbv+q+VDm\r\nwzeq2ePfM2p5m5egMcVJt+TGnO0Db6jBoKwm7+7wj/np0qvtcWclZP9UUnn3\r\naw2lMI5yRXzSfj4cEqZm4n1n/nOCRApnFiifzRRyACM5f+91UgQjDmVS3ehK\r\nCIhDz4BXO8r0YMItwBJtNIHxD3btCNH4abag6McTtgG0JXRUZ5Cfmo5c893H\r\nMhj+kqwBcMBov5hZ64RGltt/Sbv2mfksG6PaufddTfk+zEKJj44hq22CkWem\r\nWDfq00lIHvs5WE2QUk03yTJgI4OFLvAzJ+E=\r\n=5WLU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# community-js-metrics\n\nMetrics for community javascript and typescript projects\n\n## General Description\nThis module exports a singleton, an instance of MetricsClient, with extends EventEmitter with the following Events and Methods.\n\n## Events\n### `error`\nIf an underlying MetricsDestinationStream errors, the error is propagated to the client.\n```js\nimport metrics from '@financial-times/community-js-metrics'\n\nmetrics.on('error', (error) => {\n  console.error(error)\n})\n```\n\n\n## Methods\n\n### `metrics.init(initOptions?:InitOptions)`\n\nInitialises metrics and adds destination streams.\n\n**Arguments**:\n\n- `initOptions` _(optional)_: MetricsClientInitOptions\n- `initOptions.destinations` _(optional)_: MetricsDestinationStream[] - an array of destinationStreams for your metrics\n  to be sent to, if no destinations are set,\n  metrics will be sent to graphite by default.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nimport metrics, {GraphiteDestinationStream} from '@financial-times/community-js-metrics'\n\nconst metricsInitOptions = {\n  destinations: [\n    new GraphiteDestinationStream()\n  ]\n}\nmetrics.init(metricsInitOptions)\n```\n\n### `metrics.count(metricName:string, increment: number = 1)`\n\nRecords something happening in metrics and sends to the destinationStreams\n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `increment`: number - the number of times the thing happened, defaults to `1`\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nmetric.count('didThing.success', 22)\n```\n\n### `metrics.end()`\n\nEnds all destination streams.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nawait metric.end()\n```\n\n## MetricsDestinationStreams\n\nThis library allows the sending of metrics to multiple destinations if required.\nThese are configured at initialisation and the available destinations are listed below.\n\n### GraphiteDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: GraphiteDestinationStreamOptions\n- `options.metricsPrefix` _(optional)_: String - the prefix to use for your metrics, i.e. `'<uuid>.foo.bar.baz'`, see\n  note below for defaults.\n- `options.host` _(optional)_: String - the graphite host to send your metrics to, defaults to `'graphitev2.ft.com'`\n- `options.port` _(optional)_: Number - the port on the graphite host to send the metrics to, defaults to `2003`\n\n**Note**\nIf `options.metricPrefix` is not set, the metricsPrefix is built up from the following environment variables:\n\n1) `FT_GRAPHITE_APP_UUID` - will throw an error on instantiation if this is not set\n2) `ENVIRONMENT` _or_ `NODE_ENV` - will default to 'unknown' if not set\n3) `DYNO` _or_ `AWS_LAMBDA_FUNCTION_NAME` _or_ `INSTANCE_ID` - will default to 'unknown' if not set\n\n**Example**\n\n```js\nimport {GraphiteDestinationStream} from '@financial-times/community-js-metrics'\n\nconst opts = {/* ...opts */}\nconst graphiteDestinationStream = new GraphiteDestinationStream(opts)\n````\n\n### CloudWatchDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: CloudWatchDestinationStreamOptions\n- `options.clientConfig` _(optional)_: [CloudWatchClientConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/interfaces/cloudwatchclientconfig.html) - the config you wish to use to initialise the [CloudWatchClient](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/cloudwatchclient.html)\n- `options.namespace` _(optional)_: String - the namespace in which you want your metrics placed (see note below for details of defaults)\n- `options.dimensions` _(optional)_: Dimension[] - the dimensions you wish your metrics to have, (see note below for details of defaults)\n\n**Note**\nIf `options.namespace` is not set, the namespace will be `FT/<system-code>` where `<system-code>` is obtained from the `SYSTEM_CODE` environment variable.\nAn error will be thrown if this environment variable is not set.\n\nIf `options.dimensions` is not set, default dimensions will be added from the below environment variables, if they are set:\n- `ENVIRONMENT`\n- `NODE_ENV`\n- `DYNO`\n- `AWS_LAMBDA_FUNCTION_NAME`\n- `INSTANCE_ID`\n\n**Example**\n\n```js\nimport {CloudWatchDestinationStream} from '@financial-times/community-js-metrics'\n\nconst opts = {/* ...opts */}\nconst cloudWatchDestinationStream = new CloudWatchDestinationStream(opts)\n````\n\n## Examples\n\n### Lambda/Serverless\n\nIn a lambda function, simply init at the start and end at the end of each invocation.\n\n```js\nconst metrics = require('@financial-times/community-js-metrics')\n\nexport async function handler(event, context) {\n    try {\n        await metrics.init()\n        metrics.on('error', (error) => {\n          console.error('metrics_error', error)\n        })\n        // handler code...\n    } catch (error) {\n        // log errors\n    } finally {\n        await metrics.end()\n    }\n}\n```\n\n## Guides etc\n\n### Getting an FT_GRAPHITE_APP_UUID for Graphite metrics\n\nFirst add a `FT_GRAPHITE_APP_UUID` to your projects shared env vars. This uuid can be obtained via the `/graphiteuuid `\nslackbot, i.e with:\n\n```text\n/graphiteuuid community.<system-code> <system-code> community.engineering@ft.com\n```\n\nReplace `<host-platform>` with the relevant host platform, e.g. `lambda`, `ecs` or `heroku`. Replace `<system-code>`\nwith the system code of your service (this needs to already exist in BizOps).\n\nThen add it to the shared secrets in vault, i.e. in: `secret/teams/community/<system-code>/shared`\n","gitHead":"616eed81ae6abdb88be393456c3b949ce482618b","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"rollup --config rollup.config.ts --configPlugin typescript","prepare":"if [ ! \"${CI}\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.15","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.18.3","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.8.0","rollup":"2.67.1","ts-jest":"27.1.3","ts-node":"10.5.0","mockdate":"3.0.5","prettier":"^2.5.1","typescript":"4.5.5","@types/jest":"27.4.0","eslint-plugin-jest":"26.1.0","eslint-plugin-import":"2.25.4","eslint-config-prettier":"7.2.0","eslint-plugin-prettier":"4.0.0","@rollup/plugin-typescript":"8.3.0","@typescript-eslint/parser":"5.11.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.11.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.0.0-beta.2_1651074455010_0.7784094969772093","host":"s3://npm-registry-packages"}},"2.0.0-beta.3":{"name":"@financial-times/community-js-metrics","version":"2.0.0-beta.3","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.0.0-beta.3","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"1107cb890345fae5ae7fadf3bb7f82479edb1ad6","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.0.0-beta.3.tgz","fileCount":9,"integrity":"sha512-TipRwwU5FgQg8pnNss0M3dnNpp0PzD9+MWRaHr4MJy+htAWOTAYhJ0nX7aj/RgmGE4hqeDpeLC5bzsjjcZmsFg==","signatures":[{"sig":"MEUCIAyCeh/MdlH0Vijv1PX2h0WdhQdbH9yFKXdRY0gGJr30AiEAyAx47HUqAM+miXKOQS62niGCwUeF4ZNooLU1DoWtagU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":269002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaWhXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqVRA/+N4y25noEVPrw9S4ok2sIcYWgELbWh3462BLyGwEWb89e8gSS\r\nTmbEPHqsxLcBb8R/3bWl4PKh+vS1ljjVQ9EuDMj7gs+Y6S8ToYweQ4mnZwNi\r\njkwP48Ez7PVA4EZS222SMjz31aedH1vBvnVacizwC+OtXgLg37yGzUpEHkSj\r\nc/Xab1JDOQI4HhNUOcg8vuDP2jBIWNNlzgWTp6p7srImayihetBnQeYzc5aW\r\nnVxAwUvLWjeEClJe6SaEc2RHgYDsTzwt8QYqhKzD2F8ozPN1lM6e2yZyIZCh\r\nVBA+DBN7toPGRN5VG7uMLWGtdPON060Z84oXfPwFDkQlWXBchNOedCeL0G+g\r\n7IPJeuZ2AamI5uNk9fg5ftw3Ng7BxqWxDMOz1a4b9uPAbCwwOCtfRBKuircL\r\nUiltfMX/lTSCD8MGtGmyXS7ImcUoIn4TnKo3h7yvdp4MZMlzCKdGQ9bVN3oB\r\nW2gKatSmqin0+D4lgNNETYUeVOPDOLBf+pifEgWdf++jpHTYm5/CRF9uxUxk\r\neA7xe47inkER0/T6XDRCDdPuGM3hjOO8hwFkzmRzPrT3G5eqln8NxHUXuPyl\r\nVe6j93RAQokm/pSZHs21A6wOPVV1uI0lDCwmt6Duo30lRazSr8DJvsF5Hcio\r\nW+MpwPvrVx8bjHfFw/htg1RIDdbmiUnmVF8=\r\n=Yn64\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# community-js-metrics\n\nMetrics for community javascript and typescript projects\n\n## General Description\nThis module exports a singleton, an instance of MetricsClient, with extends EventEmitter with the following Events and Methods.\n\n## Events\n### `error`\nIf an underlying MetricsDestinationStream errors, the error is propagated to the client.\n```js\nimport metrics from '@financial-times/community-js-metrics'\n\nmetrics.on('error', (error) => {\n  console.error(error)\n})\n```\n\n\n## Methods\n\n### `metrics.init(initOptions?:InitOptions)`\n\nInitialises metrics and adds destination streams.\n\n**Arguments**:\n\n- `initOptions` _(optional)_: MetricsClientInitOptions\n- `initOptions.destinations` _(optional)_: MetricsDestinationStream[] - an array of destinationStreams for your metrics\n  to be sent to, if no destinations are set,\n  metrics will be sent to graphite by default.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nimport metrics, {GraphiteDestinationStream} from '@financial-times/community-js-metrics'\n\nconst metricsInitOptions = {\n  destinations: [\n    new GraphiteDestinationStream()\n  ]\n}\nmetrics.init(metricsInitOptions)\n```\n\n### `metrics.count(metricName:string, increment: number = 1)`\n\nRecords something happening in metrics and sends to the destinationStreams\n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `increment`: number - the number of times the thing happened, defaults to `1`\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nmetric.count('didThing.success', 22)\n```\n\n### `metrics.end()`\n\nEnds all destination streams.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nawait metric.end()\n```\n\n## MetricsDestinationStreams\n\nThis library allows the sending of metrics to multiple destinations if required.\nThese are configured at initialisation and the available destinations are listed below.\n\n### GraphiteDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: GraphiteDestinationStreamOptions\n- `options.metricsPrefix` _(optional)_: String - the prefix to use for your metrics, i.e. `'<uuid>.foo.bar.baz'`, see\n  note below for defaults.\n- `options.host` _(optional)_: String - the graphite host to send your metrics to, defaults to `'graphitev2.ft.com'`\n- `options.port` _(optional)_: Number - the port on the graphite host to send the metrics to, defaults to `2003`\n\n**Note**\nIf `options.metricPrefix` is not set, the metricsPrefix is built up from the following environment variables:\n\n1) `FT_GRAPHITE_APP_UUID` - will throw an error on instantiation if this is not set\n2) `ENVIRONMENT` _or_ `NODE_ENV` - will default to 'unknown' if not set\n3) `DYNO` _or_ `AWS_LAMBDA_FUNCTION_NAME` _or_ `INSTANCE_ID` - will default to 'unknown' if not set\n\n**Example**\n\n```js\nimport {GraphiteDestinationStream} from '@financial-times/community-js-metrics'\n\nconst opts = {/* ...opts */}\nconst graphiteDestinationStream = new GraphiteDestinationStream(opts)\n````\n\n### CloudWatchDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: CloudWatchDestinationStreamOptions\n- `options.clientConfig` _(optional)_: [CloudWatchClientConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/interfaces/cloudwatchclientconfig.html) - the config you wish to use to initialise the [CloudWatchClient](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/cloudwatchclient.html)\n- `options.namespace` _(optional)_: String - the namespace in which you want your metrics placed (see note below for details of defaults)\n- `options.dimensions` _(optional)_: Dimension[] - the dimensions you wish your metrics to have, (see note below for details of defaults)\n\n**Note**\nIf `options.namespace` is not set, the namespace will be `FT/<system-code>` where `<system-code>` is obtained from the `SYSTEM_CODE` environment variable.\nAn error will be thrown if this environment variable is not set.\n\nIf `options.dimensions` is not set, default dimensions will be added from the below environment variables, if they are set:\n- `ENVIRONMENT`\n- `NODE_ENV`\n- `DYNO`\n- `AWS_LAMBDA_FUNCTION_NAME`\n- `INSTANCE_ID`\n\n**Example**\n\n```js\nimport {CloudWatchDestinationStream} from '@financial-times/community-js-metrics'\n\nconst opts = {/* ...opts */}\nconst cloudWatchDestinationStream = new CloudWatchDestinationStream(opts)\n````\n\n## Examples\n\n### Lambda/Serverless\n\nIn a lambda function, simply init at the start and end at the end of each invocation.\n\n```js\nconst metrics = require('@financial-times/community-js-metrics')\n\nexport async function handler(event, context) {\n    try {\n        await metrics.init()\n        metrics.on('error', (error) => {\n          console.error('metrics_error', error)\n        })\n        // handler code...\n    } catch (error) {\n        // log errors\n    } finally {\n        await metrics.end()\n    }\n}\n```\n\n## Guides etc\n\n### Getting an FT_GRAPHITE_APP_UUID for Graphite metrics\n\nFirst add a `FT_GRAPHITE_APP_UUID` to your projects shared env vars. This uuid can be obtained via the `/graphiteuuid `\nslackbot, i.e with:\n\n```text\n/graphiteuuid community.<system-code> <system-code> community.engineering@ft.com\n```\n\nReplace `<host-platform>` with the relevant host platform, e.g. `lambda`, `ecs` or `heroku`. Replace `<system-code>`\nwith the system code of your service (this needs to already exist in BizOps).\n\nThen add it to the shared secrets in vault, i.e. in: `secret/teams/community/<system-code>/shared`\n","gitHead":"bbb0c67ad69916e847e2d0965d7dd6a90d991774","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"rollup --config rollup.config.ts --configPlugin typescript","prepare":"if [ ! \"${CI}\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.15","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.18.3","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.8.0","rollup":"2.67.1","ts-jest":"27.1.3","ts-node":"10.5.0","mockdate":"3.0.5","prettier":"^2.5.1","typescript":"4.5.5","@types/jest":"27.4.0","eslint-plugin-jest":"26.1.0","eslint-plugin-import":"2.25.4","eslint-config-prettier":"7.2.0","eslint-plugin-prettier":"4.0.0","@rollup/plugin-typescript":"8.3.0","@typescript-eslint/parser":"5.11.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.11.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.0.0-beta.3_1651075159580_0.9340052687710951","host":"s3://npm-registry-packages"}},"2.0.0-beta.4":{"name":"@financial-times/community-js-metrics","version":"2.0.0-beta.4","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.0.0-beta.4","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"102181b5aa9315617636ac785973771be8426c9c","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.0.0-beta.4.tgz","fileCount":22,"integrity":"sha512-jORbT34wdLh5+TFadwWMxUrYBs8KRvJSuQed7qo3mOzuxxYuMFPBxAz+WO2Lmj9La1VDWCEzBhAcNFKwU76vyQ==","signatures":[{"sig":"MEYCIQCkzQf3nwMarQg1eokObegIZesOHfOxZytjqfMXtzrbEgIhAIHJOyWxBbAoK6jVVJ0va9rVDG7cM/o1tvgYJ53IIvbx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaYpaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNaQ//beV9Sv9mI4klHBSPJxP7bMPB4RKudYaQ9v0LDINXUTIMmc+v\r\nFJXMtgpPpz4PfdbeqPP+o50JTxxOl1lzfqAUTo7/Aq4feprx5BdZfS1ctXmx\r\nTrC3//uTsfaXxW3MOVFAA+50em6ObMNf4mBk6GAPN5NT0svOxSBpeSASCjd1\r\nEko3czJ1tL6bOX64vsqk/OjzcTdrYVfLuFiWUAYaSfyviY5piSAZBI3N1Ga2\r\nYh4e2LYIroAxDIA8uO/FuDEKPproyGHHPiLlraw6QW+MyPvWNWLpu+Vo0+Zr\r\n4GnYsghJGCIm0hjhu9F5FIG1Zr3W/Df8e7A390xZ3NfUinLowa+Ig1fCcdiP\r\nEl098gwq+4q+jefD+6vFpDEvqJprr+KSJK3ja1uSspNLRQTOjQziamB4ijsN\r\nwWIE/vHQJCQ4eGcPhjYZ5xinD5t0EVma+6zC4Ba/JKur8E2Evqy4e7aEOs9R\r\nG0oMqnFIj/oigopWlM9qq2nD8+JQtqeVLKVVoWvS0xBG/LcOVB7qD7/+lSet\r\nPBh8YYFraES9+ZbhWYdrDGjKBZsHM7ZPkS95vAqFFGvcpce2yMNXdK7qUn+P\r\n3ieYe5kIWfGKDjVtWEzpWvm4K8/54NQ2wqnkIsDwJ0pgV2MKhVfHSLDXI4B0\r\n7ySHAt8TpzYQ7+HilBYycDiweXb10yqV7N8=\r\n=JgSc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","readme":"ERROR: No README data found!","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"tsc","prepare":"if [ ! \"${CI}\" ] && [ ! -f \".git\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.16","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.19.0","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.0.0-beta.4_1651083865912_0.6961259520364704","host":"s3://npm-registry-packages"}},"2.0.0-beta.5":{"name":"@financial-times/community-js-metrics","version":"2.0.0-beta.5","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.0.0-beta.5","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"b823d39b16f18881704583e4c1dbed7de12dce5f","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.0.0-beta.5.tgz","fileCount":22,"integrity":"sha512-5rNS0U1Xjp+7IzkzoEUKc9B5auIF8h3a4yyrPkRXEqD+ntqZ5RQpGqfarBfWWyZ49vNvJxeEkOUuKjaNG2FiDQ==","signatures":[{"sig":"MEQCIEVfll/dL68K+L14k7IzbtEatJmTG4pGnrGVnVSwJLfpAiAZO71J/RyUh9Uj+aCJT4L4bhluCMdxTwDnZTSO+ooNeg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaYwRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroZA//ar1EaemmluoTdB7TZCKkN/XQxq3ozuSioybGZnNB/iBDOkIm\r\ntwu0WgWhqeNwafZUUAzFpnpW/1WI+0XT1LZ7X1g5FjC6yKTSbe9d3dqrgnin\r\nQGCnZCoRrA7vW4qGs4uaewdLxv1N8Q52LDEW38jx9rVDvSn+76m5vow6usK3\r\nQEj5i7yVx02GDvXyxxxHIa88mpRph8zcu3L7DEVF4EKU8PCYVfhJF1ITFP0d\r\nL/fjfa1cYQHb392+wrxevc4GxnjaMAEorPE0t1WkM2BaptwBVTjDNY+d2xBr\r\nlYatW3mP4+RXTTkPRadXqTbJ0X2fFBEWnJtohyOOe43e1EO+hSk6533zw28/\r\n32ziQCOiuUsGpPC6V/H+aRNuPy1BcNkkPbXMxvOoTFeB8XGdvtgjE+1MNvXh\r\nx5AneiZPd2Wtz7fdrCAgzdQHbKCV5jUPcIAKsAJ0kj3m5FHSvBI0L1Y0gQlP\r\nnx6jOOCmhrDy3VIcN8mRWiRtOra7ve18WdHj/UzkD5n0+p9MTGZCxjds8N/3\r\n4pqMXO4Bv0dtrTWAFks6cVkGfu3fV/+pgjwIcTGvZEPMoVMppQRowxoFvJfy\r\nGHsU/Px+OLYiqjEAGbo7rj4gwwLC3Nh2Zpa7n8HZhIT1JqJpfN+CcCc9Gz2B\r\n1TJ+DGrYZeEclc+ddSWfDD9NPJlxOwKLgo8=\r\n=QCEP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","readme":"ERROR: No README data found!","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"tsc","prepare":"if [ ! \"${CI}\" ] && [ ! -f \".git\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.16","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.19.0","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.0.0-beta.5_1651084305481_0.07722649839413398","host":"s3://npm-registry-packages"}},"2.0.0-beta.6":{"name":"@financial-times/community-js-metrics","version":"2.0.0-beta.6","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.0.0-beta.6","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"5a6bdd30742d2d488a2615f536551e263c6b94fa","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.0.0-beta.6.tgz","fileCount":22,"integrity":"sha512-HWpxPqQiyl7cKbyUHUQ6Eduea3fg4kyQwWWRvuz/voMyFI4/jSf8DUOagI+dhltVFyQuW4w3+zaLTino3Ajb0g==","signatures":[{"sig":"MEYCIQCqc9hWRDCkm70U7enk7KlveBrXLxWwv3062JUPiqFGJQIhANlmwBlZfhUxfYbDtx/pgkhJSKV4En4n5K1vCEzP98Md","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaZCPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrWCQ//eZIu/fJrk04TkRNgGons5O1nnGePbOz3ExCG9BZg5p4heR6g\r\nFFs+16T89FdVEFDy+aJcYh1iH0CqsbNxTxxQDo+RLIudoXho3sDKKLIOR701\r\n1Xkw45uuueYG2+STKna5D9KkarTfGVkOb9+X93ArQk1ZAexVJv/0b5TCcQKu\r\nM2s2FhHsm0GerBnO6tdsKQQh1/C6jNpdnZQyYWhHZeyo/m5H1HpHrePig80+\r\niqizmlVHIoXPOfAQ95rUf/x6fcXfoNYiJgcy0wPc7oI7yZIYt0mXqaPbvXVG\r\nUJEzfghC+SdW+8lVONrXJ1lMWD2BQQX5bHk91g3EpOMUIREu6jNFSJfuxTjO\r\n6xWu1grKnyfVr+vGmDz5rf+rNryaqZ8b+L2xGi89GXVjY8cnOXPuSRuqAl6P\r\nXgIf+ov4FO8QNBuOeKTgh23nGYfHzl5xO+5CwAU7QOJ9rH8enBc2X6aD6dK7\r\npXCGHiEcZHaFX8VEiMbzIM2Ckj6RjoEzJUn28o0RZKLzfA41iKmnZw/uB3HH\r\nAksO6c11nViE8ZYi5npYK9bpStI5fJtNJz/VuVAvmH5pUjNWEF/205nu0VSt\r\n5QaxMNh2C6d7zj8u6KQ7DGZwgA6wjKPCzF92jz637HbwW+oKD0BbIV5lUERq\r\nI6aC6+0LjfItU9vUHCvqCfuIELDWrDKOswU=\r\n=Bqt6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","readme":"ERROR: No README data found!","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"tsc","prepare":"if [ ! \"${CI}\" ] && [ ! -f \".git\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.16","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.19.0","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.0.0-beta.6_1651085455721_0.8249399369493393","host":"s3://npm-registry-packages"}},"2.0.0-beta.7":{"name":"@financial-times/community-js-metrics","version":"2.0.0-beta.7","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.0.0-beta.7","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"90e5363853a6646f5549ce12c3301a3b31a35e3d","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.0.0-beta.7.tgz","fileCount":22,"integrity":"sha512-g5BmHiVpgEU4ef1ZKAlJTAmYq7FrpyQt/F5vuhB50mFg06FPmjKNgdqKtPHQz4q4Kd2LANiRLd7gFeYBRribAg==","signatures":[{"sig":"MEUCIQC7PK9EAMrKSbD7oQgFHaM9b022vYPcI0HkpQeQ/8QMVQIgCJHFWdW8XrZx1j9IhE8xHGOz0MPaatW3CJw6WV/oc7s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiao0YACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqi6xAAho9dnPySX7bzcN3XTNirDMoXFz8aiZP2Z1aMBtim40S+9cE7\r\naEQum1/3CicTMmyDhRGctOksLPrAZryU6V0PRsNvboIkuKB78oyPVPZOlNba\r\n56t1EqStXH6Sx18D98EFI4KedpUA/QqK4252TKvUbVeFRn76AteBpADyyhBU\r\nk6ev7rbY+/fWcs5TMFv0CieY4iF6Zy9SwK6sHBekPi+CB3MZS+R7A0BGOynt\r\nJMJC6tX0nDiSJgp3kmewxRBynOvlp3c3mIMfQGHdmYZt/enH+ZNb1ih+SyTQ\r\n02jqIWEDJf18CXtGUAjBu61u5p4NB0xxM5YZ8QeEySgZMqSQo2QCOskgJUKo\r\nOTXat8+MtRMMSWIJY/3vjucdZCk9BWaJVfKFpOGC8F+JCbxsGJGljelTfnDh\r\n7VYAWFFJO4SYaIGlH8ap2JYvYsppJdE46/aBIiVkjMQhwKUtORs2zXRUp++o\r\nTouihf2sf2Z6Ncj4t+Mgn78VR1cg2kWEv44/mCpWsolmrYhhzbBfh0ZTW64L\r\nGmWa0BRAUCOc9Fx+FiuRmQlr6KR9INIES3O70RboSus1xsa0H09ZRyUCrFzO\r\njYqRiVnZgbc3swQlO/PpKuIvHZWS6Rri4iG052kKB7rdV4Cy//G4/FxoaCZr\r\n1r8PYhbHXmAM62G66Of6+IkHYZJw88xjR/Q=\r\n=sDc1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","readme":"ERROR: No README data found!","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"tsc","prepare":"if [ ! \"${CI}\" ] && [ ! -f \".git\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.16","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.19.0","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.0.0-beta.7_1651150104506_0.3308936153831339","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@financial-times/community-js-metrics","version":"2.0.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.0.0","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"487e1c3921f6fb126c9bde5f0f891d2b3138624b","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.0.0.tgz","fileCount":22,"integrity":"sha512-mMTYszYMdi0MlRgPv4TXtOLcznxvuVjvL23Zi7xtPBkZw8KBK/gowefSgKX307uVnKF7lTs4KnE6vRpUxxJ95Q==","signatures":[{"sig":"MEQCIBBvtuSjLkPw37i50cDFoebdjob2rIdovCwcfp327YeXAiB38F1x9Tjl7dqHe9xpkmTU/Et44pjTqgouk0PMCw6xzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20444,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJia+/WACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrlPRAAh0VPFe/uDFP9O+vMF+RMaelZp329yXgzadhfJLyyYm5rIFco\r\nep1Yu9pKnOO3xOBPZjnpyXA/y4yDzYjspYW7DcjKTfZDFzeKfc6t1mE82MT3\r\nFuxFjcpKTk6vLyRpJslyMeFKlulOY80foaWshbTucQn2fwteaKBF3ps4aUiA\r\nuWYBH6Z/Et3lQNTVaEfDKRQhDr26v3rhX2otuN93PEDcSAOugqOOD6hIUeOt\r\nV36XHicjH/DpuQBoU/Z6IflXCSlliZxRreNCXF//RQ6qYzJ/u12nyyZNqj2H\r\n7oOg8T5bbCOjmRQrxdmC58EixXjEmZN9XXtKoSHuAQpH/iu9IlvZ8xkNGuXo\r\nrfvdTMjYVtSvxAbMda7ZUbHU95jpPszZXGpnlWjB3lPJzxwhXBPmDjco//Fo\r\nCqNhR6v2Memd4h/y9EJe0J+nUqVG+jWHbfeRcJDjG+Jdr3QbNpVtYqTE4JPW\r\nJHYtSYn/S/N5lBxaLeMJx06/jiiLTeQJ5sNg9sFWTkuN6WMoIZsY2wuF7rbv\r\nWljrBYgOhEjeujp6972qyyo+zlyFwGkeXjzvh0n39c+qIdUy0nF5R3qPJcM5\r\n1lfapoK3XZH9t7qJ9Ts1qo5ms8N3LEzihw0TaSphmNtUk4UHTHAWSb9WovRC\r\nrdVZjjFFzRHlnxvNvsUlUyjAeIqIIE2svNg=\r\n=yX8Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"tsc","prepare":"if [ ! \"${CI}\" ] && [ ! -f \".git\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.16","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.19.0","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.0.0_1651240918588_0.07071115997143207","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@financial-times/community-js-metrics","version":"2.1.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.1.0","maintainers":[{"name":"nikita.lohia","email":"nikita.lohia@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"chee@snoot.club"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-js-metrics#readme","bugs":{"url":"https://github.com/Financial-Times/community-js-metrics/issues"},"dist":{"shasum":"2e1bbb7fabe24d834c35a877a7e4a6e26e93a84b","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.1.0.tgz","fileCount":25,"integrity":"sha512-A/+2ARzDstQ/Vd2i5tscuGX3YxiaK5y0xga0zPId6c4y7J2R7JMVDUxyfJ/loIAtWI86XcqvDaZj5EWnZZDdTA==","signatures":[{"sig":"MEUCIQCfSISPwY4Rcw74vvNnxOVhE960kTOcyJJ7QnLOElMg7wIgY3GpeROfX2CdF0OEzwIg1LG85e5WZcFgACgN5MSA6Ws=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22098,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibuMvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp4aw//WS/ZfgEkl2OoOAeXn+FPAhbr/k7doKPa/DMVnJbCPY8qqdaH\r\nPoCNfj3ieelVhIRuLUX4XBFDsoKTq7Dj1esTGj+H5qFtcrHdLo2Xn5vksU+9\r\nnlLUljkoVxTNqpBlyw9OUOjTlz9gtW/QpbtuIklFcpq9V7fyJ/HQqIX8VWIA\r\nuGWisrdOxv0iVvpvKAzCrLt3SOuCgLwSbt37LkH5qKHhomz4s+e5xDPM0Pfa\r\nAiva7gdtkpOFUgdARnW3ho/YUkhrvkxBFLG4ZnSTAShv4g7Ima3tR9xU1JmD\r\nW6PjWXsmB6bWXHATUkNGltCcnHT9Ps/PFAWtXwtXutZ698iEc3Ql6eQKxjJY\r\n/9DcB2G7MLnKIdzSJa/g2GtalJlEZIWCK4zqQKSk9A4a02jA3yI9uQXqVHk5\r\n5Ik0KRYpgPTU990U6DSz24U7JlCM7Ecj7q2AZ5LQX1mk5wOcYHVoqCDwShT2\r\n1UzonrUxbfaNNrcblyL2trCudzkUbkw+BCAXMugb1LzIublW2nAMAFckYL0h\r\nHzrccFynuPF3AoO73jHRwvQfbyxBh+t41i5qPyPahSFznvfTBlyK5Cu7+O7E\r\n1aDj9TpqN4mEKKS2lIdY5hNViAorhZyMZ4XlsasWJ6iXYzGJJB18UxR/B7q1\r\n6yR3ZZwKItCQJzAhEzcL8Wu6Xvbqphj1hZg=\r\n=wiK+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"jest","build":"tsc","prepare":"if [ ! \"${CI}\" ] && [ ! -f \".git\" ]; then husky install; fi","lint:fix":"eslint . --fix --ext .js,.jsx,.ts,.tsx"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-js-metrics.git","type":"git"},"_npmVersion":"6.14.16","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"14.19.0","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","husky":"7.0.4","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@financial-times/secret-squirrel":"2.19.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.1.0_1651434287552_0.5693453068206606","host":"s3://npm-registry-packages"}},"2.2.0-alpha.0":{"name":"@financial-times/community-js-metrics","version":"2.2.0-alpha.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.2.0-alpha.0","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"8199c54edea9828f64e668c68735fe303b8ae194","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.2.0-alpha.0.tgz","fileCount":38,"integrity":"sha512-h9ZC6SNpNdc56GO7GwLU7ye3dTehibW4Yi+24IZCDANdAXKxHX9fdhq9aAy9F4e8XEwA6qPkaWq6U0nWB3uqHA==","signatures":[{"sig":"MEYCIQC+EAV28TgWTPoOpKpyPIU/D65cc/KuRKuuCmoGoZZ/+gIhAJoRN1j0d4n4c4XMRsmlNuFECsBjT4GZULuHA9g5uqCu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0TSeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFmhAAgJd9PExK3TaFjRdOHRXOFA2mfPTU2KOMG2sATjymDHXcNe+e\r\niMWQ5YKH5fpauuXKpeZGegpAbLYzN1qKGGVZ+R5OeLpFOM7qo5pCyypirQlu\r\njoVc+9vPGiqCjsohOZxgY5sgT/RydFkONvfah0o2meLCukbpuSDnFXaH0Xty\r\nLhPzpxTMGU/NO5iNKLWhCC2zN6xYtH2KLoArmMgUIxDObjz83JommR8l3ZW0\r\nTwGAcD3vDY/4rnm3bQFUetslGucXhqGe7dtaGnEixz6ux6XX/CStfAbZiyR3\r\nNIqv9eqj9md/SJtTZKeN4T1FCO//5c+Tjy9vi4Ie0effucHvomXgt2lHiSuI\r\n2zxOMLL+ENILr2+hHutvXbGAIetX6w++FMOjJZcBC/J60PIhhD3oB3F2rZEW\r\nn1z/uWeKMyxDfSBk7tFuFmdH+hNzK8WpAxjD67QW5N4hUw1wA9l11sYXHiwS\r\nWohYjgycoYQMmiV1Mmvduva68oMkTrsyAzwOvMFONYMRttjCNRQKc7sIblvr\r\nDBoBEXLXngxHUavLqdJGi/oQACs3DI6oaHD0N2a5Kqi0gnt4W79Z6V8GiT2h\r\noh+GyA3Uf/P9Sk9XJ9vBCo/4+CaLfzCSp14DtOdmp5lR62r7K7AB87I9mlSt\r\nyJuQ3rsmkUoTuH4JNeeKu98tFxORcz5dJKw=\r\n=yzXh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"6aa0c28b67df305a34131ed17a66e96481f340ad","scripts":{"test":"jest","build":"tsc && cp package.json dist && cp .npmignore dist"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v16.14.2+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.2.0-alpha.0_1674654877989_0.07421454750379897","host":"s3://npm-registry-packages"}},"2.2.0-alpha.1":{"name":"@financial-times/community-js-metrics","version":"2.2.0-alpha.1","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.2.0-alpha.1","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"834d56ab0fa148c378c3e886eefb59b10252398c","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.2.0-alpha.1.tgz","fileCount":2,"integrity":"sha512-LwdkL09jet5vEhQgEsNzg/+PCA1OBa/C7YZ4DQudZHwIAsmhBX9pYSmUTHxr8SWvebd+4RSh5m6xXMGCF7ieqA==","signatures":[{"sig":"MEQCIFPF9Ux4n+8agvYDqrHJ5yB/DgGCdxo9ZpcPXGC/Zw0iAiAPefFS8ovn7zjRSKvFD5oSTXpukWjbsZakZnPgGElxhA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0T/rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqr8BAAlbGOmbrT/ttilGZ+Igy+U2s+yoacEGtv+WpisR47CTpi7RJM\r\nm2PDPAximEqBzWpYTkJEW8Eon/PYlH8pEZTIl4okzcWpU95zupzx6HUsFR6v\r\nXz/tqozZ6Bw+mtj0O5Q/3B1ereoCbUq9jMSwpU/ezXukbw63ewDN7IbqolXt\r\nvfCpx3ozWZQhEv2gAF201bElqpTF0DdaRhduUpvKirC9etRhOqlT1WdkvQfc\r\nnLslcJ//WYc4jXTpj4YwJ7GAzv+as8/JhmI2JAwpjr9gRU4/csPZszR2pBR3\r\nwsEdw7Y7pGQGbI2N/1V1djsxpHd4N4qmki63qXquDZHQf92wlyw0c0JDYMu3\r\nC+It+HcgaP4XRKoQ6/4CE8a4nWJby26vXtu2jH7vcKGP4ca0qsh60cgusWMn\r\nvs9EB5rjFG7CpDqJBrzkMFBvhL7GCBnvfbyx8SpWqGNzMClrVePVvkNPeTtX\r\nhXfDY/kKhJk8kkpglTVgwAMPcky+c0sklU70iBrTgyqnscaTjQbdrICkwoBP\r\nm/vmkxZfMMJ4kfkS1yUQT6uEENGwwYYqP4MHP9RNE5aZDLFp6EkGTn9uhbNb\r\nFvq9aWLG2eIB3KWsAoalPrz8yMI9iSdfsFVFg9Ta9u0Tr0xY3hwCCoG+CXEo\r\n2EUSh5ap5mr7ID+Zp8Lhy2pLfHWo56CHgUM=\r\n=lvCi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"984b7e5650de09992ec9a82c5a20a9baa9213d04","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v16.14.2+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.2.0-alpha.1_1674657771274_0.7145393264919386","host":"s3://npm-registry-packages"}},"2.2.0-alpha.3":{"name":"@financial-times/community-js-metrics","version":"2.2.0-alpha.3","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.2.0-alpha.3","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"9590e3550500aec484d4d6bb6e8452ffc7965ee4","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.2.0-alpha.3.tgz","fileCount":18,"integrity":"sha512-obloJMSf2jEw4sTp11BACyZ1XVkrTCD+WTp2YCxyWP5KC092IlGtVgmKgVjZGltqKkJZHplYe33SsH+1Y3prPA==","signatures":[{"sig":"MEYCIQCrbQHsgbwIPKYFZwT8En9C1x71RH9Lnlk+RRV1VHYqLgIhAPcqAN4Bb9Bc0ey4mqz3Mdf8NolJp+TIHx/a5NqTZIXH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0UNQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvWw//VWtyKFW73eNxujPOrT3u6a1beJ5AbIDnJPxP4JQ0AzFFBmbu\r\nriG+EqmMyp7TxwsI551CCJUrhbM6mbXTaFiFizQQkGZej1mna50hgy2UiUH/\r\n+uEnsSU8bz3TO00A0dMU/tEnQoqgherv9aIJAiFeacrMlgmrjq8ZjZKoVfqq\r\nBCdZ0HdN7afQAcNVvsC16p5A08ScydRyCfpAQpvufthNcRAPCw4gV1n6Bfcn\r\n1ugGqKh44KJQoDxXO7R4mTrtrpuOyBkMd65EOFLkCHyOIHPc8jKfEAu1x1Gp\r\naDCiQW31Nop5LqMFHM4yAf7OXBhSORMtCURgo6YGHoIc7+N6e2dNdoIWLsZv\r\nAA6cMut3vy255CnAk+IdFwEVN9dbA5q2YocL90rzhvwNC4wfW+fWjH8LBDf3\r\nkeQxzj35QqBeNHdoOADoXc3yFLpanU4uFu9n8JM4mfHOcDjLdt4kS8dFYVKs\r\nmC6FTdX/jCS7c80H1Beq9TO+C0lyfnCXVxkwxvX8uNea0/NRM+Re7GSHa4BG\r\nELPrII96lqs5Mmo8ZQmcf/p5bkcvE0h2JuZkx3t1j6+/s4vRCeBAFlFy4ELo\r\nyLsMtKjC79MFLYTG/03SjiLJB1nJOLVXfSd4t2KXpt+DygJ6QtcFlzGNlrn3\r\npawWKAYe+F+mf3mp4GCbFX4RR+ydCLBW2cs=\r\n=YAwJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"d768e8ae00c44009e9ad296cd64503b1f5237aa0","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v16.14.2+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.2.0-alpha.3_1674658639918_0.9052157189059664","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"@financial-times/community-js-metrics","version":"2.2.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.2.0","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"1bcbc140ee48c3e845a482673cd29e750fec7f0a","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.2.0.tgz","fileCount":18,"integrity":"sha512-frGwk4KcftVb+kXI6unXIVy6AKJ37/U4r6whNxC9deXX5KrbHkimXO13GBKySPErRsLQAVrtE1mR0qVAmX/rww==","signatures":[{"sig":"MEUCIQD4tCEXcNWow5qa2g5cCmgzeO3sOv5yM6mefOeLGU4MTAIgbSw3WEDDG1btHQRj++sKSREo9aOVPd5LPwIwWB91wqg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0UqnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrwYA//RXFkmD9v5Ia9qYkbD4bdXFkJRiwEfA85kvCjzbeuQHvkkRVR\r\nUJPP43dUYflvkPylrcCGwSHBYNpL8FBUit9tl2oULo0kaXyayiOM1yeusWcP\r\nY46SbCmjy6GegZ7XDrPme7N5X6SQvazLl4APtXeq4X0BgnkxEqyOqmjTJUNX\r\nH/SqC7gIVLamUY5GepXII2mAXyHAtIlI/kkXQ4AFmKcpPMlVGGqSzLyd5VNA\r\nFGbP/DWc2RkP1TR6GSztp8SiCx47byhfwErmDNkQbD61NgDBZrTmRqjsb0qr\r\nIVp5+X9qMzPVQE0TSw38V7pSR1dM44LmryzXYgoDOaaFIcZPMdjdJaVYM9Ly\r\nqwsc9MxuJ7hbCG5PRmJELKxqTwqyyigt57c9JrdFgzST/vmC/vznnwtFI4QE\r\np4tq9wsYFbf1AqkoYOs5p3OeaY2z3puAsofZMl0957gdsWieA0vRva9266y0\r\ntHT9L6XDo+lVyTgVxkY2eQ7qMDXhwHzrgEZIfcawYFOlyJL8XOcb5H/OaXlo\r\njFVZ0TQ+Z+aLK4dcvIJ+gi5ZK1lnOtgzXukZ58LgZxzIcH4x9+ZYNNCr37Je\r\nq0OsZW7OL3NpiVBB9Mgx6btKQnFutUXnljXiGmZAMZdBLybyQ/T4LfBpYAVl\r\nKEi/FPNvpu4eAArJSga+l5T255wp1zb9pqw=\r\n=zxB2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"b71b8ba99799fa5af64e9bb9f909c62b56272c92","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v16.14.2+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.2.0_1674660519219_0.24761997821093584","host":"s3://npm-registry-packages"}},"2.2.1-alpha.0":{"name":"@financial-times/community-js-metrics","version":"2.2.1-alpha.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.2.1-alpha.0","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"445ca2d365e014520f9dd8a914f76769f9fdb285","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.2.1-alpha.0.tgz","fileCount":18,"integrity":"sha512-4KVlSg2GBafvsYYCG3gav+fKXupWJwSIL8Wr1coj+Ty6SfEXrbQ62TR7jeBp/OuvycJRjcXbQ5r/dYrcASuanQ==","signatures":[{"sig":"MEYCIQDO2UCu0hZ/pLE9B372SyYACyb33JK3YrFgrygKjr7p7gIhAMlXLUMH3ev6etGzoakZZPXkauSkF20O2CAvUXwonFsW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2S4BACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrs6BAAgC+ilhITApPCj1CwvABeerWgA6y1k5TGNHStxg5dy1jX20nU\r\n7dF1dvUv0ZnPvI2QuXc+nH/8hlR/npSzAJ0IejPfUZkgtoweu7151midvEUd\r\nupNTheIeRj5KbcSuaaQXdO0+6UUZgMZ7jyY3t4ZBqBJAfPzJ9yMAsIFWyJw0\r\ncwzc8IYQp4jAy9iigeIH1HakWSpWwMlPgl80f3fPhcK699CDO7jQ22jbiXrr\r\nUjn7GDpRosOVOro1UlCIVgqZu+MTDqr+pG7mtycTRzYJKyjA0yyE4bBKsFg5\r\nGg779ov9OIAw+td7csLzQNjotHcH+TElJnc0UdNMBl2AadFv1kb0DKnZPsqg\r\n9TFQ/u3EQYaNr+3zXwNwkYHjs88zihU1P1L7zpM6himoEBmE7JuNA/4hSp4B\r\nIcQLsWmDFgFZEijEmUPD14fKgihTuiEzs+A9SmzXKe2iSeSUF69mrJqms1eg\r\nrKpc14lZCeGOc+UnKASj7VyL52ONdk15002SHtYxA8Imxu5IKHVEJ9X1hbr/\r\n8MOC5awH/zfmJCEXp2PC1Ju7ZNkaKLlIGVQSBVrS+JGSKzFi/WcoAA4nz+ru\r\ntMQUvN6CVrHW66OISyBeIBcOuL9kqXA3IswkTFrmhZxb5iw500r5yNgeOinK\r\n3NPfVHRFFBSdVqmZYmqScmb1pSflKQZgNZY=\r\n=OYdH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"3a28e400fc4c43ad946ad95412eb84c8c08719d0","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.2.1-alpha.0_1675177473164_0.7928757534374125","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"@financial-times/community-js-metrics","version":"2.2.1","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@2.2.1","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"56784e3172da0a48a295c35600a5ce6fe755db00","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-2.2.1.tgz","fileCount":18,"integrity":"sha512-/Dlo8gGw2VxevodK+Vy6KafTG/iP78/GbhPjiZI9FlDUtH3nw+VCyU82hUew1kalD86tOY1Dl63i/O9nXxWfnw==","signatures":[{"sig":"MEUCIQDYDN1j77yrDtWlQjFamB5p0+QuG/WUYwSExQxk6LmP5AIgPLe5q5ypaiq6v6+tHm9o3KDfGDUF7WR9WY/EFen79h0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2THhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrSXg//Tjm5YSMICpApoDcSUJ4mJpuAlUq0jCH2S8AuHUfBjcEHtjIA\r\nP+zDlFO/gpdbaUbVd0mKgpg3OhFWaKYYWq16GP3hAznHp1coE4yskeour6hE\r\nDm9pVrm+cVlftcg+RCgh4vNgvZPTno+EE9rcdYwyitOreFhC8mp6ow+kGd7T\r\nCVgD1J/b2vqRSlGuEuezp0VTVnI3YxDHNZEzE51ydBJrp0GFg5Km11T3jKwY\r\n7WFaJJqcPIB44R9W8HtzVCo7/balK4q/A6VTDvoxH10lhZD50EWmNJfsKvLm\r\n4dAdErCK+jQvfEKX2UDEK+uKr7RyzYC9c5bfzqA9YIQAmrPizRiZQeQ68+aW\r\nOeBGkcItkCYvi8OLt2OrqCB3bTYmb9wgZeIcnKqdBOGWy46EPL/JKkvudgxn\r\n51pBkxJdy3IIsRHdQAEY6ivWzeutpjpb0noZa6UhvpDSHuUsaa2aIYyjCHxw\r\nvCRSa5TY+cEgjO5wGPDLD/55s2/OpkqB9IGaZexMLWfxzcUjK6ONJvPxEEgu\r\nuQNlEkhIfebsjE9xHFONjlwnpQjU6rIGcF4E7694V6UEYCmfH0svDGIxHGdY\r\nStCF5fPoAFt8kDJALNjAsTFSrhI62jnTWIN6usEpWlLQWlLMjdrLcj0UNco1\r\n7ps/E18Tk8yehfbdNcsBU08zrWXR8Ic2Jrk=\r\n=ZAJW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"c949ec95714e14fe281d4a88c79702e6e614e1f7","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"@aws-sdk/client-cloudwatch":"^3.78.0","@aws-sdk/service-error-classification":"^3.78.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_2.2.1_1675178464875_0.8396456729764659","host":"s3://npm-registry-packages"}},"3.0.0-alpha.0":{"name":"@financial-times/community-js-metrics","version":"3.0.0-alpha.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.0-alpha.0","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"76243f22db16cd12fe9122aff1b4c11ce635eabe","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.0-alpha.0.tgz","fileCount":20,"integrity":"sha512-3TC85HbH7zzQswOqfrNm35N5l2RBG+evTz78GTk4OPCxk3Xb4vmpo0l2TywMO/PjHZt7YDQvQtb90IKXRb1uMg==","signatures":[{"sig":"MEQCIH5H2Fr7oOcoGRuef4YshSfAULn/GLkltm9In3YKpik3AiAtkSxzXYu+PYtw8nBpVgQYe+vYIfAsRs0YuKvJMzxHCg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30174,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj24IkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaUw/+JWex1N3SulxJgwnNH9SNQVVB2LWs6CmbEh9XY5Y+C2YFhjy6\r\nR6DG+puQx6GokOdVaC1tt1MG+kZqEqtg3tc3GW91AVuA/hSfG6+oxKI0wJAc\r\nD0KTuJ55ZJwXPjFPVdMNhumBXAQxM7XTqH47DrhWMZTBNHuyqBtGOHjvRQWK\r\noPF7tkb91XBZcObXtnki7gzdSVs8KUQHmWwjf522TUQvWgc4vW5UGp9jIXvi\r\nZ7NC+OydUX1oW2WaFh1CH5g9Gtsuxc6r+PRaXEvgc/w+HNFBXh+mNutl0eAY\r\nUaOlHW1edukzo4RyDPZV+ihg/IMjL/XHDBCawe2rxGy+ttxe2diSzWx+JU3M\r\nz6HHLcTKoLO0c2Yzo1YJSfvLAvuADkMuZAg5kt96TI42CPIo+unRSa3oBZy0\r\nc2jOjhBBMBYnZ3du5QbwtNe2hea2bEMmPehF4IfUESRoCgwcf4d7rXLgjU41\r\nvom4x43B7xGYkjAtk5w78VejEQu8raySKWAvyoL461EIQFnaFGfT1l6O3z3W\r\nVmrBMVSHkJkN2c97gqQZbApCY0NkGDv+xkPg80CdPJVBStiYV7Z1RbIaEA17\r\ntUVRBOHI0eZ9mzjDzNPDp/XNWngbVXnD/6rZWUvUaAI9bRnzFFCXxa5Al3zQ\r\n93HIQN72xv1inIvthAsXA5OdZDtNTbdng2M=\r\n=tgv0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"1268650455125b7545c75383dcdef16861e80625","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","@aws-sdk/client-cloudwatch":"3.x","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.0-alpha.0_1675330083931_0.10729557265009726","host":"s3://npm-registry-packages"}},"3.0.0-alpha.1":{"name":"@financial-times/community-js-metrics","version":"3.0.0-alpha.1","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.0-alpha.1","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"6da6540d768a7746fddd0c9d8fb3c906514f7736","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.0-alpha.1.tgz","fileCount":20,"integrity":"sha512-7ULQdA0LjYGyei+85yAkifDri0CiG82VDOpc08e0UfaC+hj8uoKFm8SclNn9IVuZoFHKJjbvs3JQBnpAETCong==","signatures":[{"sig":"MEUCIFFY309P18oITW9n6FEJ2+pWXCE0gQJMvcsjgnH1+SjAAiEA5A3lH6L8l2DAa19ERjNW8cKXAq2g5eyxyuj8/6TvH9c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj25SoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmopvg/+ItKRN8R0pWtiPat+a+sVUap3uMiS5iw5IXTEeIMcQeoZtmE9\r\nBRaYGw5aSiANIVUoNzVEN6d+qrbIcJ77DAC0HPZqyXZ8k2t1WwFVMAC1R8XT\r\nos/xjPasaqdXlk3L4vVxZkJ6TjnIAXbmSKSLcCp+BUQdWtYbxlik8oktZXcp\r\nL+bVjFkYjK9ZC2MgfUVfWb+NgiAM65b+QBD+5z2EcqWgMZnfARRM3jlrr1qw\r\nqHAE18m3s26D8I27zeJCwKJdY01sVY6I29Y27rEsDGXhtqmoCtW9Q1jvpzEb\r\nd3x0pEbrV1kr5XF+PTmS0jxe1lO3RZO16lTOKj3SdpOAB86X3Jj6GtrahP0O\r\nfOTSLwnBHcCxWKUvY5AmRPT4+AKS/Kl71XX0dgTsds+A7NfHxaBcsrDxhCr2\r\n8ozFX5zb+gx1ihI3sBG3nXx8g8khYTfqaCmbogjt6pefp2WyTVGV75sz8mNk\r\n2NLNuQ1SDbx8sbyOFl0I+iCfWvzw0H6zt9ufJTzUwb40uzlcb0P+fUXjqpiy\r\nmbI9pjKMD+EVCkOASnifUu9zLCqFxVRjSzPq1P9Di27eFm+coHKQU4Se0s6G\r\n4lD3oH8zQd+ZmyHBTQLAfovGo3sSEGwpVsB4lHtOqFngBdtk2iER1l/6Ct3c\r\nGMy4V0aJdR1WyoX4acYDwbJqCE8jgsSxyPI=\r\n=VE7t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"b73fb08344316ee6ad4454fabefa409e8ec08be1","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","@aws-sdk/client-cloudwatch":"3.x","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.0-alpha.1_1675334824060_0.9297802264000385","host":"s3://npm-registry-packages"}},"3.0.0-alpha.2":{"name":"@financial-times/community-js-metrics","version":"3.0.0-alpha.2","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.0-alpha.2","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"1824c09a77fb09622a52e211c1b598a3e6e6ca7f","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.0-alpha.2.tgz","fileCount":20,"integrity":"sha512-PLxfyi/6k2lyXvUFZBxVAQw/CjFfooIVhdWN0H5/Jvr7QB75RKcfYrNC4aKfZD3uxy1Iz+SbCpGbrW6wuMqNNQ==","signatures":[{"sig":"MEYCIQDr3Nhb55aUG1x8zQmcBhHPHJP6fiQDP72R1VZHqG7kGgIhAPgBZRtbMahfJ0rk9xTlP9Z5/mZc08Uu2hlwZ219fYYG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj25izACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo73w/9FPgaeLQjGvCGp6bI1Qynh931JKahJkJfXmgPGatu/x9Gd5rX\r\nDj/c8XhUjpnvwO1YInswLC8FWtQZ0bxqOFGlp9rVInBDiaMIOmOh3eK+Z7xF\r\nvrB/kWGZvDXmf+KTtJhbnaYs+sHZlQCH3ihmw9tKoTTB6hKZPwKu8x5lJsHa\r\nW9Y0RYbRXwH+bD0XstEZ+FSoJb7T1gIRBlaDrxXdA6UDly1JQJBRjur6j1ng\r\n8Jj8u3AQyf2bVKDxgJP3Aa2R2g8g2bJB7steY+WCtMNcRirrKREoFPvHrM7i\r\n69HQq35ltJ5i8cyct1mHFFY5T/6MHHYP4JywzCwSUAsV/9ywG5K/zKXyBRzH\r\nKNoudmkRWZFSwMGT65sC+MA6oC2fbOVEI7jKFTNRj/iRUAns21NtuypgB8k5\r\nwLWqubtFltTBtJNghd18GFsSXmhb9e3n194+anTvf+cSkTRBvgjdCMuBJtJs\r\nQu8aQmnEbYqWigRCCltsJOYlYqLgGE27U+jGCBovWhkNMthttqjCYhNI8qfm\r\nYgG1B3JqhiWo3tLmbmaLQZbNqgb8hTKrzDb0YVbGJKetACiW/D3RR0kp61YB\r\n1ftTldgB+zLsY2962sIP+CnDi1/AQGTqHjrStfpMLanyRgv/ot/tp0ebmeZh\r\nYJbkHFvQk7EVyZZH64+BTe3Mska5dJM+Jw4=\r\n=ZeF0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"6218c9c8d1a5cd976b00f27b4d56b5ace81308e6","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","@aws-sdk/client-cloudwatch":"3.x","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.0-alpha.2_1675335859273_0.1435740896046156","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@financial-times/community-js-metrics","version":"3.0.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.0","maintainers":[{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"c0dadebad65b542087f7b7ac5c4f63ada8ce57b8","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.0.tgz","fileCount":20,"integrity":"sha512-sFI0Hyf1aAx8a9se3jIBUTPHSdyNFQolE/1ecnDSLbLGbUZCVf47VZMxlfZejVxd1xZzBpf6SloX7Ie5FZxOwg==","signatures":[{"sig":"MEQCIEg98iuPFbGkDjSkMAmP1fNw/Y0xYsMaw+VijhAzKc3gAiAHUuYOVYbkFsvqkbrp5yhDRV2AJxcKgHQQ7OxeGrlAEA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30345,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3PE0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNUA/+OkxalP64ydvHxqHOaeKs6DA+xLLsrzk5NVh2epo0attajTPG\r\nvgZJQ6/cM3hEs18FnBQZknkhZMZt+m0+TvElIXvbtBi5FR8RoFg/RwWGZtwz\r\ng+1mhzJSnRgaazlDQsLczDY1FymkzKuCPyAm6rt+5wm91e/i7lKzLl9JKdB0\r\nqxxBrWRdxBA/7AhKfn4qapsZS1E1InJ7NvThaMUIho0zC8TKI7UcAY7okhmv\r\n0RJmJdE8T73df+dQMTckpijbngnr6y1rytXf7apnIwP5uEQaeONeXc6PyVl4\r\nbuFiwxvcgr1mMWJP1ZQ8fzk9tsxojpeoNTiNmPMu/qEglLRIFUPx5NB1hf/W\r\neTlwvMskDkcXFpsR39Zzj79Ec+GnOxnztG3rkIArvaV3AIpq3MLsD3jSbl+y\r\nxX8/NfVpNttBBnCZVxS4ITjgYQYOHXWVmgSfuILqLUUIXLpbrqZAbyQu5UMC\r\nxPBj8K74U+ICo2toLJ+/Up9n/noXkxMJrLxtu/mXs8qISHlADa45+MqTAIMj\r\npVNZtqvru1XIZctk255V1GKIT9zOhwRQ1056IzvKQ8FsmDmxspnJuX+rsmrk\r\n9S49BddK83uKk6nGO44ENViRzZIBEU+u/7gsDrmM8VeDMtms7wBCWYvJtPo9\r\n6PvgaY+vZ0gO8VmjdWVoBS7pKL4UXkJo3Dk=\r\n=xB1m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"c0f5c6c852b686ba5adf7685da6e0606bdecce58","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","@aws-sdk/client-cloudwatch":"3.x","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.0_1675424052392_0.8129499760051746","host":"s3://npm-registry-packages"}},"3.0.1-alpha.176.0":{"name":"@financial-times/community-js-metrics","version":"3.0.1-alpha.176.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.1-alpha.176.0","maintainers":[{"name":"robertboulton","email":"robert.boulton@ft.com"},{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"fb43da882d5ea5268bdc0c53d3249a9a4efa3c87","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.1-alpha.176.0.tgz","fileCount":20,"integrity":"sha512-H4r00N3dR1iSvoY6i74lJ+YvweIIypwlsPWey/9zYXex/5CiUtOI9WWshKUfityQf9HUsU1rRY6rLstmmZMDcQ==","signatures":[{"sig":"MEUCICw/Ndc/FM/3+Ch8yqXTXyOJSyXbz2LbWRPAxUvi0hGBAiEAuJiDq9BWcQVZAc49dXaaNfXlhBrf33XrY+fZD87NA5Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkMA28ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfOA/8DOi4ZUSK0u0K1J/XypgOTgTneG4CZ8aMHhbeRn0jYaBDDCU3\r\nLJIRwB4T4LyobcWBtAjgXWnzqC8lG6fe0ICEfmld8J5TiV0xFk9vrTgBkTL7\r\nhXPre5bmm4avayAERLyXnb8IPKHSwvrBa4skGHCInRcICf+9HPKU3zXxlu55\r\ngfCRZmICar71vdV1QjRgcgr9LwhKhzrTOxkS3LT1a8wlXllH1KlUcy9kYRHp\r\nTh8JcHjpJ7H10azH3Vfido2l2yx9hbJqkTco9uSaHZTGr8aFYGLDSH+Orp4c\r\nJfM6uCt5K3NiDrgYPbqxaqh/R9dtNYzeXAVWjdtV/0J1djarelRn6G0jfVvE\r\n6CLD1j8S32Ei2L1qmGsAA9HDSu7i5PkBO88VLwmTGeeTxZQwuIx2y2s1YV08\r\nxMOrGE7twRGziH2IIKxbVforcgu9fVag8z6Nakqoi4uoJ5EEE7xpQEKidBdE\r\neWecV4EjhZZsM8a2iWMUysdPPHDBtbSa4eyEjC550pDzmT6V+L5kbbvg2KqH\r\nVPjwDmBVr/vMO8Ro9rWn0WQTdS+IpdpCDeDBCnXhpJv8D5HuW4VSg9sjH4yd\r\nNzeP1vbriA0qkY1+CAJ1wbOm9Og8yDsa8+hGgnWmKzexHK1XLipOT/H247Ei\r\n+4yYjo8eAQvohW2/veJW4a3P8kjbPbxmMMo=\r\n=/OZ6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"0a55cdfdea2557566f163c6936de870521680596","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","node-fetch":"^2.6.7","@aws-sdk/client-cloudwatch":"3.30.x","@financial-times/community-js-logger":"^1.2.0","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.1-alpha.176.0_1680870843889_0.29406935448100335","host":"s3://npm-registry-packages"}},"3.0.1-alpha.176.1":{"name":"@financial-times/community-js-metrics","version":"3.0.1-alpha.176.1","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.1-alpha.176.1","maintainers":[{"name":"robertboulton","email":"robert.boulton@ft.com"},{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"fd7431077525004a45e56032d016f4e9b1424918","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.1-alpha.176.1.tgz","fileCount":20,"integrity":"sha512-GZv+3azQca3TPIfwCUP3KTJNfXx7+aMRrIoMZVSW1/TeZMTJpFqcxVDQ3GafW13Vq9qCJRUcIplqvQn741HEog==","signatures":[{"sig":"MEQCIGF9Z6cFJdFArUgz8R/c/dCZnBP1Si3JSXA+njd2SS3EAiAhxWRSuQuvbsEeKnrL17DrwHGZmvu+mTYr9VdasPFqfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkN7bRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqD0A/+OeKdDY9ma6tCeCmgz8lDRnhkDCYA6a8lygdbIC5mC9D6KOk4\r\nIdVquzyJNTbVEV02IYPlljvenvlBUOb78N+T2WiDYS3aG8x7Ci6SRCVphIRX\r\niO/MpxoxsjbCzOyN5OCQO6y3zaDbBNuz6wByNeJ1YL8FO5bhUUb0R9aSe5pi\r\nM/3Ba44rz1YYZaWBEoFy1XiBgGxlDI12EXBx+r37lyWEGRKQsNt7F+0W2ypI\r\nA0sZb8ty0oikMRSmkDmqh5plL/Kmx118FDeRX0U6LXhHWV4uYzfkq5UaCFQ3\r\nHTkGpdMg4PqaURqbFlDIpMIhNuVLEyIZDfzbotgEyNpTZyKGNqNRh2ir9Kt5\r\nD1EosaU0RS2u3JIjn1Mh9tAV1UNiuaURMxD0N9CXUdk6DQm1GFaJMp7wR6Yw\r\nSeya/azaqMzMnERi0GkvMIMWrsvtVaIXEctXiBUWjbvs0ZoIUFh9D+FfrNbO\r\nFA7Pgz6YkpmXf1OSCQt1/0V1HIvcSultZ+MXvKof5aGwN/h0VyWAIj3D2Tdp\r\nmbgnSQkjTtCXaPHEc2otp1dWArH7ZCtr8itk6zIJNso6PaG+ZirNfEydm6OF\r\nURQ/zv8xRbYMGQKO6hPZuticPLPXPb0JcIJJ5JBbZx7QMBm51P58L8WGFvNh\r\nmU8urO9vWDhyUhN7bN5wjrVz3Q7pQG7lKbo=\r\n=+byC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"b12bbd8153d1dacc4038c0be651e23f6e7136a40","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","node-fetch":"^2.6.7","@aws-sdk/client-cloudwatch":"3.30.x","@financial-times/community-js-logger":"^1.2.0","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.1-alpha.176.1_1681372881077_0.2659861543095836","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@financial-times/community-js-metrics","version":"3.0.1","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.1","maintainers":[{"name":"robertboulton","email":"robert.boulton@ft.com"},{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"d3492a28dced66ae38172a91310038b112504c49","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.1.tgz","fileCount":20,"integrity":"sha512-0ymBh2kgrqBqgrGZlZD4SABk1oGRSxjj+kZa1UyKBXyED23Yoga5gsuKcoBgaedbd/7D0HJTQjxneJhZytrXcQ==","signatures":[{"sig":"MEYCIQDDqiV9e54F2jPWzS+TSsV5zswM8jsA6QMRZB+m7ox7OgIhAJgddsb4cCqSouSPTxIlyJfeojKt4EGlZkGt32VKTidL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkN7dVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmojnQ//XEgzI+7dPJJSMHVNrJnrMbQ3wyG/UJ1pTo+vUEwseU3tbBFV\r\nW6lw7cmlS60hghpHsORdgSKNvkDn4QaRp4JiagAKKJ4NJfRqJK3lBcUpuXkl\r\nPrE3Ru1CU/H32odcwK0pMc9m5mx/EhVdq4R3Iv+jPstqe9HAsUK1LtHhEQtl\r\n8V29gZzolyo0puOzCZ6+tDubJDkgQ4shWHTIKl7/XCk9iIxubCTu3TlJO57J\r\nPdv7LNeEGRltzPT5brTVjcJMgh+qN3GVKNnco0cEG7dhLHtUkn2PbsTvGDvO\r\nNwof+bEMd7mS/EAJdM7I9Aedp3NBveXLxTTn+963WoYX8J5IgFFwbgoXTsuG\r\npYm49mr8et2KwiKP6ONnoUzqqLcAOdNJfM85uV6v2oO+YLkmE7yEI9W7aqL9\r\n2Xr+AfYYXL1wSBMsIGaUNxG8hZORpn+YwKDBHIvoJISCELFv+kBW4zJChpkk\r\nl1ZeV6gJd5elMprg6LDxLgGCEBDQZFzaWpcszdTpOOMsm6/7tgCWcDq8BEF1\r\nP3HInAkGRDbNyI7hIjlTz98CSPBOk6zCUzDQc9SxpzvBQgfK++lAr0/llAUu\r\nrZdl0B36QC+EheKPZr2fzvGzaDnXAqLSGO5CDEe0YMVegnlRh4KgGcMTJ8uD\r\nT8FuECFXAJ38xBBMeyrPLoRKvNYGCsetbGY=\r\n=nvR7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"945fe6e4734ca6272676c92e9f366465d4aafad6","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","node-fetch":"^2.6.7","@aws-sdk/client-cloudwatch":"3.30.x","@financial-times/community-js-logger":"^1.2.0","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.1_1681373013506_0.33654288200817706","host":"s3://npm-registry-packages"}},"3.0.2-alpha.204.0":{"name":"@financial-times/community-js-metrics","version":"3.0.2-alpha.204.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.2-alpha.204.0","maintainers":[{"name":"robertboulton","email":"robert.boulton@ft.com"},{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"efinlay24","email":"euan.finlay@ft.com"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"accounts@rowanmanning.co.uk"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"30939f1c81e379486e7a4fa2bca751fd094f43f2","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.2-alpha.204.0.tgz","fileCount":20,"integrity":"sha512-mqLxMikqBD+ikyPs0YH/E+c8w4k8qD9VWvvcsMsgEpXGSbNfQiJkioMkKDvHjVjNG0P1vaV1BmQIYIciDqidNw==","signatures":[{"sig":"MEUCIC+bHTxHjRtZjshm1tPLuqs4mVJbCjcdWn+OTJTd5lu+AiEAlQ1d93V5RYA1e24QNmWl5bDAYGvn39aum3qpa578CZE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSopdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqbPQ//fxntrXggiNEsuqFAY3Nk2HThCC/kGii8QCI0U0qEdE104HYN\r\nJ6Ka9H8x0kRH+p0wNs8HU81PGoeNHv+xxWvUNS28W+fan6KAFsQ4snxbVKKB\r\nmwteyhhtXj4yuWb2QHfxO42F4YWXiQG/GJZuEOsjcnpx9qP50qNnSt/1Z2YU\r\nKx+WbXZcAvaO85tMg1BxQTt8rNVhkbbzuIWiU7xvvfZbVapUc8PVMzKDgTOI\r\nqMFdvpt8kEe+QgLoY6lTgfaFSiOYOH6V7ohytzPlTpwG1MM4FT6u8zGSqAJf\r\nw0APJ4rbY++6FGBm3rQE/cd0IDVhFR9yvJKAeQr6ok94b7EnmUcM4L3OWY+U\r\nrfNSVNjAwQMqXKcChAmDSr84BYJNicIx++gnwJP115iN5Nfp3hDPtbjEbcsi\r\nGiPqFf0JPxQeoYk/0cVTv4gYl9NHqNNC3VLh0bINg0VRVLJqjnw09KNWpwLd\r\niIzC8X/FNIlP0yWDuPtBrrZCrLf/2sEWOPjrhdchuTHzOrg5bAg29w55zrBV\r\nS4NIi0WnewYT6esh6CKDSkwRw2bzSsZNj397NqiyD8+u5lbzjXkYhxVwbhkM\r\nnbySogAgcDlxmkhjsYZb7NBAl4oqXintgVvV+KZ+rnFg6DtGKBghB7fUCTnZ\r\nrdjyJ2FSNp4tJUlIilLHR4C0MIXODE+kNFc=\r\n=2TpC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"readme":"# community-js-metrics\n\nMetrics for community javascript and typescript projects\n\n## General Description\n\nThis module exports a singleton, an instance of MetricsClient, with extends EventEmitter with the following Events and\nMethods.\n\n### Usage\nThis library can send metrics to either graphite, cloudwatch or both. \nIf running on AWS Lambda, then sending metrics to cloudwatch is the default, otherwise graphite will be used.\n\nIf needing to send metrics to graphite see the [guide section](#guides-etc) for instructions on how to get the required environment variables.\n\nTo start sending metrics, you can just call the [count()](#metricscountmetricnamestring-increment-number--1) or [histogram()](#metricshistogrammetricnamestring-value-number) methods as required.\n\nFor custom configuration for either cloudwatch or graphite; the [init()](#metricsinitoptionsinitoptions) method can be used.\n\n\n## Events\n\n### `error`\n\nIf an underlying MetricsDestinationStream errors, the error is propagated to the client.\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.on('error', (error) => {\n    console.error(error)\n})\n```\n\n## Properties\n\n### `metrics.autoInit`\nA boolean value which determines whether metrics will be auto initialised when `metrics.count()` or `metrics.histogram()` is first called. \nDefaults to `true`. \n\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.autoInit = false\n```\n\n## Methods\n\n### `metrics.init(options?:InitOptions)`\n\nInitialises metrics and configures destination streams. \nThis is called automatically when `metrics.count()` or `metrics.histogram()` is first called unless `metrics.autoInit` is set to false.\n\n**Arguments**:\n\n- `options` _(optional)_: MetricsClientInitOptions\n- `options.graphite` _(optional)_: Boolean | [GraphiteDestinationStreamOptions](#graphitedestinationstream) - defaults to true when not running on AWS Lambda\n- `options.cloudwatch` _(optional)_: Boolean | [CloudWatchDestinationStreamOptions](#cloudwatchdestinationstream) - defaults to true when running on AWS Lambda\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nconst metricsInitOptions = {\n    graphite: true,\n    cloudwatch: true\n}\nmetrics.init(metricsInitOptions)\n```\n\n### `metrics.count(metricName:string, increment: number = 1)`\n\nRecords one or more occurrences of an event in metrics and sends to the destinationStreams. \n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `increment`: number - the number of times the thing happened, defaults to `1`\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.count('didThing.success', 22)\n```\n\n### `metrics.histogram(metricName:string, value: number)`\n\nRecords a numeric quantity associated with and event in metrics and sends to the destinationStreams\n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `value`: number - the size of the thing that happened, i.e. duration\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.histogram('didThing.response.time', 180)\n```\n\n### `metrics.end()`\n\nEnds all destination streams.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nawait metric.end()\n```\n\n## MetricsDestinationStreams\n\nThis library allows the sending of metrics to multiple destinations if required.\nThese are configured at initialisation and the available destinations are listed below.\n\n### GraphiteDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: GraphiteDestinationStreamOptions\n- `options.metricsPrefix` _(optional)_: String - the prefix to use for your metrics, i.e. `'<uuid>.foo.bar.baz'`, see\n  note below for defaults.\n- `options.host` _(optional)_: String - the graphite host to send your metrics to, defaults to `'graphitev2.ft.com'`\n- `options.port` _(optional)_: Number - the port on the graphite host to send the metrics to, defaults to `2003`\n\n**Note**\nIf `options.metricPrefix` is not set, the metricsPrefix is built up from the following environment variables:\n\n1) `FT_GRAPHITE_APP_UUID` - will throw an error on instantiation if this is not set\n2) `ENVIRONMENT` _or_ `NODE_ENV` - will default to 'unknown' if not set\n3) `DYNO` _or_ `AWS_LAMBDA_FUNCTION_NAME`\\* _or_ `INSTANCE_ID` - will default to 'unknown' if not set\n\n\\* if `SYSTEM_CODE` is set and either `ENVIRONMENT` _or_ `NODE_ENV`, the `<system-code>-<env>-` prefix will be stripped\nfrom this value.\n\n**Example**\n\n```js\nimport {GraphiteDestinationStream} from '@financial-times/community-js-metrics/GraphiteDestinationStream'\n\nconst opts = {/* ...opts */}\nconst graphiteDestinationStream = new GraphiteDestinationStream(opts)\n````\n\n### CloudWatchDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: CloudWatchDestinationStreamOptions\n- `options.clientConfig` _(\n  optional)_: [CloudWatchClientConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/interfaces/cloudwatchclientconfig.html) -\n  the config you wish to use to initialise\n  the [CloudWatchClient](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/cloudwatchclient.html)\n- `options.namespace` _(optional)_: String - the namespace in which you want your metrics placed (see note below for\n  details of defaults)\n- `options.dimensions` _(optional)_: Dimension[] - the dimensions you wish your metrics to have, (see note below for\n  details of defaults)\n\n**Note**\nIf `options.namespace` is not set, the namespace will be `FT/<system-code>` where `<system-code>` is obtained from\nthe `SYSTEM_CODE` environment variable.\nAn error will be thrown if this environment variable is not set.\n\nIf `options.dimensions` is not set, default dimensions will be added from the below environment variables, if they are\nset:\n\n- `ENVIRONMENT`\n- `NODE_ENV`\n- `DYNO`\n- `AWS_LAMBDA_FUNCTION_NAME` ( if `SYSTEM_CODE` is set and either `ENVIRONMENT` _or_ `NODE_ENV`,\n  the `<system-code>-<env>-` prefix will be stripped from this value)\n- `INSTANCE_ID`\n\n**Example**\n\n```js\nimport {CloudWatchDestinationStream} from '@financial-times/community-js-metrics/CloudWatchDestinationStream'\n\nconst opts = {/* ...opts */}\nconst cloudWatchDestinationStream = new CloudWatchDestinationStream(opts)\n````\n\n## Examples\n\n### Lambda/Serverless\n\nIn a lambda function, simply init at the start and end at the end of each invocation.\n\n```js\nconst metrics = require('@financial-times/community-js-metrics')\n\nexport async function handler(event, context) {\n    try {\n        await metrics.init()\n        metrics.on('error', (error) => {\n            console.error('metrics_error', error)\n        })\n        // handler code...\n    } catch (error) {\n        // log errors\n    } finally {\n        await metrics.end()\n    }\n}\n```\n\n## Guides etc\n\n### Getting an FT_GRAPHITE_APP_UUID for Graphite metrics\n\nFirst add a `FT_GRAPHITE_APP_UUID` to your projects shared env vars. This uuid can be obtained via the `/graphiteuuid `\nslackbot, i.e with:\n\n```text\n/graphiteuuid community.<system-code> <system-code> community.engineering@ft.com\n```\n\nReplace `<host-platform>` with the relevant host platform, e.g. `lambda`, `ecs` or `heroku`. Replace `<system-code>`\nwith the system code of your service (this needs to already exist in BizOps).\n\nThen add it to the shared secrets in vault, i.e. in: `secret/teams/community/<system-code>/shared`\n","engines":{"npm":"7.x","node":"16.x"},"gitHead":"6239cc91a333bba5f9c7cdfec92e9f6e1b4062fe","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","node-fetch":"^2.6.7","@aws-sdk/client-cloudwatch":"3.30.x","@financial-times/community-js-logger":"^1.2.1-alpha.204.0","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.2-alpha.204.0_1682606685079_0.028902014439501578","host":"s3://npm-registry-packages"}},"3.0.2-alpha.215.0":{"name":"@financial-times/community-js-metrics","version":"3.0.2-alpha.215.0","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.2-alpha.215.0","maintainers":[{"name":"robertboulton","email":"robert.boulton@ft.com"},{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"info+npm@rowanmanning.com"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"17f1b26523a81471d0c77a45f8b369693f53b666","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.2-alpha.215.0.tgz","fileCount":20,"integrity":"sha512-ihWLtPpyJ3FY3AFRey584IpkUBXDfl7XOHesz2Wz1gUB1Ps/Xqv+zECd2PqOAlW44WruFQAHoTTC3KpU4O2/tg==","signatures":[{"sig":"MEUCICNArODIG/Rwb6Cg/eLCdHsYvMZh2ix1bRlsL8dJ3Zu2AiEA+2dC2Zdkr224HcnVzLPtZ4U5GJy4Sh8QiUw+wSt4Yvk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31402},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"readme":"# community-js-metrics\n\nMetrics for community javascript and typescript projects\n\n## General Description\n\nThis module exports a singleton, an instance of MetricsClient, with extends EventEmitter with the following Events and\nMethods.\n\n### Usage\nThis library can send metrics to either graphite, cloudwatch or both. \nIf running on AWS Lambda, then sending metrics to cloudwatch is the default, otherwise graphite will be used.\n\nIf needing to send metrics to graphite see the [guide section](#guides-etc) for instructions on how to get the required environment variables.\n\nTo start sending metrics, you can just call the [count()](#metricscountmetricnamestring-increment-number--1) or [histogram()](#metricshistogrammetricnamestring-value-number) methods as required.\n\nFor custom configuration for either cloudwatch or graphite; the [init()](#metricsinitoptionsinitoptions) method can be used.\n\n\n## Events\n\n### `error`\n\nIf an underlying MetricsDestinationStream errors, the error is propagated to the client.\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.on('error', (error) => {\n    console.error(error)\n})\n```\n\n## Properties\n\n### `metrics.autoInit`\nA boolean value which determines whether metrics will be auto initialised when `metrics.count()` or `metrics.histogram()` is first called. \nDefaults to `true`. \n\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.autoInit = false\n```\n\n## Methods\n\n### `metrics.init(options?:InitOptions)`\n\nInitialises metrics and configures destination streams. \nThis is called automatically when `metrics.count()` or `metrics.histogram()` is first called unless `metrics.autoInit` is set to false.\n\n**Arguments**:\n\n- `options` _(optional)_: MetricsClientInitOptions\n- `options.graphite` _(optional)_: Boolean | [GraphiteDestinationStreamOptions](#graphitedestinationstream) - defaults to true when not running on AWS Lambda\n- `options.cloudwatch` _(optional)_: Boolean | [CloudWatchDestinationStreamOptions](#cloudwatchdestinationstream) - defaults to true when running on AWS Lambda\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nconst metricsInitOptions = {\n    graphite: true,\n    cloudwatch: true\n}\nmetrics.init(metricsInitOptions)\n```\n\n### `metrics.count(metricName:string, increment: number = 1)`\n\nRecords one or more occurrences of an event in metrics and sends to the destinationStreams. \n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `increment`: number - the number of times the thing happened, defaults to `1`\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.count('didThing.success', 22)\n```\n\n### `metrics.histogram(metricName:string, value: number)`\n\nRecords a numeric quantity associated with and event in metrics and sends to the destinationStreams\n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `value`: number - the size of the thing that happened, i.e. duration\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.histogram('didThing.response.time', 180)\n```\n\n### `metrics.end()`\n\nEnds all destination streams.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nawait metric.end()\n```\n\n## MetricsDestinationStreams\n\nThis library allows the sending of metrics to multiple destinations if required.\nThese are configured at initialisation and the available destinations are listed below.\n\n### GraphiteDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: GraphiteDestinationStreamOptions\n- `options.metricsPrefix` _(optional)_: String - the prefix to use for your metrics, i.e. `'<uuid>.foo.bar.baz'`, see\n  note below for defaults.\n- `options.host` _(optional)_: String - the graphite host to send your metrics to, defaults to `'graphitev2.ft.com'`\n- `options.port` _(optional)_: Number - the port on the graphite host to send the metrics to, defaults to `2003`\n\n**Note**\nIf `options.metricPrefix` is not set, the metricsPrefix is built up from the following environment variables:\n\n1) `FT_GRAPHITE_APP_UUID` - will throw an error on instantiation if this is not set\n2) `ENVIRONMENT` _or_ `NODE_ENV` - will default to 'unknown' if not set\n3) `DYNO` _or_ `AWS_LAMBDA_FUNCTION_NAME`\\* _or_ `INSTANCE_ID` - will default to 'unknown' if not set\n\n\\* if `SYSTEM_CODE` is set and either `ENVIRONMENT` _or_ `NODE_ENV`, the `<system-code>-<env>-` prefix will be stripped\nfrom this value.\n\n**Example**\n\n```js\nimport {GraphiteDestinationStream} from '@financial-times/community-js-metrics/GraphiteDestinationStream'\n\nconst opts = {/* ...opts */}\nconst graphiteDestinationStream = new GraphiteDestinationStream(opts)\n````\n\n### CloudWatchDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: CloudWatchDestinationStreamOptions\n- `options.clientConfig` _(\n  optional)_: [CloudWatchClientConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/interfaces/cloudwatchclientconfig.html) -\n  the config you wish to use to initialise\n  the [CloudWatchClient](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/cloudwatchclient.html)\n- `options.namespace` _(optional)_: String - the namespace in which you want your metrics placed (see note below for\n  details of defaults)\n- `options.dimensions` _(optional)_: Dimension[] - the dimensions you wish your metrics to have, (see note below for\n  details of defaults)\n\n**Note**\nIf `options.namespace` is not set, the namespace will be `FT/<system-code>` where `<system-code>` is obtained from\nthe `SYSTEM_CODE` environment variable.\nAn error will be thrown if this environment variable is not set.\n\nIf `options.dimensions` is not set, default dimensions will be added from the below environment variables, if they are\nset:\n\n- `ENVIRONMENT`\n- `NODE_ENV`\n- `DYNO`\n- `AWS_LAMBDA_FUNCTION_NAME` ( if `SYSTEM_CODE` is set and either `ENVIRONMENT` _or_ `NODE_ENV`,\n  the `<system-code>-<env>-` prefix will be stripped from this value)\n- `INSTANCE_ID`\n\n**Example**\n\n```js\nimport {CloudWatchDestinationStream} from '@financial-times/community-js-metrics/CloudWatchDestinationStream'\n\nconst opts = {/* ...opts */}\nconst cloudWatchDestinationStream = new CloudWatchDestinationStream(opts)\n````\n\n## Examples\n\n### Lambda/Serverless\n\nIn a lambda function, simply init at the start and end at the end of each invocation.\n\n```js\nconst metrics = require('@financial-times/community-js-metrics')\n\nexport async function handler(event, context) {\n    try {\n        await metrics.init()\n        metrics.on('error', (error) => {\n            console.error('metrics_error', error)\n        })\n        // handler code...\n    } catch (error) {\n        // log errors\n    } finally {\n        await metrics.end()\n    }\n}\n```\n\n## Guides etc\n\n### Getting an FT_GRAPHITE_APP_UUID for Graphite metrics\n\nFirst add a `FT_GRAPHITE_APP_UUID` to your projects shared env vars. This uuid can be obtained via the `/graphiteuuid `\nslackbot, i.e with:\n\n```text\n/graphiteuuid community.<system-code> <system-code> community.engineering@ft.com\n```\n\nReplace `<host-platform>` with the relevant host platform, e.g. `lambda`, `ecs` or `heroku`. Replace `<system-code>`\nwith the system code of your service (this needs to already exist in BizOps).\n\nThen add it to the shared secrets in vault, i.e. in: `secret/teams/community/<system-code>/shared`\n","engines":{"npm":"7.x","node":"16.x"},"gitHead":"23871366f30894036581b9186142eb3ab48d4724","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","node-fetch":"^2.6.7","@aws-sdk/client-cloudwatch":"3.414.0","@financial-times/community-js-logger":"^1.2.0","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.2-alpha.215.0_1695221081255_0.19605361628185825","host":"s3://npm-registry-packages"}},"3.0.2-alpha.215.1":{"name":"@financial-times/community-js-metrics","version":"3.0.2-alpha.215.1","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.2-alpha.215.1","maintainers":[{"name":"robertboulton","email":"robert.boulton@ft.com"},{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"info+npm@rowanmanning.com"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"bffa0a8e014705b28777f09c7e831efe0983f432","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.2-alpha.215.1.tgz","fileCount":20,"integrity":"sha512-lYyBhr05oeqyFfW0vGADIq36MwUDuWUjk7vTBVycVOxtUQHIY1No52nejko5nxXyiSgJ0kJhEMVWSdYH09TCNQ==","signatures":[{"sig":"MEUCIQDZNklsxoGfgwCx9TpmuXGi1xkQ+GrMh9gB5F6AX+OybwIgalmiTPn5MOJAHKLzZz4C3+lASqFj8XojwhFaVf4rMZo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31402},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"readme":"# community-js-metrics\n\nMetrics for community javascript and typescript projects\n\n## General Description\n\nThis module exports a singleton, an instance of MetricsClient, with extends EventEmitter with the following Events and\nMethods.\n\n### Usage\nThis library can send metrics to either graphite, cloudwatch or both. \nIf running on AWS Lambda, then sending metrics to cloudwatch is the default, otherwise graphite will be used.\n\nIf needing to send metrics to graphite see the [guide section](#guides-etc) for instructions on how to get the required environment variables.\n\nTo start sending metrics, you can just call the [count()](#metricscountmetricnamestring-increment-number--1) or [histogram()](#metricshistogrammetricnamestring-value-number) methods as required.\n\nFor custom configuration for either cloudwatch or graphite; the [init()](#metricsinitoptionsinitoptions) method can be used.\n\n\n## Events\n\n### `error`\n\nIf an underlying MetricsDestinationStream errors, the error is propagated to the client.\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.on('error', (error) => {\n    console.error(error)\n})\n```\n\n## Properties\n\n### `metrics.autoInit`\nA boolean value which determines whether metrics will be auto initialised when `metrics.count()` or `metrics.histogram()` is first called. \nDefaults to `true`. \n\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.autoInit = false\n```\n\n## Methods\n\n### `metrics.init(options?:InitOptions)`\n\nInitialises metrics and configures destination streams. \nThis is called automatically when `metrics.count()` or `metrics.histogram()` is first called unless `metrics.autoInit` is set to false.\n\n**Arguments**:\n\n- `options` _(optional)_: MetricsClientInitOptions\n- `options.graphite` _(optional)_: Boolean | [GraphiteDestinationStreamOptions](#graphitedestinationstream) - defaults to true when not running on AWS Lambda\n- `options.cloudwatch` _(optional)_: Boolean | [CloudWatchDestinationStreamOptions](#cloudwatchdestinationstream) - defaults to true when running on AWS Lambda\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nconst metricsInitOptions = {\n    graphite: true,\n    cloudwatch: true\n}\nmetrics.init(metricsInitOptions)\n```\n\n### `metrics.count(metricName:string, increment: number = 1)`\n\nRecords one or more occurrences of an event in metrics and sends to the destinationStreams. \n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `increment`: number - the number of times the thing happened, defaults to `1`\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.count('didThing.success', 22)\n```\n\n### `metrics.histogram(metricName:string, value: number)`\n\nRecords a numeric quantity associated with and event in metrics and sends to the destinationStreams\n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `value`: number - the size of the thing that happened, i.e. duration\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.histogram('didThing.response.time', 180)\n```\n\n### `metrics.end()`\n\nEnds all destination streams.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nawait metric.end()\n```\n\n## MetricsDestinationStreams\n\nThis library allows the sending of metrics to multiple destinations if required.\nThese are configured at initialisation and the available destinations are listed below.\n\n### GraphiteDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: GraphiteDestinationStreamOptions\n- `options.metricsPrefix` _(optional)_: String - the prefix to use for your metrics, i.e. `'<uuid>.foo.bar.baz'`, see\n  note below for defaults.\n- `options.host` _(optional)_: String - the graphite host to send your metrics to, defaults to `'graphitev2.ft.com'`\n- `options.port` _(optional)_: Number - the port on the graphite host to send the metrics to, defaults to `2003`\n\n**Note**\nIf `options.metricPrefix` is not set, the metricsPrefix is built up from the following environment variables:\n\n1) `FT_GRAPHITE_APP_UUID` - will throw an error on instantiation if this is not set\n2) `ENVIRONMENT` _or_ `NODE_ENV` - will default to 'unknown' if not set\n3) `DYNO` _or_ `AWS_LAMBDA_FUNCTION_NAME`\\* _or_ `INSTANCE_ID` - will default to 'unknown' if not set\n\n\\* if `SYSTEM_CODE` is set and either `ENVIRONMENT` _or_ `NODE_ENV`, the `<system-code>-<env>-` prefix will be stripped\nfrom this value.\n\n**Example**\n\n```js\nimport {GraphiteDestinationStream} from '@financial-times/community-js-metrics/GraphiteDestinationStream'\n\nconst opts = {/* ...opts */}\nconst graphiteDestinationStream = new GraphiteDestinationStream(opts)\n````\n\n### CloudWatchDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: CloudWatchDestinationStreamOptions\n- `options.clientConfig` _(\n  optional)_: [CloudWatchClientConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/interfaces/cloudwatchclientconfig.html) -\n  the config you wish to use to initialise\n  the [CloudWatchClient](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/cloudwatchclient.html)\n- `options.namespace` _(optional)_: String - the namespace in which you want your metrics placed (see note below for\n  details of defaults)\n- `options.dimensions` _(optional)_: Dimension[] - the dimensions you wish your metrics to have, (see note below for\n  details of defaults)\n\n**Note**\nIf `options.namespace` is not set, the namespace will be `FT/<system-code>` where `<system-code>` is obtained from\nthe `SYSTEM_CODE` environment variable.\nAn error will be thrown if this environment variable is not set.\n\nIf `options.dimensions` is not set, default dimensions will be added from the below environment variables, if they are\nset:\n\n- `ENVIRONMENT`\n- `NODE_ENV`\n- `DYNO`\n- `AWS_LAMBDA_FUNCTION_NAME` ( if `SYSTEM_CODE` is set and either `ENVIRONMENT` _or_ `NODE_ENV`,\n  the `<system-code>-<env>-` prefix will be stripped from this value)\n- `INSTANCE_ID`\n\n**Example**\n\n```js\nimport {CloudWatchDestinationStream} from '@financial-times/community-js-metrics/CloudWatchDestinationStream'\n\nconst opts = {/* ...opts */}\nconst cloudWatchDestinationStream = new CloudWatchDestinationStream(opts)\n````\n\n## Examples\n\n### Lambda/Serverless\n\nIn a lambda function, simply init at the start and end at the end of each invocation.\n\n```js\nconst metrics = require('@financial-times/community-js-metrics')\n\nexport async function handler(event, context) {\n    try {\n        await metrics.init()\n        metrics.on('error', (error) => {\n            console.error('metrics_error', error)\n        })\n        // handler code...\n    } catch (error) {\n        // log errors\n    } finally {\n        await metrics.end()\n    }\n}\n```\n\n## Guides etc\n\n### Getting an FT_GRAPHITE_APP_UUID for Graphite metrics\n\nFirst add a `FT_GRAPHITE_APP_UUID` to your projects shared env vars. This uuid can be obtained via the `/graphiteuuid `\nslackbot, i.e with:\n\n```text\n/graphiteuuid community.<system-code> <system-code> community.engineering@ft.com\n```\n\nReplace `<host-platform>` with the relevant host platform, e.g. `lambda`, `ecs` or `heroku`. Replace `<system-code>`\nwith the system code of your service (this needs to already exist in BizOps).\n\nThen add it to the shared secrets in vault, i.e. in: `secret/teams/community/<system-code>/shared`\n","engines":{"npm":"7.x","node":"16.x"},"gitHead":"c14f9eb5a42ae78a63d7b2e71e79945069fbfadc","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","node-fetch":"^2.6.7","@aws-sdk/client-cloudwatch":"3.414.0","@financial-times/community-js-logger":"^1.2.0","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.2-alpha.215.1_1695223045871_0.6284079995202134","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"@financial-times/community-js-metrics","version":"3.0.2","keywords":[],"author":"","license":"ISC","_id":"@financial-times/community-js-metrics@3.0.2","maintainers":[{"name":"robertboulton","email":"robert.boulton@ft.com"},{"name":"seraph2000","email":"seraphina.anderson.consultant@ft.com"},{"name":"robgodfrey","email":"rob.godfrey@ft.com"},{"name":"hamza.samih","email":"hamza.samih@ft.com"},{"name":"notlee","email":"lee@leemoody.co.uk"},{"name":"emmalewis","email":"emma.lewis@ft.com"},{"name":"aendra","email":"howdy@aendra.com"},{"name":"the-ft","email":"code.management@ft.com"},{"name":"rowanmanning","email":"info+npm@rowanmanning.com"},{"name":"chee","email":"yay@chee.party"},{"name":"alexwilson","email":"a@ax.gy"}],"homepage":"https://github.com/Financial-Times/community-observability-kit#readme","bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"dist":{"shasum":"28245db3bb1bd4252249ed2f9427257d9a82c564","tarball":"https://registry.npmjs.org/@financial-times/community-js-metrics/-/community-js-metrics-3.0.2.tgz","fileCount":20,"integrity":"sha512-4TUhPfC7CdBuYcWoW/V0myUOqFQBa4R84O2DyJmfPRAM6x7gFsKjTv9Ms2kU6nJzVoCtgbDNLg0XrezG1mySkQ==","signatures":[{"sig":"MEQCIApk8zPor343q/5RKNUPUNxLu45R6zhaXuPKfMLEaVuKAiBT4Na7EgkaTdhQI+H0TdP7CWk4gwLTzo8fQFZVGF95xw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31390},"main":"index.js","type":"commonjs","types":"./index.d.ts","volta":{"extends":"../../package.json"},"engines":{"npm":"7.x","node":"16.x"},"gitHead":"2f55bb78a636471c1740080b3110c93abb28cbe0","scripts":{"test":"jest","build":"tsc"},"_npmUser":{"name":"the-ft","email":"code.management@ft.com"},"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"_npmVersion":"lerna/5.6.2/node@v18.13.0+x64 (linux)","description":"Grafana metrics for community javascript and typescript projects","directories":{},"_nodeVersion":"18.13.0","dependencies":{"mathjs":"11.x","node-fetch":"^2.6.7","@aws-sdk/client-cloudwatch":"3.414.0","@financial-times/community-js-logger":"^1.2.0","@aws-sdk/service-error-classification":"3.x"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.5.1","eslint":"8.14.0","ts-jest":"27.1.4","ts-node":"10.7.0","mockdate":"3.0.5","prettier":"2.6.2","typescript":"4.6.3","@types/jest":"27.4.1","@types/mathjs":"9.x","eslint-plugin-jest":"26.1.5","eslint-plugin-import":"2.26.0","eslint-config-prettier":"8.5.0","eslint-plugin-prettier":"4.0.0","@typescript-eslint/parser":"5.21.0","eslint-plugin-jest-formatting":"3.1.0","@typescript-eslint/eslint-plugin":"5.21.0"},"_npmOperationalInternal":{"tmp":"tmp/community-js-metrics_3.0.2_1695223232141_0.002805393775741738","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-02-09T16:57:44.946Z","modified":"2026-06-23T15:52:07.158Z","1.0.0":"2022-02-09T16:57:45.192Z","2.0.0-beta.1":"2022-04-27T15:03:22.811Z","2.0.0-beta.2":"2022-04-27T15:47:35.233Z","2.0.0-beta.3":"2022-04-27T15:59:19.759Z","2.0.0-beta.4":"2022-04-27T18:24:26.086Z","2.0.0-beta.5":"2022-04-27T18:31:45.664Z","2.0.0-beta.6":"2022-04-27T18:50:55.916Z","2.0.0-beta.7":"2022-04-28T12:48:24.689Z","2.0.0":"2022-04-29T14:01:58.747Z","2.1.0":"2022-05-01T19:44:47.669Z","2.2.0-alpha.0":"2023-01-25T13:54:38.127Z","2.2.0-alpha.1":"2023-01-25T14:42:51.410Z","2.2.0-alpha.3":"2023-01-25T14:57:20.098Z","2.2.0":"2023-01-25T15:28:39.479Z","2.2.1-alpha.0":"2023-01-31T15:04:33.298Z","2.2.1":"2023-01-31T15:21:05.123Z","3.0.0-alpha.0":"2023-02-02T09:28:04.094Z","3.0.0-alpha.1":"2023-02-02T10:47:04.236Z","3.0.0-alpha.2":"2023-02-02T11:04:19.437Z","3.0.0":"2023-02-03T11:34:12.562Z","3.0.1-alpha.176.0":"2023-04-07T12:34:04.059Z","3.0.1-alpha.176.1":"2023-04-13T08:01:21.222Z","3.0.1":"2023-04-13T08:03:33.669Z","3.0.2-alpha.204.0":"2023-04-27T14:44:45.304Z","3.0.2-alpha.215.0":"2023-09-20T14:44:41.387Z","3.0.2-alpha.215.1":"2023-09-20T15:17:26.018Z","3.0.2":"2023-09-20T15:20:32.413Z"},"bugs":{"url":"https://github.com/Financial-Times/community-observability-kit/issues"},"license":"ISC","homepage":"https://github.com/Financial-Times/community-observability-kit#readme","keywords":[],"repository":{"url":"git+https://github.com/Financial-Times/community-observability-kit.git","type":"git"},"description":"Grafana metrics for community javascript and typescript projects","maintainers":[{"email":"code.management@ft.com","name":"the-ft"},{"email":"info+npm@rowanmanning.com","name":"rowanmanning"},{"email":"yay@chee.party","name":"chee"},{"email":"a@ax.gy","name":"alexwilson"},{"email":"howdy@aendra.com","name":"aendra"},{"email":"emma.lewis@ft.com","name":"emmalewis"},{"email":"lee@leemoody.co.uk","name":"notlee"},{"email":"hamza.samih@ft.com","name":"hamza.samih"},{"email":"robert.boulton@ft.com","name":"robertboulton"},{"email":"leila.micollier@ft.com","name":"leila.micollier"},{"email":"rob.godfrey@ft.com","name":"robgodfrey"}],"readme":"# community-js-metrics\n\nMetrics for community javascript and typescript projects\n\n## General Description\n\nThis module exports a singleton, an instance of MetricsClient, with extends EventEmitter with the following Events and\nMethods.\n\n### Usage\nThis library can send metrics to either graphite, cloudwatch or both. \nIf running on AWS Lambda, then sending metrics to cloudwatch is the default, otherwise graphite will be used.\n\nIf needing to send metrics to graphite see the [guide section](#guides-etc) for instructions on how to get the required environment variables.\n\nTo start sending metrics, you can just call the [count()](#metricscountmetricnamestring-increment-number--1) or [histogram()](#metricshistogrammetricnamestring-value-number) methods as required.\n\nFor custom configuration for either cloudwatch or graphite; the [init()](#metricsinitoptionsinitoptions) method can be used.\n\n\n## Events\n\n### `error`\n\nIf an underlying MetricsDestinationStream errors, the error is propagated to the client.\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.on('error', (error) => {\n    console.error(error)\n})\n```\n\n## Properties\n\n### `metrics.autoInit`\nA boolean value which determines whether metrics will be auto initialised when `metrics.count()` or `metrics.histogram()` is first called. \nDefaults to `true`. \n\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.autoInit = false\n```\n\n## Methods\n\n### `metrics.init(options?:InitOptions)`\n\nInitialises metrics and configures destination streams. \nThis is called automatically when `metrics.count()` or `metrics.histogram()` is first called unless `metrics.autoInit` is set to false.\n\n**Arguments**:\n\n- `options` _(optional)_: MetricsClientInitOptions\n- `options.graphite` _(optional)_: Boolean | [GraphiteDestinationStreamOptions](#graphitedestinationstream) - defaults to true when not running on AWS Lambda\n- `options.cloudwatch` _(optional)_: Boolean | [CloudWatchDestinationStreamOptions](#cloudwatchdestinationstream) - defaults to true when running on AWS Lambda\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nconst metricsInitOptions = {\n    graphite: true,\n    cloudwatch: true\n}\nmetrics.init(metricsInitOptions)\n```\n\n### `metrics.count(metricName:string, increment: number = 1)`\n\nRecords one or more occurrences of an event in metrics and sends to the destinationStreams. \n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `increment`: number - the number of times the thing happened, defaults to `1`\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.count('didThing.success', 22)\n```\n\n### `metrics.histogram(metricName:string, value: number)`\n\nRecords a numeric quantity associated with and event in metrics and sends to the destinationStreams\n\n**Arguments**:\n\n- `metricName`: string - the dot separated name for your metric i.e. `'didThing.success'` or `'didThing.failure'`\n- `value`: number - the size of the thing that happened, i.e. duration\n\n**Returns**: `void`\n\n**Example**:\n\n```js\nimport { metrics } from '@financial-times/community-js-metrics'\n\nmetrics.histogram('didThing.response.time', 180)\n```\n\n### `metrics.end()`\n\nEnds all destination streams.\n\n**Returns**: `Promise<void>`\n\n**Example**:\n\n```js\nawait metric.end()\n```\n\n## MetricsDestinationStreams\n\nThis library allows the sending of metrics to multiple destinations if required.\nThese are configured at initialisation and the available destinations are listed below.\n\n### GraphiteDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: GraphiteDestinationStreamOptions\n- `options.metricsPrefix` _(optional)_: String - the prefix to use for your metrics, i.e. `'<uuid>.foo.bar.baz'`, see\n  note below for defaults.\n- `options.host` _(optional)_: String - the graphite host to send your metrics to, defaults to `'graphitev2.ft.com'`\n- `options.port` _(optional)_: Number - the port on the graphite host to send the metrics to, defaults to `2003`\n\n**Note**\nIf `options.metricPrefix` is not set, the metricsPrefix is built up from the following environment variables:\n\n1) `FT_GRAPHITE_APP_UUID` - will throw an error on instantiation if this is not set\n2) `ENVIRONMENT` _or_ `NODE_ENV` - will default to 'unknown' if not set\n3) `DYNO` _or_ `AWS_LAMBDA_FUNCTION_NAME`\\* _or_ `INSTANCE_ID` - will default to 'unknown' if not set\n\n\\* if `SYSTEM_CODE` is set and either `ENVIRONMENT` _or_ `NODE_ENV`, the `<system-code>-<env>-` prefix will be stripped\nfrom this value.\n\n**Example**\n\n```js\nimport {GraphiteDestinationStream} from '@financial-times/community-js-metrics/GraphiteDestinationStream'\n\nconst opts = {/* ...opts */}\nconst graphiteDestinationStream = new GraphiteDestinationStream(opts)\n````\n\n### CloudWatchDestinationStream\n\n**Constructor Arguments**\n\n- `options` _(optional)_: CloudWatchDestinationStreamOptions\n- `options.clientConfig` _(\n  optional)_: [CloudWatchClientConfig](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/interfaces/cloudwatchclientconfig.html) -\n  the config you wish to use to initialise\n  the [CloudWatchClient](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/cloudwatchclient.html)\n- `options.namespace` _(optional)_: String - the namespace in which you want your metrics placed (see note below for\n  details of defaults)\n- `options.dimensions` _(optional)_: Dimension[] - the dimensions you wish your metrics to have, (see note below for\n  details of defaults)\n\n**Note**\nIf `options.namespace` is not set, the namespace will be `FT/<system-code>` where `<system-code>` is obtained from\nthe `SYSTEM_CODE` environment variable.\nAn error will be thrown if this environment variable is not set.\n\nIf `options.dimensions` is not set, default dimensions will be added from the below environment variables, if they are\nset:\n\n- `ENVIRONMENT`\n- `NODE_ENV`\n- `DYNO`\n- `AWS_LAMBDA_FUNCTION_NAME` ( if `SYSTEM_CODE` is set and either `ENVIRONMENT` _or_ `NODE_ENV`,\n  the `<system-code>-<env>-` prefix will be stripped from this value)\n- `INSTANCE_ID`\n\n**Example**\n\n```js\nimport {CloudWatchDestinationStream} from '@financial-times/community-js-metrics/CloudWatchDestinationStream'\n\nconst opts = {/* ...opts */}\nconst cloudWatchDestinationStream = new CloudWatchDestinationStream(opts)\n````\n\n## Examples\n\n### Lambda/Serverless\n\nIn a lambda function, simply init at the start and end at the end of each invocation.\n\n```js\nconst metrics = require('@financial-times/community-js-metrics')\n\nexport async function handler(event, context) {\n    try {\n        await metrics.init()\n        metrics.on('error', (error) => {\n            console.error('metrics_error', error)\n        })\n        // handler code...\n    } catch (error) {\n        // log errors\n    } finally {\n        await metrics.end()\n    }\n}\n```\n\n## Guides etc\n\n### Getting an FT_GRAPHITE_APP_UUID for Graphite metrics\n\nFirst add a `FT_GRAPHITE_APP_UUID` to your projects shared env vars. This uuid can be obtained via the `/graphiteuuid `\nslackbot, i.e with:\n\n```text\n/graphiteuuid community.<system-code> <system-code> community.engineering@ft.com\n```\n\nReplace `<host-platform>` with the relevant host platform, e.g. `lambda`, `ecs` or `heroku`. Replace `<system-code>`\nwith the system code of your service (this needs to already exist in BizOps).\n\nThen add it to the shared secrets in vault, i.e. in: `secret/teams/community/<system-code>/shared`\n","readmeFilename":"README.md"}