动态创建Prometheus压力表名称

时间:2017-07-17 20:37:58

标签: javascript node.js prometheus

我在节点应用中使用prom-client向我们的prometheus实例发送统计信息。我正在触发一组请求以确定应用程序是否已启动。有了这个,我想根据正在ping的应用程序动态设置仪表的名称。

apps.map(app => {
  request(app.url, (error, response, body) => {
    let name = app.name
    const gauge = new client.Gauge({
      name: `${app.name}`,
      help: `${app.name}`,
      register,
    })
    if (error) {
      console.log(`${app.name} ERROR!`, error)
      gauge.set(0)
    }
    if (response && response.statusCode == 200) {
      console.log(`${app.name} is up!`, response.statusCode)
      gauge.set(0)
    }
    gateway.pushAdd({ jobName: 'app_up_down', register })
  })
})

将仪表名称设置为${app.name}会导致无效名称错误。我可以让它停止抛出该错误的唯一方法是硬编码对我不起作用的名称。有没有人知道是否有办法动态设置它,或者这是包的问题吗?

1 个答案:

答案 0 :(得分:1)

这看起来像黑盒监控,blackbox exporter可能是一个更好的工具。

您获得的特定错误可能是因为名称包含无效字符,标签将是更好的选择。此外,这是not a good use of the pushgateway