前言
????????日志不僅僅是后臺(tái)的各種應(yīng)用程序的日志文件信息配猫,還包含各類資源,例如應(yīng)用服務(wù)器杏死、數(shù)據(jù)庫泵肄、中間件等日志記錄,同時(shí)對于航司電商直銷渠道等淑翼,最關(guān)鍵的一部分來自于前端的終端設(shè)備日志及必要的前端服務(wù)層日志腐巢。
? ? ? ? 將上述幾部分日志集中收集和分析起來,不僅僅是系統(tǒng)運(yùn)維的基礎(chǔ)玄括,更關(guān)鍵是為后續(xù)用戶行為分析等深入應(yīng)用場景提供最原始和真實(shí)的行為數(shù)據(jù)基礎(chǔ)冯丙,例如可以用于產(chǎn)品管理及分析等。
前端數(shù)據(jù)全景平臺(tái)建設(shè)藍(lán)圖
????????對于前端部分遭京,不能僅僅通過單純移動(dòng)設(shè)備或前端服務(wù)層收集胃惜,更需要后端的支持及深度日志處理。
埋點(diǎn)&打樁
????????埋點(diǎn)及打樁貌似有很多工具及平臺(tái)支持哪雕,但是再好和便利的工具船殉,都需要標(biāo)準(zhǔn)化、數(shù)據(jù)結(jié)構(gòu)斯嚎、收集規(guī)范及使用場景的結(jié)合利虫。然而最好的最全面的方式,往往來自于后端埋點(diǎn)孝扛。
分布式收集
? ? ? ? 由于使用場景和時(shí)機(jī)等因素列吼,更關(guān)乎互聯(lián)網(wǎng)設(shè)備的網(wǎng)絡(luò)等因素,往往很難做到實(shí)時(shí)和大規(guī)模集中處理苦始。所以適當(dāng)?shù)难訒r(shí)寞钥、逐級(jí)聚合數(shù)據(jù)、日志歸檔等機(jī)制陌选,必須結(jié)合應(yīng)用理郑。
數(shù)據(jù)精加工
????????再好的工具或平臺(tái),再完善的規(guī)范都必須根據(jù)實(shí)際日志的最終使用訴求咨油,進(jìn)行過濾您炉、篩選、等等一系列處理役电。即數(shù)據(jù)的精加工赚爵,例如補(bǔ)全必要的主鍵信息,數(shù)據(jù)的關(guān)聯(lián)等等。
數(shù)據(jù)補(bǔ)全
? ? ? ? 數(shù)據(jù)精加工中必要的一環(huán)往往是數(shù)據(jù)補(bǔ)全冀膝,由于之前考慮數(shù)據(jù)最簡化最小化吞吐的訴求唁奢,往往需要配合后端埋點(diǎn),將前端收集的各類數(shù)據(jù)窝剖,逐一補(bǔ)全必要的信息麻掸,乃至添加冗余字段,方便后續(xù)洞察分析使用赐纱。
數(shù)據(jù)全量化
? ? ? ? 各增量或新增日志信息脊奋,最終都會(huì)匯聚到全量的持久化存儲(chǔ)中,往往以NoSQL方式的大數(shù)據(jù)平臺(tái)存儲(chǔ)疙描。但是此事需要必要的數(shù)據(jù)建模及規(guī)劃诚隙,保證數(shù)據(jù)存好、使用便利淫痰、便于后續(xù)衍生等最楷。
數(shù)據(jù)BI分流
????????然而對于數(shù)據(jù)洞察,或后續(xù)的各類分析及使用待错,往往不需要全量的歷史數(shù)據(jù)籽孙,都是需要部分時(shí)間片段或數(shù)據(jù)領(lǐng)域的“塊”狀數(shù)據(jù)。所以為了其這種特殊目的火俄,必須在原始全量數(shù)據(jù)的基礎(chǔ)上犯建,抽取子數(shù)據(jù)集進(jìn)入到分析環(huán)節(jié)和對應(yīng)的存儲(chǔ)載體中。
前端數(shù)據(jù)全景平臺(tái)技術(shù)藍(lán)圖
????????如下是一個(gè)全局的前后端埋點(diǎn)的邏輯架構(gòu)瓜客,供參考适瓦。
前端數(shù)據(jù)全景平臺(tái)設(shè)計(jì)藍(lán)圖
????????在實(shí)施過程中,需要嚴(yán)格遵守如下6個(gè)步驟谱仪,以實(shí)現(xiàn)事半功倍的效果玻熙。
分析洞察的漸進(jìn)策略
? ? ? ? 在實(shí)際使用的過程中,對于數(shù)據(jù)的層次疯攒、使用場景嗦随、最終目標(biāo)等,產(chǎn)生分析及洞察的執(zhí)行方案敬尺。
對于單一個(gè)體的數(shù)據(jù)分析方向
? ? ? ? 對于航司直銷的特定單一用戶枚尼,其分析的主旨和視角如下。
對于單一個(gè)體的數(shù)據(jù)分析示例
????????????如下是一個(gè)數(shù)據(jù)標(biāo)簽化的案例及舉例砂吞。
一條日志引發(fā)的血案
? ? ? ? 日志規(guī)范的目的不僅僅是簡化代碼開發(fā)量和提高使用的便捷度署恍,更關(guān)鍵的是減少后續(xù)日志收集及精加工的工作量,最終提取更多個(gè)日志信息中的高價(jià)值數(shù)據(jù)蜻直。
? ? ? ? 如下幾點(diǎn)是關(guān)于日志開發(fā)及相關(guān)框架的應(yīng)用規(guī)范建議盯质。
Application Naming Matrix
Messaging
Logging
Exception Handling
Interception / AOP
日志的Rolling, Purge, Ship, Grok, Hadoop……
結(jié)論
????????日志不僅僅是應(yīng)用開發(fā)的概念范疇袁串,更是互聯(lián)網(wǎng)產(chǎn)品一個(gè)特殊的數(shù)據(jù)源頭。在實(shí)際應(yīng)用過程中唤殴,往往需要綜合規(guī)劃般婆、設(shè)計(jì)、實(shí)現(xiàn)朵逝、演進(jìn);更需要業(yè)務(wù)職能單位的參與乡范,例如產(chǎn)品配名、運(yùn)營等。技術(shù)平臺(tái)架構(gòu)固然重要晋辆,但是沒有大而全或標(biāo)準(zhǔn)架構(gòu)渠脉,需要根據(jù)實(shí)際資源、使用場景瓶佳、應(yīng)用特征等等芋膘,定制化的搭建及迭代演進(jìn)。