天天看點

使用 Cloud Insight SDK 監控北京空氣品質!

現在越來越多的 app 都開始有廣告了。特别是空氣品質監測,和天氣類的 app,廣告還是蠻多的,眼花缭亂,真是夠了。

使用 Cloud Insight SDK 監控北京空氣品質!

最近剛好在用一款系統監控工具 cloud insight,它提供的 sdk 可以把任一資料上傳到他們那做展示。

靈機一動,作為一個程式員,自己動手豐衣足食,沒什麼不能解決的。

<code>pip install -i http://pypi.oneapm.com/simple --upgrade oneapm-ci-sdk</code>

這就安裝好了。

簡單用 ipython 看了看接口文檔, gauge 是主要的發資料的接口,好像 increment 也可以,但是不懂是搞啥的,貌似資料類型不一樣。

首先得找一個 pm 2.5 api,參考了一下這個教程:air quality widget - new improved feed。裡面的資料顯示,美國駐京使館也用的是這裡的資料,應該還算準确吧。

使用 Cloud Insight SDK 監控北京空氣品質!

注意看教程裡,他們請求的位址為:

請求這個位址,就可以得到資料啦。

說到這個,其實國内很多 app 和網站都在用 pm25.in。用的人挺多的,就是發郵件速度有點慢,注冊之後擷取 token 的郵件一直都沒發給我!

先介紹下 cloud insight 吧,就是一款系統監控工具,支援 ubuntu、mysql、docker 的監控。但是他們提供 sdk 可以自定義上傳資料,是以我們就用它來承接 pm 2.5 的資料吧。

他們也提供任一名額的報警功能,是以也可以通過設定報警,來發郵件提醒給我。

使用 Cloud Insight SDK 監控北京空氣品質!

cloud insight sdk 和 statsd 原理很像,sdk 的詳情可以參考文檔。

源代碼如下:

首先通過 api 把數值取出來,然後通過 <code>stats.gauge</code> 對名額進行指派,就可以了。呼~接下來是産品内部的使用了。

啦啦啦~自定義儀表盤開個 air quaility 儀表盤,資料選進來,就可以看各個城市的 pm 2.5 的實時數值了。

使用 Cloud Insight SDK 監控北京空氣品質!

想随時随地知道北京空氣品質是否超标,卻又不想下載下傳廣告一大堆的空氣品質 app。那我自己動手設一個報警政策吧。

大于或等于 100,就算超标好了。很簡單就設定完成了。

使用 Cloud Insight SDK 監控北京空氣品質!

大功告成,等着郵件提醒吧。順便秀一下 kickstarter 買來的 pebble 手表。舒心啊:沒有廣告的北京空氣品質監測。

使用 Cloud Insight SDK 監控北京空氣品質!

本文參考一篇文章 pm25,關愛老大,征求原作者同意後改寫。