使用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 相关文章推荐
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 Python
深入解析Python中函数的参数与作用域
Mar 20 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 Python
Python排序算法实例代码
Aug 10 Python
Python实现的桶排序算法示例
Nov 29 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 Python
pytorch中tensor的合并与截取方法
Jul 26 Python
python斐波那契数列的计算方法
Sep 27 Python
python实现快递价格查询系统
Mar 03 Python
详解Pandas 处理缺失值指令大全
Jul 30 Python
学习Python需要哪些工具
Sep 04 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绘图中显示不出图片的原因及解决
2014/03/05 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
MSN消息提示类
2006/09/05 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
jQuery中$.each使用详解
2015/01/29 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
打包发布Python模块的方法详解
2016/09/18 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
python下10个简单实例代码
2017/11/15 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
python实现汽车管理系统
2018/11/30 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
django-allauth入门学习和使用详解
2019/07/03 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
python中count函数简单的实例讲解
2020/02/06 Python
Python requests模块session代码实例
2020/04/14 Python
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
大学生自我鉴定
2013/12/16 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫