rm old metrics.ts

This commit is contained in:
Hailey
2025-09-23 10:00:01 -07:00
parent 9a0007026b
commit bec44fc983
-79
View File
@@ -1,79 +0,0 @@
import {once} from 'events'
import express, {type Application} from 'express'
import * as prometheus from 'prom-client'
export class Metrics {
private app: Application
private registry: prometheus.Registry
requestDuration: prometheus.Histogram
redirects: prometheus.Counter
shortLinkRequests: prometheus.Counter
safeLinkLookups: prometheus.Counter
safeLinkLookupDuration: prometheus.Histogram
constructor() {
const app = express()
this.app = app
const registry = new prometheus.Registry()
this.registry = registry
// Add add metrics route to express
app.get('/metrics', async (_req, res) => {
res.set('content-type', registry.contentType)
res.end(await registry.metrics())
})
// Collect default service metrics
prometheus.collectDefaultMetrics({
prefix: 'blink_',
register: this.registry,
gcDurationBuckets: [0.001, 0.01, 0.1, 1, 2, 5],
})
// Add other metrics
this.requestDuration = new prometheus.Histogram({
name: 'blink_request_duration_millis',
help: 'Request duration in mmillis',
labelNames: ['path', 'method', 'code'],
buckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
registers: [registry],
})
this.redirects = new prometheus.Counter({
name: 'blink_redirects',
help: 'Number of link redirects handled',
labelNames: ['safelink_rule', 'code'],
registers: [registry],
})
this.shortLinkRequests = new prometheus.Counter({
name: 'blink_shortlink_requests',
help: 'Number of shortlink requests handled',
labelNames: ['method', 'code'],
registers: [registry],
})
this.safeLinkLookups = new prometheus.Counter({
name: 'blink_safelink_lookups',
help: 'Number of safelink lookups handled',
labelNames: ['status', 'cached'],
registers: [registry],
})
this.safeLinkLookupDuration = new prometheus.Histogram({
name: 'blink_safelink_lookup_duration_millis',
help: 'Request duration in millis',
labelNames: ['status', 'cached'],
buckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
registers: [registry],
})
}
async start(port: number) {
const server = this.app.listen(port)
await once(server, 'metrics server listening')
}
}