2013-07-26 128 views
0

我有這樣的日誌格式:自定義日誌處理/分析

[26830431.7966868][4][0.013590574264526367][30398][api][1374829886.320353][init] 
    GET /foo 
    {"controller"=>"foo", "action"=>"index"} 

[26830431.7966868][666][2.1876697540283203][30398][api][1374829888.4944339][request_end] 
    200 OK 

的入口是採用這樣的模式constracted:

[request_id][user_id][time_from_request_started][process_id][app][timestamp][tagline] 
    payload 

Durring要求我有很多的地步,我登錄的東西 - 應用主要有複雜的行爲。這有助於我調試很多用戶的行爲。

我想解析它是我想提出有這樣的目錄結構的方式:

req_id 
    | 
    |----[time_from_request_started][process_id][timestamp][tagline] 
    | 
    etc 

基本上每個目錄將根據REQ_ID有名稱,使用文件wchich名標語休息。這些文件將包含有效載荷。

而且我還會有其他目錄,其中包含用戶標識符,它將包含由該用戶完成的請求的符號鏈接。

第一個問題:這個結構是否正確?在我看來,它會使日誌訪問變得簡單快捷。我想用目錄和文件的原因是我喜歡的Unix的做法,並嘗試(感到自己的缺點和優點)

第二個問題:我不會有任何問題使用Ruby創建此。但我想學習一些新的工具,它更適合這個。我正在考慮只使用unix工具(pipe,awk等)來實現這一點,或者在我現在正在學習的golang中編寫解析器(甚至有時間實現簡單的映射縮減)。 什麼工具最適合這個?

回答

1

我不會將日誌存儲在目錄中,以查看用戶的行爲方式。

根據您希望跟蹤的行爲可以使用不同的工具。其中之一可能是mixpanelkeen.io

不是記錄用戶在日誌文件中做了什麼,而是向其中的任何一個發送事件(它們非常相似,選擇一個你認爲具有更好doc/lib的事件),然後將這些事件描繪得更好了解用戶的行爲。我最近做了很多工作,以一種很好的方式顯示數據,我用rickshaw

爲什麼我這樣建議的關鍵是,如果你走的是文件路徑,你仍然必須找到一種方法來理解你的數據,這些圖形將會幫助你很多。此外,可視化是keen.io的默認設置,你可能仍然想要做你的圖表,但這是一個好的開始。

希望這有助於。

+0

有意思的是,我會盡力實現這一點,並檢查它是如何充分滿足我的需求的。好的一點是我可以在那裏回覆當前的日誌! –

0

這個結構是否正確?

只有你可以知道,它直接取決於如何訪問和使用數據。

什麼工具最適合這個?

你可能可以使用UNIX工具來實現這個目標,但是通過編寫這個練習來練習Go技巧也是一個很好的練習。它也會更具可擴展性。