使用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中list常用操作实例详解
Jun 03 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 Python
python的pandas工具包,保存.csv文件时不要表头的实例
Jun 14 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
Python rstrip()方法实例详解
Nov 11 Python
Python 3.8 新功能全解
Jul 25 Python
Python实现性能自动化测试竟然如此简单
Jul 30 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
如何利用python发送邮件
Sep 26 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
js 幻灯片的实现
2011/12/06 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
玩转python爬虫之正则表达式
2016/02/17 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Python实现的归并排序算法示例
2017/11/21 Python
详解Python自建logging模块
2018/01/29 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
python3.5安装python3-tk详解
2019/04/26 Python
Python编写打字训练小程序
2019/09/26 Python
详解python算法常用技巧与内置库
2020/10/17 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
保安员岗位职责
2013/11/17 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
作文之亲情600字
2019/09/23 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers