{"_id":"@egebilgi/log-metric-service-library","_rev":"6-a9cff3e1862b6b20bd719756e05e043f","name":"@egebilgi/log-metric-service-library","dist-tags":{"latest":"2.3.3"},"versions":{"2.0.2":{"name":"@egebilgi/log-metric-service-library","version":"2.0.2","keywords":[],"author":{"name":"Egebilgi Yazılım"},"license":"MIT","_id":"@egebilgi/log-metric-service-library@2.0.2","maintainers":[{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"}],"dist":{"shasum":"615bd0890cbf816f9b2d7065d3370525c72b26e5","tarball":"https://registry.npmjs.org/@egebilgi/log-metric-service-library/-/log-metric-service-library-2.0.2.tgz","fileCount":12,"integrity":"sha512-97FGhkBUiSlwsFKaeZBWNO5AqDEZDr37KknXanDGwUcB9rFjAy4z9OxTn7vFYluz8rwQC+UQoy9psl47ydk1EQ==","signatures":[{"sig":"MEUCIQCDhXs9nyuSab7M0gzBTvsFg50zxJHbki3tH9JN856gngIgVgMy5/HBlh55d8IjjfVadM5rJv5VjFEKQLxjwUenpUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22622},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"d5939801e76d969f768d2efb997fb610127411bc","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup src/index.ts --dts --format esm,cjs","release":"changeset publish","changeset":"changeset","version-packages":"changeset version"},"_npmUser":{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"},"_npmVersion":"10.8.2","description":"A lightweight log/metric emitter library for Node.js projects, designed to be used with the Egebilgi Log Metric Service. It provides a simple interface for logging and metric collection, making it easy to integrate into our applications.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"axios":"^1.8.4","express":"^5.1.0","@swc/core":"^1.11.21"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","rimraf":"^6.0.1","typescript":"^5.8.3","@types/express":"^5.0.1","@changesets/cli":"^2.29.0","@typescript-eslint/parser":"^8.29.1","@typescript-eslint/eslint-plugin":"^8.29.1"},"_npmOperationalInternal":{"tmp":"tmp/log-metric-service-library_2.0.2_1744789032147_0.2701875425699549","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@egebilgi/log-metric-service-library","version":"2.2.0","keywords":[],"author":{"name":"Egebilgi Yazılım"},"license":"MIT","_id":"@egebilgi/log-metric-service-library@2.2.0","maintainers":[{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"}],"dist":{"shasum":"7f5959fb23f51edbb3579e8da6d357fdb69b93e7","tarball":"https://registry.npmjs.org/@egebilgi/log-metric-service-library/-/log-metric-service-library-2.2.0.tgz","fileCount":8,"integrity":"sha512-CjPJe2wGKSitPbSCwuhPpIN5bfbTYmPua2LaTDASWReOm/vw0Ltcih55cyK5J4RtSy0YbJdekwOy2OM4KRMIpQ==","signatures":[{"sig":"MEQCIFjJRnFnv6tbuZpiLEKT4tstFqwvYp7VsH+ewwsfeknEAiA02aHiiuorpXRCXJU1c/133SW7Ag+OvxIuWGp+Q+iYPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9321},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"b8651cd08ba85f34201ac7ec54c7c5cbda496e04","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup src/index.ts --dts --format esm,cjs","release":"changeset publish","changeset":"changeset","version-packages":"changeset version"},"_npmUser":{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"},"_npmVersion":"10.8.2","description":"A lightweight log/metric emitter library for Node.js projects, designed to be used with the Egebilgi Log Metric Service. It provides a simple interface for logging and metric collection, making it easy to integrate into our applications.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"axios":"^1.8.4","express":"^5.1.0","@swc/core":"^1.11.21"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","rimraf":"^6.0.1","typescript":"^5.8.3","@types/express":"^5.0.1","@changesets/cli":"^2.29.0","@typescript-eslint/parser":"^8.29.1","@typescript-eslint/eslint-plugin":"^8.29.1"},"_npmOperationalInternal":{"tmp":"tmp/log-metric-service-library_2.2.0_1744812239891_0.5158487647930388","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@egebilgi/log-metric-service-library","version":"2.3.0","keywords":[],"author":{"name":"Egebilgi Yazılım"},"license":"MIT","_id":"@egebilgi/log-metric-service-library@2.3.0","maintainers":[{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"}],"dist":{"shasum":"79254ed178699f86c2316364c685ebc68c004434","tarball":"https://registry.npmjs.org/@egebilgi/log-metric-service-library/-/log-metric-service-library-2.3.0.tgz","fileCount":8,"integrity":"sha512-oCWqVUaeEQoSqt9NTcIgP+zTOl82LZKegh4VXEzzzpi0Ehy+j3KQE4UBGiz6FtXjsXLfvkni9yFDc8SUIogK/w==","signatures":[{"sig":"MEYCIQDZJXvqOkiT1jKvf7rdL+Ukx9Tshz1sq9nnBA/9aXiybwIhANXRfiHd/SmaakSDBvUQ3W/haG5hBLrPvh5pdWRc+W4f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9661},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"08a70e78dd8f98eef6e18f9939d2acf8c929a3a4","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup src/index.ts --dts --format esm,cjs","release":"changeset publish","changeset":"changeset","version-packages":"changeset version"},"_npmUser":{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"},"_npmVersion":"10.8.2","description":"A lightweight log/metric emitter library for Node.js projects, designed to be used with the Egebilgi Log Metric Service. It provides a simple interface for logging and metric collection, making it easy to integrate into our applications.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"axios":"^1.8.4","express":"^5.1.0","@swc/core":"^1.11.21"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","rimraf":"^6.0.1","typescript":"^5.8.3","@types/express":"^5.0.1","@changesets/cli":"^2.29.0","@typescript-eslint/parser":"^8.29.1","@typescript-eslint/eslint-plugin":"^8.29.1"},"_npmOperationalInternal":{"tmp":"tmp/log-metric-service-library_2.3.0_1744814626236_0.2318022363568255","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@egebilgi/log-metric-service-library","version":"2.3.1","keywords":[],"author":{"name":"Egebilgi Yazılım"},"license":"MIT","_id":"@egebilgi/log-metric-service-library@2.3.1","maintainers":[{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"}],"dist":{"shasum":"05fac0b3dea6f9d02bd534144b5c0761d4ffd519","tarball":"https://registry.npmjs.org/@egebilgi/log-metric-service-library/-/log-metric-service-library-2.3.1.tgz","fileCount":9,"integrity":"sha512-oTLdj40xpoL3PKLllc6MuoZ9iIgGnHswwAkU6aOOZR7+8ideDhsqwarTiEID7oj27sDA4RPMv1ig+P9SmGbxPQ==","signatures":[{"sig":"MEYCIQCVpYRTJWIgNVapJOeMu8O+mG2nPX4p9jFCj9JHlPXkcgIhAMByLNi45q7b0Qp3axSEqex4eAwLcq1jTpEoEr7N3q4v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13021},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"af1ba0de42329883443e87e5485c096716347352","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup src/index.ts --dts --format esm,cjs","release":"changeset publish","changeset":"changeset","version-packages":"changeset version"},"_npmUser":{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"},"_npmVersion":"10.8.2","description":"A lightweight log/metric emitter library for Node.js projects, designed to be used with the Egebilgi Log Metric Service. It provides a simple interface for logging and metric collection, making it easy to integrate into our applications.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"axios":"^1.8.4","express":"^5.1.0","@swc/core":"^1.11.21"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","rimraf":"^6.0.1","typescript":"^5.8.3","@types/express":"^5.0.1","@changesets/cli":"^2.29.0","@typescript-eslint/parser":"^8.29.1","@typescript-eslint/eslint-plugin":"^8.29.1"},"_npmOperationalInternal":{"tmp":"tmp/log-metric-service-library_2.3.1_1744816088007_0.7068033259469162","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@egebilgi/log-metric-service-library","version":"2.3.2","keywords":[],"author":{"name":"Egebilgi Yazılım"},"license":"MIT","_id":"@egebilgi/log-metric-service-library@2.3.2","maintainers":[{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"}],"dist":{"shasum":"b2c21f4ef52544a94c530796e7d1ec56c8bb66b9","tarball":"https://registry.npmjs.org/@egebilgi/log-metric-service-library/-/log-metric-service-library-2.3.2.tgz","fileCount":9,"integrity":"sha512-Kwc3e6ipWdmiv/78K94mng/wo3xNORw+QhWkbzYSJVRUD9w+Wx3SzZDwWelMpxOJV+MN55d6vjwA/2HwqnWtQQ==","signatures":[{"sig":"MEYCIQD+Bu9BPAZ9YmQK8TW6aS3uT29WmoN9gN9NRUSff+QH6AIhAKkMtdbRjF9l4k94i/4fOGi8UrxO8JbmsD1fshaBCdz3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13068},"main":"./dist/index.cjs","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"b2f74e51cd2ad0ecb58c168b49fb7abb9f61537a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup src/index.ts --dts --format esm,cjs","release":"changeset publish","changeset":"changeset","version-packages":"changeset version"},"_npmUser":{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"},"_npmVersion":"10.8.2","description":"A lightweight log/metric emitter library for Node.js projects, designed to be used with the Egebilgi Log Metric Service. It provides a simple interface for logging and metric collection, making it easy to integrate into our applications.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"axios":"^1.8.4","express":"^5.1.0","@swc/core":"^1.11.21"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","eslint":"^9.24.0","rimraf":"^6.0.1","typescript":"^5.8.3","@types/express":"^5.0.1","@changesets/cli":"^2.29.0","@typescript-eslint/parser":"^8.29.1","@typescript-eslint/eslint-plugin":"^8.29.1"},"_npmOperationalInternal":{"tmp":"tmp/log-metric-service-library_2.3.2_1744816486971_0.822584082310307","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"@egebilgi/log-metric-service-library","description":"A lightweight log/metric emitter library for Node.js projects, designed to be used with the Egebilgi Log Metric Service. It provides a simple interface for logging and metric collection, making it easy to integrate into our applications.","version":"2.3.3","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"rimraf dist && tsup src/index.ts --dts --format esm,cjs","changeset":"changeset","version-packages":"changeset version","release":"changeset publish"},"keywords":[],"author":{"name":"Egebilgi Yazılım"},"license":"MIT","devDependencies":{"@changesets/cli":"^2.29.0","@types/express":"^5.0.1","@typescript-eslint/eslint-plugin":"^8.29.1","@typescript-eslint/parser":"^8.29.1","eslint":"^9.24.0","rimraf":"^6.0.1","tsup":"^8.4.0","typescript":"^5.8.3"},"dependencies":{"@swc/core":"^1.11.21","axios":"^1.8.4","express":"^5.1.0"},"_id":"@egebilgi/log-metric-service-library@2.3.3","gitHead":"4f6ba26df59f1e839ced5f6c70e70851f891e715","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-sAq37iJBqis4yM/sWsUaXWMryySCTrz8pUDHd4Qm75tL51brr7IKwFAdIhJQQmza7MqKDdUkg2OmLN3bx/uY+g==","shasum":"1261ab9626b4d518efa4c7088d21586883de33ce","tarball":"https://registry.npmjs.org/@egebilgi/log-metric-service-library/-/log-metric-service-library-2.3.3.tgz","fileCount":13,"unpackedSize":27358,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDnMipApOdD39cqltoLjmN9tjlR4FUOxYledvMTYJdgeQIhAMXLhJnbjVHe2qcY0KUHDyjsLN1ZMFA6vI4jAPNAA+pr"}]},"_npmUser":{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"},"directories":{},"maintainers":[{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/log-metric-service-library_2.3.3_1744870919086_0.19143584560626192"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-16T07:37:12.011Z","modified":"2025-04-17T06:21:59.471Z","2.0.2":"2025-04-16T07:37:12.312Z","2.2.0":"2025-04-16T14:04:00.051Z","2.3.0":"2025-04-16T14:43:46.458Z","2.3.1":"2025-04-16T15:08:08.191Z","2.3.2":"2025-04-16T15:14:47.162Z","2.3.3":"2025-04-17T06:21:59.270Z"},"author":{"name":"Egebilgi Yazılım"},"license":"MIT","keywords":[],"description":"A lightweight log/metric emitter library for Node.js projects, designed to be used with the Egebilgi Log Metric Service. It provides a simple interface for logging and metric collection, making it easy to integrate into our applications.","maintainers":[{"name":"egebilgiyazilim","email":"bugratoker11@gmail.com"}],"readme":"# Log Metric Service Middleware\n\n## Overview\n\nThis package provides an Express middleware and service for logging HTTP request metrics. It allows logging of request duration, status, and other key metrics that can be sent to a metric service Prometheus. It also includes a method for sending these metrics to a service via HTTP.\n\n## Features\n\n- **Request Metrics**: Logs HTTP request duration, status code, and other labels (e.g., service, customer ID).\n- **Metric Service**: Sends metrics to a specified service via HTTP.\n- **Prometheus-Compatible**: Compatible with Prometheus for monitoring and alerting.\n- **Error Handling**: Gracefully handles errors while logging metrics.\n\n## Installation\n\nTo install the package, run the following:\n\n```bash\nnpm install @egebilgi/log-metric-service-library\n\n\n# Usage\n\n## Adding Middleware to Express\n\nYou can use the provided middleware to log request metrics such as response time and status code. It works seamlessly with Prometheus metrics.\n\n```typescript\nconst app = express();\n\napp.use(middlewares.logRequestMetricsMiddleware(\"myService\", \"12345\"));\n```\n\n## Method to Send Metrics\n\nThe `LogMetricService` class has a method `sendMetric` that logs a metric to a service. Below is an example of how this is used:\n\n```typescript\nclass LogMetricService {\n  public async sendMetric(\n    name: string,\n    type: string,\n    description: string,\n    labels: {},\n    value: number\n  ): Promise<void> {\n    try {\n      const payload = { name, type, description, labels, value };\n      await this.req.post(\"/add-metric\", payload); // Sends the metric to a service endpoint\n      this.emit(\"metricLogged\", payload); // Emits a 'metricLogged' event after successful logging\n    } catch (err: any) {\n      this.emit(\"error\", err); // Emits an error event if something goes wrong\n    }\n  }\n}\n```\n\n## Full Example\n\nHere is a full example integrating the middleware and service into an Express application.\n\n```typescript\nimport express from \"express\";\nimport LogMetricService from \"@/log-metric-service\";\nimport Middlewares from \"@egebilgi/log-metric-service-library\";\n\nconst app = express();\nconst logMetricService = new LogMetricService();\nconst middlewares = new Middlewares(logMetricService);\n\n// Use the logRequestMetricsMiddleware with optional service and customer_id\napp.use(middlewares.logRequestMetricsMiddleware(\"myService\", \"12345\"));\n\n// Sample route to test metrics logging\napp.get(\"/test\", (req, res) => {\n  res.status(200).send(\"Metrics logging is working!\");\n});\n\n// Start the server\napp.listen(3000, () => {\n  console.log(\"Server running on http://localhost:3000\");\n});\n```\n\n## Error Handling\n\nIf metric logging fails, the middleware and service will log an error message to the console and continue processing the request. You can modify the error handling logic to fit your needs.\n\n## Events\n\n- **metricLogged**: Fired when a metric is successfully logged.\n- **error**: Fired when there is an error in logging the metric.\n\n## Configuration Options\n\n- **service**: The name of the service being monitored (e.g., \"myService\").\n- **customer_id**: Optional identifier for the customer.\n\nBoth `service` and `customer_id` are optional parameters in the middleware.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","readmeFilename":"README.md"}