數據統計可視化工具:Ranaly
Ranaly是一個基于 Redis 的數據統計可視化工具。一個簡單易用的數據統計工具,只需要在項目中加入幾行代碼就可以生成可視化的圖表。
Ranaly 的 Node.js 客戶端庫node_ranaly已經完成。
特點如下:
-
使用簡單,容易維護
-
基于Redis,性能優異
-
支持模塊級別的權限控制
-
長連接實時數據統計
-
多種圖表可以選擇,可以自定義模板、模塊
快速入門
在項目中使用Ranaly統計數據十分簡單,步驟如下。
1. 安裝Node.js和Redis
Ranaly使用Node.js開發,所以需要先安裝Node.js。同樣因為Ranaly的統計數據存儲于Redis中,所以需要安裝Redis。
2. 安裝Ranaly
git clone git://github.com/luin/ranaly.git
cd ranaly
npm install
3. 在已有項目中加入統計代碼
如果你的項目使用Node.js開發,可以使用Ranaly的node客戶端庫,安裝方法如下:
npm install node_ranaly
如果希望統計項目注冊用戶的變化趨勢,可以在用戶注冊成功后加上如下代碼:
var ranaly = equire('node_ranaly').createClient();
var rUsers = new ranaly.Amount('Users');
rUsers.incr();
node_ranaly庫會將名為“Users”的Amount類型的桶的值增1并和當前時間一起寫入到Redis中。
4. 查看統計結果
建立配置文件,內容如下:
app_name: Demo
users:
- username: admin
password: admin123
pages:
- title: Overview
widgets:
- type: amount_line_chart
bucket: Users
將文件保存,并進入Ranaly的目錄執行:
node ranaly /path/to/config_file
其中/path/to/config_file
表示配置文件路徑。此時就可以訪問 http://127.0.0.1:3000 進入數據查看頁面了,使用admin和admin123登錄系統,能看到用戶數量的折線圖。
文檔
Ranaly由兩個部分組成,分別是客戶端庫和數據展示部分,本頁面項目是數據展示部分。在程序中通過客戶端庫在Redis中記錄統計數據,而本頁面項目的作用是將這些數據以圖表的形式顯示出來。
1. 客戶端庫
Node.js:node_ranaly
2. 數據類型
為了適應不同場合的統計需要,Ranaly支持3種類型的數據統計:
(1) Amount
當要記錄某一個數據的在不用時間的數量變化時就需要使用Amount類型,如想記錄用戶數量的變化趨勢等。
(2) Realtime
Realtime用來記錄實時數據,如當前系統內存使用情況等。
(3) DataList
DataList用來記錄數據列表,數據可以是數字、字符串甚至對象。如新注冊的用戶頭像地址列表、新注冊的用戶資料列表等。DataList只保留數據列表中的前N條數據(N的數值可以指定)。
3. Ranaly配置文件
為了能夠通過Ranaly來將Redis中記錄的統計數據可視化,需要提供一份配置文件。配置文件的格式為YAML,樣例如下:
app_name: 應用名稱
port: Ranaly使用的端口號,默認是3000
redis:
host: Redis的主機地址,默認是127.0.0.1
port: Redis的端口號,默認是6379
key_prefix: 存儲統計數據的鍵名前綴,需要和客戶端庫的配置一樣
users:
- username: 用戶名
password: 密碼
role: 數字,表示用戶的權限,默認是0
pages:
- title: 頁面的標題
widgets:
- type: widget的類型
bucket: widget對應的bucket
title: widget的標題
role: 數字,只對擁有大于或等于該role的用戶可見
4. 桶(bucket)
為了區分不同的統計數據,需要為每類數據起個名字(桶),如統計用戶名稱的桶可以命名為“Users”,統計訪問量的桶可以命名為“Page views”。不同數據類型的桶可以重名,桶的名稱可以包含空格。
5. Widget類型
在配置文件中可以看到每一個項目是由若干個page組成的,每個page由若干個widget組成。widget分為不同種類,每一種widget只適用于一種數據類型,可以從其命名看出來。