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

如何编写普罗米修斯导出器来收集文件中的值?

袁枫涟
2023-03-14

假设我有一个文件,用于跟踪插入计算机的设备的状态。该文件如下所示:

DEVICE_1 = ONLINE
DEVICE_2 = OFFLINE
DEVICE_3 = ONLINE
DEVICE_4 = OFFLINE

如何使用prometheus_clientPython库创建自定义导出器,将刮取该文件中的值?我计划使用Grafana显示时间序列图中的值,这样我就可以看到每个设备的状态如何随时间变化。我需要使用直方图还是仪表?我必须将设备ID及其状态保持在一起。有人能解释一下最好的方法,以便将它们转换为度量标准吗?

共有1个答案

那谦
2023-03-14

这里有两个问题,用于此数据的度量类型,以及如何使用客户端库。

我将实现一个1/0的量表。直方图增加了复杂性,并对观察结果进行采样。它可用于跟踪设备被移除的速率,即设备1在过去60分钟内被移除/插入X次。

在Python导出器应用程序中,解析文件并使用标签为每个设备指定值

g = Gauge('customapp_activedevices', 'Description of gauge')

while True:
    file= open("devicefile", "r")
    deviceCollection = file.read()

    for device in deviceCollection:
        if device.status == 'ONLINE':
            metricVal = 1
        else:
            metricVal = 2
       g.labels(devicename=device).set(metricVal)

那么你的grafana查询就很简单了,因为这些标签将在你的图中变成不同的系列。还可以在导出程序中设置实例标签,以便grafana仪表板可以处理导出程序的多个实例和多个设备。

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

  • 我正在使用带Spring靴2的SCDF。x metrics和SCDF metrics collector从我的Spring Boot应用程序收集指标。我真的不理解收集器关于聚合度量(aggregateMetrics)数据的逻辑。 当我获取为我的流收集的指标列表时,我只有以开头的指标,因此我只有平均值。我尝试了所有方法来查看其他指标,就像endpoint公开的指标一样。 我想我误解了指标的聚合方式。

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

  • 我已成功启用node_exporter的监控,但JMX_exporter失败 我能够通过Curl为jmx_metricsendpoint获取输出(http://localhost:55555/testsvr2/jmx_exporter/metrics)响应时间不到一秒(我在下面附上了输出),但普罗米修斯显示状态为“DOWN”,并显示消息“context deadline exceed”。 这是我用

  • 我把普罗米修斯和格拉法纳部署到我的集群里。 当我打开仪表板时,我不会获得pod CPU使用情况的数据。 当我检查Prometheus UI时,它显示pods 0/0向上,但是我的集群中有许多pods在运行。

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