我正在使用这个示例来让我的 NodeJs 应用程序公开 Prometheus 指标。当我访问/metrics
端点时,我看不到输出。我是普罗米修斯的新手,或者一般来说是自定义指标。
这是我的尝试。
const express = require('express')
const promClient = require('prom-client')
const Registry = promClient.Registry;
const register = new Registry();
const app = express()
const port = process.env.PORT || 3000
const histogram = new promClient.Histogram({
name: 'hello_lb:http_request_duration',
help: 'Duration of HTTP requests in ms',
labelNames: ['method', 'status_code'],
buckets: [0.1, 5, 15, 50, 100, 500]
});
register.registerMetric(histogram);
app.get('/hello', (req, res) => {
const end = histogram.startTimer();
res.send('Hello World!')
end({ method: req.method, 'status_code': 200 });
})
// expose our metrics at the default URL for Prometheus
app.get('/metrics', (request, response) => {
response.set('Content-Type', promClient.register.contentType);
response.send(promClient.register.metrics());
});
app.listen(port, () => {
console.log(`App is up at ${port}`)
})
- 为什么在
/metrics
终点看不到很多指标? - 此示例指的是 HTTP 请求持续时间(以毫秒为单位)的直方图。如何为每秒总 HTTP 请求创建指标?这篇博文似乎使用每秒的总 HTTP 请求数;但是,它没有解释指标如何从
http_requests_total
变为http_requests_per_second
。(忽略博客中的 Kubernetes、EKS、FluxCD、自动缩放和 Go 部分。)