[英]Prometheus metrics not generated
我正在使用這個示例來讓我的 NodeJs 應用程序公開 Prometheus 指標。 當我訪問/metrics
端點時,我看不到 output。 我是普羅米修斯的新手,或者一般來說是自定義指標。
這是我的嘗試。
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_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 適配器並將其配置為將來自 Prometheus 的指標轉換為每秒請求率(使用 PromQL)並通過自定義指標 API 將該指標公開為 myapp_requests_per_second
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.