本期分享專家:黃莉娟,具有多年前端開發經驗,曾就職于天基,在阿裡雲從事大資料産品、日志服務、消息産品的技術支援,喜歡研究新技術分享新産品。我的口号“我就愛玩新産品!别叫我停下來”

衆所周知,在阿裡雲所有的産品裡,很多産品不需要寫代碼也能做出炫酷的demo,操作簡單,容易上手。最近流計算開始公測,所謂世間萬事萬物,我們都要挑點來嘗嘗,拿它做個什麼demo捏,在思考了四分之一柱香之後,我決定寫一個先有雞還是先有蛋的故事。
是的,寫個自己統計自己通路日志的網站,是不是為了做demo完全不要節操!
這個demo很适合初學者!
<b>step 1、準備工作日志生成過程</b>
首先把/etc/nginx/nginx.conf 配置一下,搞個跳轉
location / {
proxy_pass http://127.0.0.1:3000;
}
一會3000這個端口我們用nodejs起個http server,這樣通路根目錄就跳轉到我的nodejs網站了,為了要個nginx的日志,我不擇手段,為什麼要統計nginx日志呢,因為有個現成的介紹,不會的請戳這裡https://help.aliyun.com/document_detail/28988.html
配置好以後,sls的控制台看,日志長這樣
<b>step 2、在rds建結果表</b>
然後我們用流計算把日志服務的資料挖出來丢到rds,網站讀rds搞點圖圖粗來,刷一下rds變一下,是不是很想給我的腦袋來上一槍!
先給rds建兩張表,我們會把結果放在這兩張表裡,統計日志的網站讀這兩張表就行了。為了友善簡單兩張表建一樣的格式好了。
<b>step 3、使用流計算計算日志資料并輸出到rds表</b>
開通流計算,開通好以後,可以看見控制台長這樣:
把裡面sql摳出來放在這:
---------------------------------------我是stream sql的分割線-------------------------------------------------------
<b>--1.首先定義下資料源的表,這裡我們用type='loghub',直接就能把loghub中的資料讀出來</b>
<b></b>
<b>--2.然後定義個兩個rds的表type='mysql' 作為輸出結果表</b>
<b>-- 3. 定義下計算邏輯</b>
---------------------------------------我還是stream sql的分割線-------------------------------------------------------
注意下!!!sql裡面我用了 prop_get('__time__'),這個是loghub的系統字段時間__time__,必須通過消息屬性傳遞進來,普通的日志服務的key寫在資料源的表就可以了,系統字段不用寫,配置下任務參數,直接用,可以參考下http://gitlab.alibaba-inc.com/galaxy/galaxy/wikis/prop-functions
任務參數這麼寫:
galaxy.input.props.keylist=timestamp,__time__
截個圖。最後一行紅圈圈是我加的:
然後輕輕的點選下“上線”,上線成功後,再輕輕的點選下“運維”,進去把任務啟動起來。
啟動好之後,看起來是醬紫滴,輸入rps是有東西的。當然之是以有輸入,是因為我通路了一下我的網站了~~
<b>step 4、在網站上的展示效果,刷一刷就會看到變化</b>
來刷刷我們的網站,就是我用nodejs啟動的在3000端口,nginx配置了跳轉的那一個咯。
-- 先看看網站的pv統計,是流計算的這句sql搞出來的
insert into sls_event select
prop_get('__time__') as time,
'pv' as event_type,
'get' as event_value,
count(1) as value
from source_test_sls_galaxy
group by prop_get('__time__');
-- 再看看網站的狀态碼統計,是流計算的這句sql搞出來的
insert into sls_status select
'status' as event_type,
status as event_value,
group by prop_get('__time__'),status;
當然,刷一下網站,資料就會變一下!
是不是吼神奇!
<b>"我就愛玩新産品!别叫我停下來!"</b>
本期分享結束啦 ,想讓雲享團分享哪些技術,歡迎大家留言讨論,我們下期再見。<b></b>