【问题标题】:Prometheus metrics not generated未生成 Prometheus 指标
【发布时间】:2022-01-16 02:35:34
【问题描述】:

我正在与this example 合作,让我的 NodeJs 应用程序公开 Prometheus 指标。当我访问 /metrics 端点时,我看不到输出。我是 Prometheus 的新手,或者一般来说是自定义指标。

这是我的尝试。

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 请求创建指标?这个blog post 似乎使用每秒的 HTTP 请求总数;但是,它没有解释指标如何从 http_requests_total 更改为 http_requests_per_second。 (忽略博客中的 Kubernetes、EKS、FluxCD、自动缩放和 Go 部分。)

【问题讨论】:

    标签: node.js prometheus metrics hpa autoscalemode


    【解决方案1】:

    为什么在/metrics 端点没有看到很多指标?

    因为,register.metrics 返回一个应该是 awaited 的 Promise。来自another blog post

    这行得通。

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

    这是来自this tutorial的提示。

    安装 Prometheus 适配器并将其配置为将来自 Prometheus 的指标转换为每秒请求率(使用 PromQL)并通过自定义指标 API 将该指标公开为 myapp_requests_per_second

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 2021-04-03
      • 2020-12-20
      相关资源
      最近更新 更多