update ts util lib with new express metrics registration
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
"dependencies": {
|
||||
"@atproto/api": "^0.16.7",
|
||||
"@atproto/common": "^0.4.11",
|
||||
"@haileyok/ts-util": "^1.0.0",
|
||||
"@haileyok/ts-util": "^1.3.3",
|
||||
"@types/escape-html": "^1.0.4",
|
||||
"body-parser": "^1.20.2",
|
||||
"cors": "^2.8.5",
|
||||
|
||||
+2
-23
@@ -2,7 +2,7 @@ import events from 'node:events'
|
||||
import type http from 'node:http'
|
||||
|
||||
import cors from 'cors'
|
||||
import express, {type Response} from 'express'
|
||||
import express from 'express'
|
||||
import {createHttpTerminator, type HttpTerminator} from 'http-terminator'
|
||||
|
||||
import {type Config} from './config.js'
|
||||
@@ -32,28 +32,7 @@ export class LinkService {
|
||||
app = routes(ctx, app)
|
||||
app.use(errorHandler)
|
||||
|
||||
// request duration logging
|
||||
app.use((req, res, next) => {
|
||||
const start = process.hrtime.bigint()
|
||||
const originalEnd = res.end.bind(res) as Response['end']
|
||||
res.end = function (
|
||||
this: Response,
|
||||
...args: Parameters<Response['end']>
|
||||
): ReturnType<Response['end']> {
|
||||
const end = process.hrtime.bigint()
|
||||
const respTimeMs = Number(end - start) / 1_000_000 // ns to ms :3
|
||||
|
||||
if (req.route) {
|
||||
ctx.metrics
|
||||
.getHistogram('requestDuration')
|
||||
.labels(req.route.path, req.method, res.statusCode.toString())
|
||||
.observe(respTimeMs)
|
||||
}
|
||||
|
||||
return originalEnd(...args)
|
||||
} as Response['end']
|
||||
next()
|
||||
})
|
||||
ctx.metrics.registerExpressMetrics(app)
|
||||
|
||||
return new LinkService(app, ctx)
|
||||
}
|
||||
|
||||
+45
-5
@@ -113,14 +113,16 @@
|
||||
dependencies:
|
||||
"@jridgewell/trace-mapping" "0.3.9"
|
||||
|
||||
"@haileyok/ts-util@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@haileyok/ts-util/-/ts-util-1.0.0.tgz#30ea08c8cfdcd673d821a35a670285e83c2ac4b1"
|
||||
integrity sha512-tszfjVXXFJt93ii7COtlJzGsjkI6trNgXd3hbhvTvs9muIbbd4F7zkB3RzNVARytyK4emlMa7hj7jscBIGogSA==
|
||||
"@haileyok/ts-util@^1.3.3":
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/@haileyok/ts-util/-/ts-util-1.3.3.tgz#2bc5005c58ef9251765676f9707e1671bd712d33"
|
||||
integrity sha512-1Djml2jn7hG8pniQfN3TaZQJ+IijIdNzlcEFhB3bBBoGz7/vjHNDfWMwbGLCpsP0vdGrbhjE7YIZy0U1CGLUXw==
|
||||
dependencies:
|
||||
cors "^2.8.5"
|
||||
events "^3.3.0"
|
||||
express "^5.1.0"
|
||||
express-prom-bundle "^8.0.0"
|
||||
kafkajs "^2.2.4"
|
||||
prom-client "^15.1.3"
|
||||
tslint "^6.1.3"
|
||||
typescript "^5.9.2"
|
||||
@@ -249,6 +251,16 @@
|
||||
"@types/range-parser" "*"
|
||||
"@types/send" "*"
|
||||
|
||||
"@types/express-serve-static-core@^5.0.0":
|
||||
version "5.0.7"
|
||||
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz#2fa94879c9d46b11a5df4c74ac75befd6b283de6"
|
||||
integrity sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
"@types/qs" "*"
|
||||
"@types/range-parser" "*"
|
||||
"@types/send" "*"
|
||||
|
||||
"@types/express@^4.17.21":
|
||||
version "4.17.23"
|
||||
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.23.tgz#35af3193c640bfd4d7fe77191cd0ed411a433bef"
|
||||
@@ -259,6 +271,15 @@
|
||||
"@types/qs" "*"
|
||||
"@types/serve-static" "*"
|
||||
|
||||
"@types/express@^5.0.0":
|
||||
version "5.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.3.tgz#6c4bc6acddc2e2a587142e1d8be0bce20757e956"
|
||||
integrity sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==
|
||||
dependencies:
|
||||
"@types/body-parser" "*"
|
||||
"@types/express-serve-static-core" "^5.0.0"
|
||||
"@types/serve-static" "*"
|
||||
|
||||
"@types/http-errors@*":
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472"
|
||||
@@ -734,6 +755,15 @@ events@^3.3.0:
|
||||
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
|
||||
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
||||
|
||||
express-prom-bundle@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/express-prom-bundle/-/express-prom-bundle-8.0.0.tgz#22a434b87854d98a1ea75c487c9d65f669e8e93e"
|
||||
integrity sha512-UHdpaMks6Z/tvxQsNzhsE7nkdXb4/zEh/jwN0tfZSZOEF+aD0dlfl085EU4jveOq09v01c5sIUfjV4kJODZ2eQ==
|
||||
dependencies:
|
||||
"@types/express" "^5.0.0"
|
||||
on-finished "^2.3.0"
|
||||
url-value-parser "^2.0.0"
|
||||
|
||||
express@^4.19.2:
|
||||
version "4.19.2"
|
||||
resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465"
|
||||
@@ -1071,6 +1101,11 @@ js-yaml@^3.13.1:
|
||||
argparse "^1.0.7"
|
||||
esprima "^4.0.0"
|
||||
|
||||
kafkajs@^2.2.4:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.yarnpkg.com/kafkajs/-/kafkajs-2.2.4.tgz#59e6e16459d87fdf8b64be73970ed5aa42370a5b"
|
||||
integrity sha512-j/YeapB1vfPT2iOIUn/vxdyKEuhuY2PxMBvf5JWux6iSaukAccrMtXEY/Lb7OvavDhOWME589bpLrEdnVHjfjA==
|
||||
|
||||
kysely@^0.27.3:
|
||||
version "0.27.3"
|
||||
resolved "https://registry.yarnpkg.com/kysely/-/kysely-0.27.3.tgz#6cc6c757040500b43c4ac596cdbb12be400ee276"
|
||||
@@ -1246,7 +1281,7 @@ on-exit-leak-free@^2.1.0:
|
||||
resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8"
|
||||
integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==
|
||||
|
||||
on-finished@2.4.1, on-finished@^2.4.1:
|
||||
on-finished@2.4.1, on-finished@^2.3.0, on-finished@^2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
|
||||
integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
|
||||
@@ -1942,6 +1977,11 @@ unpipe@1.0.0, unpipe@~1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
||||
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
|
||||
|
||||
url-value-parser@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/url-value-parser/-/url-value-parser-2.2.0.tgz#f38ae8cd24604ec69bc219d66929ddbbd93a2b32"
|
||||
integrity sha512-yIQdxJpgkPamPPAPuGdS7Q548rLhny42tg8d4vyTNzFqvOnwqrgHXvgehT09U7fwrzxi3RxCiXjoNUNnNOlQ8A==
|
||||
|
||||
utils-merge@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
||||
|
||||
Reference in New Issue
Block a user