diff options
author | mat <github@matdoes.dev> | 2021-12-29 19:06:52 -0600 |
---|---|---|
committer | mat <github@matdoes.dev> | 2021-12-29 19:06:52 -0600 |
commit | 4ead6ecb87aa07d43ade3ab859d2052f3da3fe12 (patch) | |
tree | 5d11cf0338b2be8c219cdc01df02a1453802323a | |
parent | 07d92497a362e9a15f6319c9b73b1280d6f39c87 (diff) | |
download | skyblock-api-4ead6ecb87aa07d43ade3ab859d2052f3da3fe12.tar.gz skyblock-api-4ead6ecb87aa07d43ade3ab859d2052f3da3fe12.tar.bz2 skyblock-api-4ead6ecb87aa07d43ade3ab859d2052f3da3fe12.zip |
add prom-client
-rw-r--r-- | package-lock.json | 49 | ||||
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | src/index.ts | 13 |
3 files changed, 62 insertions, 1 deletions
diff --git a/package-lock.json b/package-lock.json index d258331..49e0f8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "skyblock-api", "version": "1.0.0", "license": "ISC", "dependencies": { @@ -15,6 +16,7 @@ "node-cache": "^5.1.2", "node-fetch": "github:tekwiz/node-fetch#fix/chunked-encoding-keepalive", "prismarine-nbt": "^2.0.0", + "prom-client": "^14.0.1", "queue-promise": "^2.2.1", "uuid": "^8.3.2" }, @@ -341,6 +343,11 @@ "node": ">=8" } }, + "node_modules/bintrees": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", + "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + }, "node_modules/body-parser": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", @@ -1511,6 +1518,17 @@ "protodef": "^1.9.0" } }, + "node_modules/prom-client": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz", + "integrity": "sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==", + "dependencies": { + "tdigest": "^0.1.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/protodef": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/protodef/-/protodef-1.14.0.tgz", @@ -1784,6 +1802,14 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/tdigest": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", + "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", + "dependencies": { + "bintrees": "1.0.1" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2429,6 +2455,11 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bintrees": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", + "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + }, "body-parser": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", @@ -3190,7 +3221,7 @@ }, "node-fetch": { "version": "git+ssh://git@github.com/tekwiz/node-fetch.git#1c43dd773db587a064083d15fedf9d1d65c261c7", - "from": "node-fetch@https://github.com/tekwiz/node-fetch#fix/chunked-encoding-keepalive", + "from": "node-fetch@github:tekwiz/node-fetch#fix/chunked-encoding-keepalive", "requires": { "data-uri-to-buffer": "^3.0.1", "fetch-blob": "^3.1.2" @@ -3273,6 +3304,14 @@ "protodef": "^1.9.0" } }, + "prom-client": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz", + "integrity": "sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==", + "requires": { + "tdigest": "^0.1.1" + } + }, "protodef": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/protodef/-/protodef-1.14.0.tgz", @@ -3474,6 +3513,14 @@ "has-flag": "^4.0.0" } }, + "tdigest": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", + "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", + "requires": { + "bintrees": "1.0.1" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/package.json b/package.json index 1152ed1..ec14c7e 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "node-cache": "^5.1.2", "node-fetch": "github:tekwiz/node-fetch#fix/chunked-encoding-keepalive", "prismarine-nbt": "^2.0.0", + "prom-client": "^14.0.1", "queue-promise": "^2.2.1", "uuid": "^8.3.2" }, diff --git a/src/index.ts b/src/index.ts index d0e4fd8..ffa683e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,6 +6,7 @@ import * as discord from './discord.js' import express from 'express' import { getKeyUsage } from './hypixelApi.js' import { basicPlayerCache, basicProfilesCache, playerCache, profileCache, profileNameCache, profilesCache, usernameCache } from './hypixelCached.js' +import { collectDefaultMetrics, register } from 'prom-client' const app = express() @@ -185,6 +186,18 @@ app.post('/accounts/update', async (req, res) => { } }) + +// grafana integration +collectDefaultMetrics() +app.get('/metrics', async (_req, res) => { + try { + res.set('Content-Type', register.contentType) + res.end(await register.metrics()) + } catch (err) { + res.status(500).end(err) + } +}) + process.on('uncaughtException', err => console.error(err)) process.on('unhandledRejection', (err, promise) => console.error(promise, err)) |