为什么在
度量是如何从
我正在使用这个例子来使我的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部分。(
为什么在/metrics
终点看不到很多指标
因为,register.metrics
返回一个应该是await
的Promise
。来自另一篇博客文章。
这起到了作用。
// expose our metrics at the default URL for Prometheus
app.get('/metrics', (async (request, response) => {
response.set('Content-Type', promClient.register.contentType);
response.send(await promClient.register.metrics());
}));
度量是如何从http_requests_total
变为http_requests_per_second
的
以下是本教程中的提示。
安装Prometheus适配器并对其进行配置,以将Prometheu斯的度量转换为每秒请求速率(使用PromQL(,并通过自定义度量API 将该度量公开为myapp_requests_per_second