如何使用Python和Prometheus跟踪天气,很多新手都不是很清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。有这种需求的人可以从中学习,希望你能有所收获。
创建自定义普罗米修斯集成来跟踪* * *:地球母亲的云提供商。
Prometheus是一个开源的监控系统,集成和跟踪各种类型的时间序列数据,但是如果你没有集成你想要的数据,很容易构建一个。一个经常使用的例子使用云提供商的定制集成,它使用提供商的应用编程接口来捕获特定的指标。但是,在本例中,我们将与* * *云提供商:地球集成。
幸运的是,美国政府已经测量了天气,并提供了一个简单的集成应用编程接口。很容易得到红帽总部接下来一个小时的天气预报。
importrequestsHOURLY _ RED _ HAT=' https://API . weather . gov/grid points/RAH/73,57/forecast/hour ' deflate _ temperature(): result=requests . get(hour _ RED _ HAT)return result . JSON()[' Prometheus '][' periods '][0][' temperature ']现在我们已经完成了与地球的融合,是时候确保了。我们可以使用普罗米修斯Python库中的gauge创建一个注册项:红帽总部的温度。
from prometheus _ clientimportcollector registry,Gaugedefprometheus _ temperature(num): registry=collector registry()g=Gauge(' red _ hat _ temp ',Temperaturetratedhathq ',registry=registry)g . set(num)return registry * * *,我们需要以某种方式将其连接到Prometheus。这取决于普罗米修斯的网络拓扑:普罗米修斯与我们的服务通信更容易还是相反?
* * *通常是推荐的。如果可能的话,我们需要构建一个公开注册门户的Web服务器,并配置Prometheus对其进行刮擦。
我们可以使用金字塔来构建一个简单的网络服务器。
from金字塔. configimportconfiguretorfrom金字塔. responseimportresponsefrommersus _ client import generate _ latest,CONTENT _ TYPE _ LATESTdefmetrics _ Web(请求): registry=Prometheus _ temperature(get _ temperature())returnResponse(generate _ latest(注册表),CONTENT _ TYPE=CONTENT _ TYPE _ latest)config=configurator()config . add _ route(' metrics ','/metrics ')config . add _ view(metrics _ Web,route _ name=' metrics ')app=config . make _ WSGI _ app()。例如,假设我们将代码放在earth.py中,我们可以使用python-m twisted web-wsgi earth . app运行它。
或者,如果我们的代码更容易连接到普罗米修斯,我们可以定期将其推送到普罗米修斯的推送网关。
import time from Prometheus _ clientimportpush _ to _ gatewaydefpush _ temperature(url): white retrieve : registry=Prometheus _ temperature(get _ temperature())Push _ to _ gateway(URL,' temperature collector ',registry) time.sleep (60 * 60)这里的URL是推送网关的URL。通常以:9091结尾。
阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50251.html