使用 Cloud Insight SDK 监控北京空气质量!

现在越来越多的 App 都开始有广告了。特别是空气质量监测,和天气类的 App,广告还是蛮多的,眼花缭乱,真是够了。

最近刚好在用一款系统监控工具 Cloud Insight,它提供的 SDK 可以把任一数据上传到他们那做展示。

灵机一动,作为一个程序员,自己动手丰衣足食,没什么不能解决的。

pip install -i http://pypi.oneapm.com/simple --upgrade oneapm-ci-sdk
这就安装好了。

简单用 ipython 看了看接口文档, gauge 是主要的发数据的接口,好像 increment 也可以,但是不懂是搞啥的,貌似数据类型不一样。

PM 2.5 API

首先得找一个 PM 2.5 API,参考了一下这个教程:Air Quality Widget - New Improved Feed。里面的资料显示,美国驻京使馆也用的是这里的数据,应该还算准确吧。

注意看教程里,他们请求的地址为:

http://feed.aqicn.org/feed/beijing/en/feed.v1.json

请求这个地址,就可以得到数据啦。

说到这个,其实国内很多 App 和网站都在用 PM25.in。用的人挺多的,就是发邮件速度有点慢,注册之后获取 Token 的邮件一直都没发给我!

接入 Cloud Insight

先介绍下 Cloud Insight 吧,就是一款系统监控工具,支持 Ubuntu、MySQL、Docker 的监控。但是他们提供 SDK 可以自定义上传数据,所以我们就用它来承接 PM 2.5 的数据吧。

他们也提供任一指标的报警功能,所以也可以通过设置报警,来发邮件提醒给我。

Cloud Insight SDK 和 StatsD 原理很像,SDK 的详情可以参考文档

源代码如下:

import requests

from oneapm_ci_sdk import statsd

PM25_API_URL = "http://feed.aqicn.org/feed/%s/en/feed.v1.json"

def get_city_data(city):
    try:
        res = requests.get(PM25_API_URL % city)
    except:
        return 0
    else:
        return res.json()['aqi']['val']

def using_sdk():
    statsd.gauge('airquality.beijing.pm25', float(get_city_data('beijing')))
    statsd.gauge('airquality.shanghai.pm25', float(get_city_data('shanghai')))
    statsd.gauge('airquality.guangzhou.pm25', float(get_city_data('guangzhou')))
    statsd.gauge('airquality.xuchang.pm25', float(get_city_data('xuchang'))) # 家里。。

if name == '__main__':
    using_sdk()

首先通过 API 把数值取出来,然后通过 stats.gauge 对指标进行赋值,就可以了。呼~接下来是产品内部的使用了。

啦啦啦~自定义仪表盘开个 Air Quaility 仪表盘,数据选进来,就可以看各个城市的 PM 2.5 的实时数值了。

想随时随地知道北京空气质量是否超标,却又不想下载广告一大堆的空气质量 App。那我自己动手设一个报警策略吧。

大于或等于 100,就算超标好了。很简单就设置完成了。

大功告成,等着邮件提醒吧。顺便秀一下 Kickstarter 买来的 Pebble 手表。舒心啊:没有广告的北京空气质量监测。

本文参考一篇帖子 pm25,关爱老大,征求原作者同意后改写。

时间: 2024-10-02 17:51:34

使用 Cloud Insight SDK 监控北京空气质量!的相关文章

如何监控业务的响应速度?Cloud Insight SDK 实践分享

一直在说 Cloud Insight 是数据聚合平台,可以用 SDK 和 API 实现业务监控,如今不拿出点实践人们恐怕是不能信服.那今天本文就先简单介绍一下 SDK 可以应用在哪些方面,再举个真实用户场景来让大家看看. 首先说一点,通过 SDK 你可以把你想看的任何数据都接在 Cloud Insight 平台上,例如运营可以把涉及到的用户数据放上去,让开发,运维,boss 随时都可以看到自己产品的用户,如果涉及到多个层次的指标数据(日活,增长,转化,留存...)都有相应的简单操作:开发可以把自

如何使用 Cloud Insight SDK 实现 Druid 监控?

Druid 简介与用途 首先说明,这里所说的 Druid 并不是阿里巴巴的数据库连接池项目,而是 Eric Tschetter 创立的一个开源的分布式实时处理系统,希望为烧钱的大数据处理,提供一种更廉价的选择.为了解决查询延迟问题,使用 Hadoop 来实现交互式查询分析很难满足实时分析的需要.而 Druid 提供了以交互方式访问数据的能力,并权衡了查询的灵活性而采取了特殊的存储格式. 作为一个用于大数据实时查询和分析的高容错.高性能开源分布式系统,Druid 能够快速处理大规模的数据,并实现快

极客范:如何使用 Cloud Insight 来监控闭路电视?

最近新上线支持 Windows 系统及其组件 监控功能的 Cloud Insight,在系统监控领域基本囊括了对所有主流和部分非主流平台的支持.但是这还不够,Cloud Insight 可不仅仅是一个服务运维的监控工具,还是一个 Geek 范儿的数据管理可视化平台. 这不,有人用 Cloud Insight 实现了对闭路电视系统磁盘数据的可视化,下面我们来看看他是怎么做的.GitHub 地址 以 HIKVision 产品为例,登录管理界面,查看 磁盘信息. 1.配置闭路电视系统打开闭路电视系统的

Cloud Insight 和 BearyChat 第一次合体,好紧张!

说到 ChatOps 我们可能立刻想到是 Slack(啥?没听过?哦!),但是由于国内网络和语言的问题你可能无法拥有很好的体验了.那就把目光转回国内吧,国内的话就不得不提到 BearyChat 等 ChatOps 工具了(可以理解为协作工具). 在这里我就不对 DevOps 和 ChatOps 的定义做赘述了,网上对此方面的谈论也比较多,给大家推荐一篇相关文章,有时间不妨看下 <当我们在谈论DevOps,我们在谈论什么>这篇文章. 言归正传,最近在公司使用 BearyChat 时发现新集成了一

Supervisor 管理进程,Cloud Insight 监控进程,完美!

Supervisor 是由 Python 语言编写.基于 linux 操作系统的一款服务器管理工具,用于监控服务器的运行,发现问题能立即自动预警及自动重启等. Cloud Insight 是一款次世代监控工具兼数据管理平台.使用 StatsD 采集性能指标,在 HBase 存储之上,使用 OpenTSDB 来对性能指标进行聚合.分组.过滤. 使用 Supervisor 的原因 如果你有很多进程在跑,不时还需要 start/stop/restart 一下进程 如果哪天由于某种原因,进程挂了,你需要

揭空气质量“大数据”面纱:服务信息将更“贴身”

"今天阳光特别强,臭氧超标了."随着空气质量监测系统的发展,通过手机APP或者门户网站查阅空气质量,几乎成了人们日常生活的一部分.手握数据终端,您会不会好奇数据源头和传输过程?前阵子,媒体曝光了一些地方在空气质量监测站点周边重点洒扫的现象.怎样防止监测数据造假?为啥监测数据与个人直观感受存在差距?近日记者走进监测站点,揭开空气质量"大数据"的神秘面纱. 自动采样,实时分析,空气质量监测有精准范儿 随着站点增加,服务信息将更"贴身" 烈日当空,车水

IBM董事长:北京污染已可找到原因 很快可提升空气质量

由国务院发展研究中心主办的"中国发展高层论坛2017"于2017年3月18-20日在北京钓鱼台国宾馆举行,主题为"中国与世界:经济转型和结构改革",IBM公司董事长.总裁.首席执行官罗睿兰出席并发言.其表示,IBM几年前跟北京环保局推出了一个项目叫"绿色地平线".就是用物联网在城市里装一些传感器,同时用一些预测型的分析工具做污染的预报,让空气质量的预报更精准.更加的有细度.     其认为这个项目非常有意义,能够让环保官员采取一些措施去预防空气的

北京环保局微博预报空气质量

本报讯(实习记者张航)"预计4月1日8时至4月1日20时,空气污染指数范围:35至55,首要污染物为可吸入颗粒物."这是市环保局昨天在微博上发布的今日空气质量预报.当天,市环保局的新浪微博和人民微博同时开通. 市环保局的新浪微博名为"绿色-北京",人民微博名为"绿色北京".记者注意到,"绿色-北京"在微博上发布了昨天的空气质量日报.3月本市空气质量月报和对今天空气质量的预报.许多 网友在微博上留言,一名网友留言建议"

Cloud Insight!StatsD 系监控产品新宠!

年关将至,Cloud Insight 正式版悄然上线了.没有大张旗鼓的宣传,也没有热热闹闹的庆祝,只是一群人在上线前踏踏实实的优化了两周,然后发版,就是这样一件简单的事. 然而就是这样一个低调的产品,在正式上线之前,就已经累积了数百用户. 要说 Cloud Insight 得先说一说 StatsD. 作为一个基于 Node.js 平台,简单的网络守护进程,StatsD 通过 UDP 或者 TCP 方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务. 而在国外基于 StatsD 产