使用 Python 和 Prometheus 跟踪天气
创始人
2024-03-02 02:23:24
0

创建自定义 Prometheus 集成以跟踪最大的云端提供商:地球母亲。

Tree clouds

开源监控系统 Prometheus 集成了跟踪多种类型的时间序列数据,但如果没有集成你想要的数据,那么很容易构建一个。一个经常使用的例子使用云端提供商的自定义集成,它使用提供商的 API 抓取特定的指标。但是,在这个例子中,我们将与最大云端提供商集成:地球。

幸运的是,美国政府已经测量了天气并为集成提供了一个简单的 API。获取红帽总部下一个小时的天气预报很简单。

import requests
HOURLY_RED_HAT = ""
def get_temperature():
    result = requests.get(HOURLY_RED_HAT)
    return result.json()["properties"]["periods"][0]["temperature"]

现在我们已经完成了与地球的集成,现在是确保 Prometheus 能够理解我们想要内容的时候了。我们可以使用 Prometheus Python 库中的 gauge 创建一个注册项:红帽总部的温度。

from prometheus_client import CollectorRegistry, Gauge
def prometheus_temperature(num):
    registry = CollectorRegistry()
    g = Gauge("red_hat_temp", "Temperature at Red Hat HQ", registry=registry)
    g.set(num)
    return registry

最后,我们需要以某种方式将它连接到 Prometheus。这有点依赖 Prometheus 的网络拓扑:是 Prometheus 与我们的服务通信更容易,还是反向更容易。

第一种是通常建议的情况,如果可能的话,我们需要构建一个公开注册入口的 Web 服务器,并配置 Prometheus 收刮(scrape)它。

我们可以使用 Pyramid 构建一个简单的 Web 服务器。

from pyramid.config import Configurator
from pyramid.response import Response
from prometheus_client import generate_latest, CONTENT_TYPE_LATEST
def metrics_web(request):
    registry = prometheus_temperature(get_temperature())
    return Response(generate_latest(registry),
                               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()

这可以使用任何 Web 网关接口(WSGI)服务器运行。例如,假设我们将代码放在 earth.py 中,我们可以使用 python -m twisted web --wsgi earth.app 来运行它。

或者,如果我们的代码连接到 Prometheus 更容易,我们可以定期将其推送到 Prometheus 的推送网关

import time
from prometheus_client import push_to_gateway
def push_temperature(url):
    while True:
        registry = prometheus_temperature(get_temperature())
        push_to_gateway(url, "temperature collector", registry)
        time.sleep(60*60)

这里的 URL 是推送网关的 URL。它通常以 :9091 结尾。

祝你构建自定义 Prometheus 集成成功,以便跟踪一切!


via: https://opensource.com/article/19/4/weather-python-prometheus

作者:Moshe Zadka 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

英伟达开源AI天气预报模型...
除极少数例外,大规模天气预报一直是拥有大型超级计算机的政府机构的专...
2026-02-10 22:50:29
英伟达在AI天气预报领域选...
在关于AI的众多讨论中——从供应商和企业投入的惊人资金数额,到企业...
2026-01-28 06:17:25
迭代破局!“新技术+AI内...
本文转自【央视网】; 央视网消息:极端天气事件已经成为影响群众生产...
2026-01-11 17:46:39
【AI贵阳】今日,大雪
“小雪尽,大雪始” 北京时间12月7日5时57分 我们迎来二十四节...
2025-12-07 10:45:26
AI上二十四节气|雪落肩头...
六出飞花入户时 坐看青竹变琼枝 今天 我们迎来冬天的第三个节气 大...
2025-12-07 07:45:55

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...