普罗米修斯的指标不会出现,因为它需要比报废间隔更长的时间



概述

我是普罗米修斯的新手。我的自定义导出程序将IP地址作为输入。进行一些流处理,然后向Prometheus注册表注册新的度量。下面是代码,

#!/usr/bin/env python3
from prometheus_client import start_http_server, Gauge, Counter
from prometheus_client import REGISTRY
from prometheus_client.metrics_core import GaugeMetricFamily
import time
count = 0
class TestExporter:

def collect(self):
global count
count += 5

for i in range(3):
yield self.check_stream(count, i)

def check_stream(self, count, host):
# some processing time
# lets assume 5 seconds
time.sleep(5)
metric = GaugeMetricFamily('aa_stream_test', 'testing stream delete', labels=['stream'])
if count > 100:
metric.add_metric(['B', str(host)], count)
else:
metric.add_metric(['A', str(host)], count)
print (count, 'registering . . .')
return metric
if __name__ == '__main__':

REGISTRY.register(TestExporter())

# Start up the server to expose the metrics.
start_http_server(8000)
print("started server...")
while True:
time.sleep(1)

问题

check_stream函数中,我定义了处理请求所需的估计时间。截至目前,我已将其设定为5秒。(但可能有所不同(

check_stream函数执行了3次,所以如果我使用函数time.sleep(3),我可以在prometheus图中看到度量。因为总时间是CCD_ 4,其小于10秒普罗米修斯废料时间。但如果我使用time.sleep(5),它总共需要5*3=15,即>=废料间隔时间。在这里,我并没有在图中看到任何普罗米修斯的值。它是空的。

请帮忙。谢谢

Prometheus配置的scrape_timeout默认为10秒。

普罗米修斯试图抓取你的目标,如果目标的响应时间超过scrape_timeout,那么它将超时(而不是抓取指标(。

您应该在Prometheus服务器配置中增加scrape_timeout,以便服务器在尝试抓取目标时不会超时。

相关内容

  • 没有找到相关文章

最新更新