現在越來越多的 app 都開始有廣告了。特别是空氣品質監測,和天氣類的 app,廣告還是蠻多的,眼花缭亂,真是夠了。
最近剛好在用一款系統監控工具 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。裡面的資料顯示,美國駐京使館也用的是這裡的資料,應該還算準确吧。
注意看教程裡,他們請求的位址為:
請求這個位址,就可以得到資料啦。
說到這個,其實國内很多 app 和網站都在用 pm25.in。用的人挺多的,就是發郵件速度有點慢,注冊之後擷取 token 的郵件一直都沒發給我!
先介紹下 cloud insight 吧,就是一款系統監控工具,支援 ubuntu、mysql、docker 的監控。但是他們提供 sdk 可以自定義上傳資料,是以我們就用它來承接 pm 2.5 的資料吧。
他們也提供任一名額的報警功能,是以也可以通過設定報警,來發郵件提醒給我。
cloud insight sdk 和 statsd 原理很像,sdk 的詳情可以參考文檔。
源代碼如下:
首先通過 api 把數值取出來,然後通過 <code>stats.gauge</code> 對名額進行指派,就可以了。呼~接下來是産品内部的使用了。
啦啦啦~自定義儀表盤開個 air quaility 儀表盤,資料選進來,就可以看各個城市的 pm 2.5 的實時數值了。
想随時随地知道北京空氣品質是否超标,卻又不想下載下傳廣告一大堆的空氣品質 app。那我自己動手設一個報警政策吧。
大于或等于 100,就算超标好了。很簡單就設定完成了。
大功告成,等着郵件提醒吧。順便秀一下 kickstarter 買來的 pebble 手表。舒心啊:沒有廣告的北京空氣品質監測。
本文參考一篇文章 pm25,關愛老大,征求原作者同意後改寫。