当前位置: 首页 > 知识库问答 >
问题:

普罗米修斯和节点导出器(毫秒)

史同化
2023-03-14

我有一个带有prom客户端的node express应用程序,用于监视串行连接并向httpendpoint报告值,串行速度为9600波特,正在通过网络传输一些统计数据。Prometheus实例以1000毫秒的间隔配置作业,以针对该endpoint并获取度量。我希望能够在至少10毫秒的分辨率内看到这个指标,但似乎普罗米修斯图形分辨率不接受小于1秒的分辨率。我应该怎么做才能让普罗米修斯以至少10毫秒的分辨率收集数据。我是否错过了一个配置?我找了好几个小时了

这是我的node js应用程序,一个串行端口侦听器正在等待json消息,解析它们并从“prom客户端”更新仪表度量类型,以用express表示!

const serialPath = '/dev/tty.usbmodem14201';
const port = new SerialPort(serialPath, {
   baudRate: 9600
});
const parser = new Readline();
port.pipe(parser);
parser.on('data', (line) => {
        try {
            const obj = JSON.parse(line);
            if (obj.command !== undefined) {
                console.log(obj);
            }

            if (obj.a) {
                obj.a.forEach((analog) => {
                    analogGuage.set({
                        pin: analog.i
                    }, analog.v);
                })
            }
        } catch (ex) {
            console.log('Exception in parsing serial json:', ex);
            console.log('Exception in parsing serial json:', line);
        }
    });

Prometheus调用每个10ms的指标endpoint

    expressApp.get('/metrics', (req, res) => {
        const metrics = client.register.metrics();
        res.set('Content-Type', client.register.contentType);
        res.end(metrics);
    });

重要的是要提到所有这些都是针对实验性个人嵌入式系统的:)因此,除了能够在不到10ms的时间内传输和解析串行读取之外,没有瓶颈或性能考虑

因为现在普罗米修斯和node exporter应用程序都在我的电脑上运行,所以10毫秒的间隔对于Prom来说似乎很容易。

请帮忙。

共有1个答案

周培
2023-03-14

虽然您可以设置小于一秒的刮擦间隔,但这不是普罗米修斯的设计目的,因为在这一点上很难实时监控,例如内核调度程序可能会导致普罗米修斯短暂停止运行并错过一些刮擦,这不是更多的问题典型的刮擦间隔。

如果你需要这么高的分辨率,我建议你看一个定制的解决方案。

 类似资料:
  • 我已经读了3天了,甚至配置了一套容器来测试它们,但我有疑问。 我了解普罗米修斯节点导出器的架构基于: 节点导出器知道如何提取度量。这些在HTTP中公开,例如:9201/metrics Prometheus每隔X秒查询这些HTTPendpoint(节点导出HTTTP)并存储度量。它还为图形/控制台可视化/查询提供了另一个HTTP。 问题1: 假设您希望CPU指标每15秒一次,硬盘指标每5米一次,网络

  • 我将我的GKE API服务器升级到1.6,并正在将节点升级到1.6,但遇到了一个障碍... 我有一个prometheus服务器(版本1.5.2),运行在一个由Kubernetes部署管理的pod中,其中两个节点运行版本1.5.4Kubelet,一个新节点运行版本1.6。 但普罗米修斯仍然得到401。 更新:就像乔丹所说的kubernetes认证问题。在这里看到新的、更集中的问题;https://s

  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希

  • null 使用默认配置和轻微的定制。 我可以访问prometheus、grafana和alertmanager,查询度量标准并查看精美的图表。 但是prometheus-adapter在启动时不断抱怨它不能访问/发现度量: 在我的设置中,对于prometheus-adapter的正确值是什么?

  • 我使用Spring-Boot2.0.0并尝试公开/acturet/prometheusendpoint。我启用了所有web管理endpoint,但只有prometheusendpoint未公开。有什么帮助吗?

  • 我在web服务中使用Prometheus Java simpleclient来跟踪有多少事件导致了这种或那种状态。 我可以在日志中检查计数器是否正在被调用,是否在内部递增,但是似乎很多时候数据都没有到达/metricsendpoint。 例如,就在刚才,在每隔几分钟为同一状态递增计数器3次之后,日志将打印出“当前值= 0,新值= 1”三次。前两次在/metricsendpoint上没有显示任何数据