使用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编写简单的画图板程序的示例教程
Dec 08 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
python实时监控cpu小工具
Jun 21 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
CentOS7下安装python3.6.8的教程详解
Jan 03 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
python计算二维矩形IOU实例
Jan 18 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
python实现逻辑回归的示例
Oct 09 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 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
PHP图片上传类带图片显示
2006/11/25 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
js 图片等比例缩放代码
2010/05/13 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
对pandas中apply函数的用法详解
2018/04/10 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
中专毕业自我鉴定
2013/10/16 职场文书
老兵退伍标语
2014/10/07 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏