簡體   English   中英

未生成 Prometheus 指標

[英]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}`)
})
  1. 為什么在/metrics端點看不到很多指標?
  2. 此示例指的是 HTTP 請求的持續時間直方圖,以毫秒為單位。 如何為每秒的總 HTTP 請求創建指標? 這篇文似乎每秒使用總的 HTTP 請求; 但是,它沒有解釋指標如何從http_requests_total變為http_requests_per_second (忽略博客的 Kubernetes、EKS、FluxCD、自動縮放和 Go 部分。)

為什么在/metrics端點看不到很多指標?

因為, register.metrics返回一個應該awaitPromise 來自另一篇博文

這行得通。

// 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM