使用Python和Prometheus跟踪天气的使用方法


Posted in Python onMay 06, 2019

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

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

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

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

import requests
HOURLY_RED_HAT = "<https://api.weather.gov/gridpoints/RAH/73,57/forecast/hourly>"
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 服务器。

这可以使用任何 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 集成成功,以便跟踪一切!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python处理PHP数组文本文件实例
Sep 18 Python
python实现汉诺塔方法汇总
Jul 25 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
python random从集合中随机选择元素的方法
Jan 23 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
Python3进制之间的转换代码实例
Aug 24 Python
python3获取url文件大小示例代码
Sep 18 Python
Pandas 缺失数据处理的实现
Nov 04 Python
python判断链表是否有环的实例代码
Jan 31 Python
golang中的空接口使用详解
Mar 30 Python
Python基础详解之邮件处理
Apr 28 Python
python工具dtreeviz决策树可视化和模型可解释性
Mar 03 Python
Python中常用的8种字符串操作方法
May 06 #Python
基于python if 判断选择结构的实例详解
May 06 #Python
20行python代码的入门级小游戏的详解
May 05 #Python
python2.7 安装pip的方法步骤(管用)
May 05 #Python
Python中print和return的作用及区别解析
May 05 #Python
Python深拷贝与浅拷贝用法实例分析
May 05 #Python
Python3中函数参数传递方式实例详解
May 05 #Python
You might like
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
JavaScript 图像动画的小demo
2012/05/23 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
python实现字符串加密成纯数字
2019/03/19 Python
wxPython实现整点报时
2019/11/18 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
解释一下钝化(Swap out)
2016/12/26 面试题
化工专业应届生求职信
2013/11/08 职场文书
女方回门宴答谢词
2014/01/14 职场文书
教师专业自荐信
2014/05/31 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
促销活动总结怎么写
2014/06/25 职场文书