aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2021-12-29 19:06:52 -0600
committermat <github@matdoes.dev>2021-12-29 19:06:52 -0600
commit4ead6ecb87aa07d43ade3ab859d2052f3da3fe12 (patch)
tree5d11cf0338b2be8c219cdc01df02a1453802323a
parent07d92497a362e9a15f6319c9b73b1280d6f39c87 (diff)
downloadskyblock-api-4ead6ecb87aa07d43ade3ab859d2052f3da3fe12.tar.gz
skyblock-api-4ead6ecb87aa07d43ade3ab859d2052f3da3fe12.tar.bz2
skyblock-api-4ead6ecb87aa07d43ade3ab859d2052f3da3fe12.zip
add prom-client
-rw-r--r--package-lock.json49
-rw-r--r--package.json1
-rw-r--r--src/index.ts13
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))