本申請(qǐng)涉及云平臺(tái)技術(shù)領(lǐng)域,特別是涉及一種基于云平臺(tái)的客戶端應(yīng)用的信息方法和一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)裝置。
背景技術(shù):
目前,對(duì)客戶端應(yīng)用進(jìn)行信息統(tǒng)計(jì)的技術(shù)方案,通常采用類方法的注解或者通過配置文件的方式聲明面向切面編程(aspectorientedprogramming,aop)攔截。具體流程圖如圖1所示,客戶端應(yīng)用通過需要通過注解或者通過spring(一個(gè)開源框架)的aop配置文件配置代理,由代理對(duì)客戶端應(yīng)用的執(zhí)行方法進(jìn)行攔截,訪問到某個(gè)配置為被攔截的執(zhí)行方法后,記錄訪問到的執(zhí)行方法,將攔截到執(zhí)行方法的次數(shù)進(jìn)行匯總。
現(xiàn)有的通過代理攔截的方式收集客戶端應(yīng)用的信息,代理攔截的對(duì)象是預(yù)先針對(duì)某種場(chǎng)景定制的,無法根據(jù)實(shí)際需求進(jìn)行調(diào)整。并且,代理攔截只能攔截客戶端應(yīng)用的執(zhí)行方法,對(duì)于與執(zhí)行方法相關(guān)的參數(shù)或者數(shù)據(jù)無法攔截得到,這種情況下對(duì)代理攔截得到的攔截結(jié)果無法進(jìn)一步利用,代理攔截結(jié)果的利用轉(zhuǎn)化率不高。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本申請(qǐng)實(shí)施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法和相應(yīng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)裝置。
為了解決上述問題,本申請(qǐng)公開了一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法,包括:
監(jiān)聽各個(gè)客戶端應(yīng)用調(diào)用埋點(diǎn)軟件開發(fā)工具包創(chuàng)建的埋點(diǎn)日志,并從所述埋點(diǎn)日志中提取出埋點(diǎn)信息,所述埋點(diǎn)日志根據(jù)預(yù)先定義的埋點(diǎn)屬性創(chuàng)建,所述客戶端應(yīng)用通過調(diào)用所述埋點(diǎn)軟件開發(fā)工具包的應(yīng)用編程接口預(yù)先定義所述埋點(diǎn)屬性;
按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合;
根據(jù)查詢請(qǐng)求查詢并展示聚合后的埋點(diǎn)信息。
優(yōu)選地,所述埋點(diǎn)屬性包括所述埋點(diǎn)信息的埋點(diǎn)類別和/或埋點(diǎn)關(guān)鍵字,所述埋點(diǎn)類別包括所述埋點(diǎn)信息所屬埋點(diǎn)父類別或埋點(diǎn)子類別。
優(yōu)選地,所述監(jiān)聽各個(gè)客戶端應(yīng)用調(diào)用埋點(diǎn)軟件開發(fā)工具包創(chuàng)建的埋點(diǎn)日志包括:
監(jiān)聽所述埋點(diǎn)日志的目錄和/或所述埋點(diǎn)信息的變化狀態(tài);
若所述目錄和/或所述埋點(diǎn)信息發(fā)生變化,則確定所述埋點(diǎn)日志中新增埋點(diǎn)信息。
優(yōu)選地,所述從所述埋點(diǎn)日志中提取出埋點(diǎn)信息包括:
從所述埋點(diǎn)日志中以增量方式提取出埋點(diǎn)信息。
優(yōu)選地,在從所述埋點(diǎn)日志中提取出埋點(diǎn)信息之后,所述方法還包括:
將所述埋點(diǎn)信息發(fā)送至消息中間件,所述消息中間件用于傳輸所述埋點(diǎn)信息,并控制傳輸速度;
在所述按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合之前,所述方法還包括:
從所述消息中間件讀取出所述埋點(diǎn)信息。
優(yōu)選地,在所述按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合之前,所述方法還包括:
篩選與所述埋點(diǎn)屬性對(duì)應(yīng)的埋點(diǎn)信息。
優(yōu)選地,所述按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合包括:
按照應(yīng)用維度和/或時(shí)間維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合。
優(yōu)選地,所述查詢請(qǐng)求攜帶通過查詢接口輸入的查詢參數(shù);
所述根據(jù)查詢請(qǐng)求查詢并展示聚合后的埋點(diǎn)信息包括:
根據(jù)所述查詢參數(shù)查詢并展示聚合后的埋點(diǎn)信息;所述查詢參數(shù)包括時(shí)間段、所述埋點(diǎn)屬性和所述客戶端應(yīng)用的應(yīng)用標(biāo)識(shí)中至少一種。
本申請(qǐng)還公開了一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)裝置,包括:
埋點(diǎn)日志監(jiān)聽模塊,用于監(jiān)聽各個(gè)客戶端應(yīng)用調(diào)用埋點(diǎn)軟件開發(fā)工具 包創(chuàng)建的埋點(diǎn)日志;
埋點(diǎn)信息提取模塊,用于從所述埋點(diǎn)日志中提取出埋點(diǎn)信息,所述埋點(diǎn)日志根據(jù)預(yù)先定義的埋點(diǎn)屬性創(chuàng)建,所述客戶端應(yīng)用通過調(diào)用所述埋點(diǎn)軟件開發(fā)工具包的應(yīng)用編程接口預(yù)先定義所述埋點(diǎn)屬性;
埋點(diǎn)信息聚合模塊,用于按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合;
埋點(diǎn)信息展示模塊,用于根據(jù)查詢請(qǐng)求查詢并展示聚合后的埋點(diǎn)信息。
優(yōu)選地,所述埋點(diǎn)屬性包括所述埋點(diǎn)信息的埋點(diǎn)類別和/或埋點(diǎn)關(guān)鍵字,所述埋點(diǎn)類別包括所述埋點(diǎn)信息所屬埋點(diǎn)父類別或埋點(diǎn)子類別。
優(yōu)選地,所述埋點(diǎn)日志監(jiān)聽模塊,具體用于監(jiān)聽所述埋點(diǎn)日志的目錄和/或所述埋點(diǎn)信息的變化狀態(tài);若所述目錄和/或所述埋點(diǎn)信息發(fā)生變化,則確定所述埋點(diǎn)日志中新增埋點(diǎn)信息。
優(yōu)選地,所述埋點(diǎn)信息讀取模塊,具體用于從所述埋點(diǎn)日志中以增量方式讀取出埋點(diǎn)信息。
優(yōu)選地,所述裝置還包括:
埋點(diǎn)信息發(fā)送模塊,用于在所述從所述埋點(diǎn)日志中提取出埋點(diǎn)信息之后,將所述埋點(diǎn)信息發(fā)送至消息中間件,所述消息中間件用于傳輸所述埋點(diǎn)信息,并控制傳輸速度;
所述裝置還包括:
埋點(diǎn)信息提取模塊,用于在所述按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合之前,從所述消息中間件讀取出所述埋點(diǎn)信息。
優(yōu)選地,所述裝置還包括:
埋點(diǎn)信息篩選模塊,用于在所述按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合之前,篩選與所述埋點(diǎn)屬性對(duì)應(yīng)的埋點(diǎn)信息。
優(yōu)選地,所述埋點(diǎn)信息聚合模塊,具體用于按照應(yīng)用維度和/或時(shí)間維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合。
優(yōu)選地,所述查詢請(qǐng)求攜帶通過查詢接口輸入的查詢參數(shù);
所述埋點(diǎn)信息展示模塊,具體用于根據(jù)所述查詢參數(shù)查詢并聚合后的埋點(diǎn)信息;所述查詢參數(shù)包括時(shí)間段、所述埋點(diǎn)屬性和所述客戶端應(yīng)用的應(yīng)用 標(biāo)識(shí)中至少一種。
本申請(qǐng)實(shí)施例包括以下優(yōu)點(diǎn):
本申請(qǐng)實(shí)施例基于云平臺(tái),對(duì)客戶端應(yīng)用調(diào)用埋點(diǎn)軟件開發(fā)工具包(softwaredevelopmentkit,sdk)中的應(yīng)用編程接口(applicationprogramminginterface,api)所創(chuàng)建的埋點(diǎn)日志進(jìn)行監(jiān)聽,從埋點(diǎn)日志中讀取出埋點(diǎn)信息,并針對(duì)用戶的查詢請(qǐng)求查詢并展示按照不同的維度聚合后的埋點(diǎn)信息進(jìn)行查詢并展示。本申請(qǐng)實(shí)施例可以通過sdk埋點(diǎn)中的api自定義埋點(diǎn),由于支持不同應(yīng)用場(chǎng)景下根據(jù)用戶需求自定義收集客戶端應(yīng)用相關(guān)數(shù)據(jù),擴(kuò)大了針對(duì)客戶端應(yīng)用的信息收集范圍,并提高了收集結(jié)果的利用轉(zhuǎn)化率;而且,對(duì)從埋點(diǎn)日志中讀取出的埋點(diǎn)信息按不同維度進(jìn)行聚合,實(shí)現(xiàn)了對(duì)客戶端應(yīng)用的收集結(jié)果進(jìn)行分類統(tǒng)計(jì)。
附圖說明
圖1是背景技術(shù)中客戶端應(yīng)用的信息統(tǒng)計(jì)流程示意圖;
圖2是本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例的步驟流程圖;
圖3是本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例中l(wèi)ogagent的結(jié)構(gòu)示意圖;
圖4是本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例中聚合系統(tǒng)的結(jié)構(gòu)示意圖;
圖5是本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例中消息中間件、jstorm和聚合系統(tǒng)之間的關(guān)系示意圖;
圖6是本申請(qǐng)的另一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例的步驟流程圖;
圖7是本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例的系統(tǒng)結(jié)構(gòu)邏輯示意圖;
圖8是本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)裝置實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。
本申請(qǐng)實(shí)施例的核心構(gòu)思之一在于,提供一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法,可以應(yīng)用于服務(wù)器端,服務(wù)器端提供埋點(diǎn)sdk,客戶端應(yīng)用調(diào)用埋點(diǎn)sdk中的api自定義埋點(diǎn),服務(wù)器端對(duì)埋點(diǎn)日志進(jìn)行系統(tǒng)化監(jiān)聽,通過智能代理收集并自動(dòng)、實(shí)時(shí)的聚合埋點(diǎn)日志中的消息,并對(duì)聚合結(jié)果進(jìn)行查詢和展示,實(shí)現(xiàn)對(duì)客戶端應(yīng)用的信息收集和統(tǒng)計(jì)。
參照?qǐng)D2,示出了本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:
步驟100,監(jiān)聽各個(gè)客戶端應(yīng)用調(diào)用埋點(diǎn)軟件開發(fā)工具包創(chuàng)建的埋點(diǎn)日志,并從所述埋點(diǎn)日志中提取出埋點(diǎn)信息,所述埋點(diǎn)日志根據(jù)預(yù)先定義的埋點(diǎn)屬性創(chuàng)建,所述客戶端應(yīng)用通過調(diào)用所述埋點(diǎn)軟件開發(fā)工具包的應(yīng)用編程接口預(yù)先定義所述埋點(diǎn)屬性。
埋點(diǎn)軟件開發(fā)工具包sdk由服務(wù)器端提供給客戶端應(yīng)用,由埋點(diǎn)軟件開發(fā)工具包生成埋點(diǎn)日志,埋點(diǎn)日志是一種特定的日志文件,用于記錄采集的埋點(diǎn)信息。具體而言,在埋點(diǎn)軟件開發(fā)工具包自定義埋點(diǎn)屬性,通過自定義埋點(diǎn)屬性,由埋點(diǎn)軟件開發(fā)工具包將客戶端應(yīng)用運(yùn)行過程中的每一條與上述自定義的埋點(diǎn)屬性相關(guān)的埋點(diǎn)消息存儲(chǔ)到埋點(diǎn)日志中。
其中,埋點(diǎn)屬性可以在埋點(diǎn)軟件開發(fā)工具包預(yù)先定義或是通過客戶端應(yīng)用自定義。例如,埋點(diǎn)sdk可以以jar包的方式提供給客戶端應(yīng)用使用,對(duì)于java客戶端應(yīng)用,java客戶端應(yīng)用需要依賴埋點(diǎn)sdk的jar包自定義埋點(diǎn)。具體的,客戶端應(yīng)用可以通過訪問埋點(diǎn)sdk中提供的應(yīng)用編程接口api,配置用于創(chuàng)建埋點(diǎn)日志的埋點(diǎn)屬性,以根據(jù)埋點(diǎn)屬性采集的埋點(diǎn)信息,由于支持不同應(yīng)用場(chǎng)景下根據(jù)用戶需求自定義收集客戶端應(yīng)用相關(guān)數(shù)據(jù),擴(kuò)大了針對(duì)客戶端應(yīng)用的信息收集范圍,并提高了收集結(jié)果的利用轉(zhuǎn)化率。
具體實(shí)現(xiàn)中,還可以預(yù)先通過sdk定義埋點(diǎn)日志的名稱、存儲(chǔ)路徑等信息。
其中,所述埋點(diǎn)屬性可以包括所述埋點(diǎn)類別、埋點(diǎn)關(guān)鍵字中至少一種。
所述埋點(diǎn)屬性可以包括埋點(diǎn)類別,例如在云平臺(tái)中部署的客戶端應(yīng)用如果想進(jìn)行壓力測(cè)試,用戶想知道在應(yīng)用維度下整個(gè)云平臺(tái)系統(tǒng)的壓力情況,可以通過自定義埋點(diǎn)類別為用戶查詢,可以根據(jù)埋點(diǎn)類別獲取記錄的各次用戶查詢,以進(jìn)一步根據(jù)各次用戶查詢統(tǒng)計(jì)出云平臺(tái)系統(tǒng)的最大qps(每秒查詢率)。
對(duì)所述埋點(diǎn)類別還可以進(jìn)行分級(jí),包括將所述埋點(diǎn)類別分為所述埋點(diǎn)信息所屬埋點(diǎn)父類別(category)或埋點(diǎn)子類別(subcategory),也就是通過對(duì)埋點(diǎn)類別定義父與子的關(guān)系,實(shí)現(xiàn)對(duì)獲取的埋點(diǎn)信息的分類統(tǒng)計(jì)。例如,需要對(duì)一個(gè)客戶端應(yīng)用的對(duì)數(shù)據(jù)庫(kù)調(diào)用的多種執(zhí)行方法進(jìn)行分析,則可以對(duì)該數(shù)據(jù)庫(kù)調(diào)用定義埋點(diǎn)父類別,對(duì)具體的各種執(zhí)行方法定義埋點(diǎn)子類別。
埋點(diǎn)屬性可以包括埋點(diǎn)關(guān)鍵字,通過客戶端應(yīng)用定義所需收集的埋點(diǎn)關(guān)鍵字,進(jìn)一步獲取與埋點(diǎn)關(guān)鍵字相關(guān)的埋點(diǎn)信息。例如,對(duì)客戶端應(yīng)用的多個(gè)運(yùn)行參數(shù)進(jìn)行分析,則可以通過分別定義sdk埋點(diǎn)的埋點(diǎn)關(guān)鍵字,以區(qū)分各個(gè)運(yùn)行參數(shù)。埋點(diǎn)關(guān)鍵字可以與埋點(diǎn)類別結(jié)合定義,例如,一個(gè)客戶端應(yīng)用部署在云環(huán)境中的10臺(tái)虛擬機(jī)上,可以通過定義sdk埋點(diǎn)的埋點(diǎn)關(guān)鍵字,區(qū)分出每臺(tái)虛擬機(jī)的cpu(中央處理器)、memory(內(nèi)存)、disk(硬盤)等運(yùn)行參數(shù)。具體的,對(duì)每臺(tái)虛擬機(jī)定義埋點(diǎn)類別,對(duì)各臺(tái)虛擬機(jī)的運(yùn)行參數(shù)定義在該埋點(diǎn)類別下的埋點(diǎn)關(guān)鍵字。
所述埋點(diǎn)屬性還可以包括對(duì)目標(biāo)對(duì)象的調(diào)用耗時(shí)和調(diào)用成功標(biāo)識(shí)等,分別用于表示客戶端應(yīng)用的某個(gè)目標(biāo)對(duì)象(例如某個(gè)執(zhí)行方法)的調(diào)用耗時(shí),,以及該目標(biāo)對(duì)象是否成功調(diào)用。以將調(diào)用耗時(shí)和調(diào)用是否成功等信息記錄入埋點(diǎn)日志中,供分析使用。
具體而言,api接口的名稱為logstat,可以對(duì)埋點(diǎn)類別、埋點(diǎn)子類別、埋點(diǎn)關(guān)鍵字、調(diào)用耗時(shí)、調(diào)用是否成功中至少一種進(jìn)行定義。當(dāng)對(duì)埋點(diǎn)類別和埋點(diǎn)子類別進(jìn)行定義時(shí),埋點(diǎn)sdk記錄本次結(jié)果為logstat(stringcategory,subcategory);當(dāng)對(duì)埋點(diǎn)類別、埋點(diǎn)子類別和調(diào)用耗時(shí)進(jìn)行定義時(shí),埋點(diǎn)sdk 記錄本次結(jié)果為logstat(stringcategory,subcategory,longresponsetime);當(dāng)對(duì)埋點(diǎn)類別、埋點(diǎn)關(guān)鍵字、調(diào)用耗時(shí)和調(diào)用是否成功進(jìn)行定義時(shí),埋點(diǎn)sdk記錄本次結(jié)果為logstat(stringcategory,stringkeyword,longresponsetime,booleansuccess)。
以對(duì)執(zhí)行方法的相關(guān)參數(shù)進(jìn)行收集為例進(jìn)行具體說明。假設(shè)sdk提供的api接口的具體類為monitorservice,api接口的名稱為monitorservicelogstat,客戶端應(yīng)用中存在對(duì)mysql數(shù)據(jù)庫(kù)的操作,方法名分別為insertmethod方法和updatemethod方法?,F(xiàn)需要統(tǒng)計(jì)這兩個(gè)方法在應(yīng)用運(yùn)行中每分鐘調(diào)用的次數(shù),那么在使用埋點(diǎn)sdk記錄方法被調(diào)用一次時(shí),假設(shè)父類別(category)設(shè)為mysql,子類別(subcategory)分別定義為insert和update。對(duì)于insertmethod方法的埋點(diǎn),舉例如下:
在不需要記錄方法調(diào)用耗時(shí)的情況下,埋點(diǎn)sdk記錄本次結(jié)果為monitorservice.logstat(”mysql”,”insert”)。
如需要記錄insertmethod方法執(zhí)行耗時(shí),則用記錄的insertmethod方法的結(jié)束時(shí)間減去開始時(shí)間就是insertmethod方法的執(zhí)行時(shí)間,假設(shè)為10毫秒,則埋點(diǎn)sdk記錄的結(jié)果為monitorservice.logstat(”mysql”,”insert”,”10”)。
如需記錄調(diào)用是否成功,則記錄結(jié)果為monitorservice.logstat(”mysql”,”insert”,”10”,”true”)表示調(diào)用成功,monitorservice.logstat(”mysql”,”insert”,”10”,”false”)表示調(diào)用失敗。對(duì)于updatemethod的埋點(diǎn)同理使用。
監(jiān)聽埋點(diǎn)日志可以是監(jiān)聽埋點(diǎn)日志的變化,以發(fā)現(xiàn)新增的埋點(diǎn)信息。針對(duì)具備日志目錄的埋點(diǎn)日志,可以監(jiān)聽埋點(diǎn)日志目錄的變化,當(dāng)目錄發(fā)生變化時(shí)確定新增了埋點(diǎn)信息,或是監(jiān)聽埋點(diǎn)信息的變化,當(dāng)埋點(diǎn)信息發(fā)生變化時(shí)確定新增了埋點(diǎn)信息,或是結(jié)合兩種方式進(jìn)行監(jiān)聽。
所述步驟100可以利用logagent(日志代理)對(duì)埋點(diǎn)日志進(jìn)行監(jiān)聽,logagent用于監(jiān)聽埋點(diǎn)日志,具體可以劃分為如下幾個(gè)模塊:pathwatch(目錄監(jiān)聽),用于監(jiān)聽埋點(diǎn)日志的目錄變化;filewatch(文件監(jiān)聽),用于監(jiān)聽 埋點(diǎn)日志的埋點(diǎn)信息變化;watchchecker(監(jiān)聽限制),用于對(duì)監(jiān)聽埋點(diǎn)日志中的埋點(diǎn)信息的數(shù)量做限制;logseeker(日志探索),用于實(shí)現(xiàn)增量讀取埋點(diǎn)日志中的埋點(diǎn)信息。應(yīng)用到本申請(qǐng),利用logagent對(duì)埋點(diǎn)日志進(jìn)行監(jiān)聽,具體可以通過pathwatch監(jiān)聽埋點(diǎn)日志的目錄變化狀態(tài),若目錄變化,則表示埋點(diǎn)日志中新增埋點(diǎn)信息。對(duì)埋點(diǎn)日志的監(jiān)聽,不僅包括對(duì)埋點(diǎn)日志的目錄的監(jiān)聽,還包括在pathwatch監(jiān)聽埋點(diǎn)日志的目錄變化狀態(tài)的基礎(chǔ)上,進(jìn)一步通過filewatch對(duì)埋點(diǎn)日志中埋點(diǎn)信息的監(jiān)聽,并且,監(jiān)聽過程中還可以利用watchchecker對(duì)監(jiān)聽的埋點(diǎn)信息的數(shù)量進(jìn)行限制,在通過filewatch監(jiān)聽到埋點(diǎn)日志中的埋點(diǎn)信息變化后,利用logseeker實(shí)現(xiàn)增量的方式讀取埋點(diǎn)信息,logagent的結(jié)構(gòu)示意圖如圖3所示。
所述步驟100中從埋點(diǎn)日志中讀取出埋點(diǎn)信息,具體可以從埋點(diǎn)日志中以增量方式讀取出埋點(diǎn)信息。例如,埋點(diǎn)日志為xx.log文件,其中的每條埋點(diǎn)信息以段為單位順序排列,埋點(diǎn)日志中每增加一段內(nèi)容,則認(rèn)為增加一條埋點(diǎn)信息,在讀取埋點(diǎn)信息時(shí),忽略已讀取的埋點(diǎn)信息,僅讀取新增的埋點(diǎn)信息,由于無需讀取整個(gè)埋點(diǎn)日志,可以減少處理的數(shù)據(jù)量。
在本申請(qǐng)的一個(gè)優(yōu)選的實(shí)施例中,在所述步驟100從埋點(diǎn)日志讀取埋點(diǎn)信息之后,還可以將讀取出的埋點(diǎn)信息發(fā)送至消息中間件。所述消息中間件可以為metaq(隊(duì)列模型消息中間件)或者kafka(分布式發(fā)布訂閱消息系統(tǒng)),所述消息中間件用于傳輸埋點(diǎn)信息,同時(shí)利用消息中間件的消息堆積功能,控制埋點(diǎn)信息的傳輸速度。相應(yīng)的,在對(duì)埋點(diǎn)信息進(jìn)行處理之前,需要先從消息中間件提取出埋點(diǎn)信息。
步驟102,按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合。
在得到埋點(diǎn)信息之后,可以按照從至少一個(gè)維度分別對(duì)埋點(diǎn)信息進(jìn)行聚合,實(shí)現(xiàn)了對(duì)客戶端應(yīng)用的收集結(jié)果進(jìn)行分類統(tǒng)計(jì)。例如,從應(yīng)用維度和時(shí)間維度進(jìn)行聚合,最終提供最小粒度為1分鐘的某客戶端應(yīng)用的聚合信息,即屬于某客戶端應(yīng)用的時(shí)間維度的最小單位為1分鐘的聚合信息。
可以預(yù)先在服務(wù)器端部署的一套用于聚合埋點(diǎn)日志中的埋點(diǎn)信息的聚合系統(tǒng),對(duì)埋點(diǎn)信息的聚合操作可以在聚合系統(tǒng)中執(zhí)行,聚合系統(tǒng)的結(jié)構(gòu)如 圖4所示。在聚合系統(tǒng)中可以利用數(shù)據(jù)接收器接收聚合信息;利用數(shù)據(jù)分析器分析聚合信息,并存入數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)用于存儲(chǔ)經(jīng)過分析的聚合信息據(jù),還可以提供數(shù)據(jù)查詢接口,用于查詢聚合信息。采用聚合系統(tǒng)進(jìn)行數(shù)據(jù)聚合處理可以保證數(shù)據(jù)處理的實(shí)時(shí)性和準(zhǔn)確性。
其中,按照時(shí)間維度對(duì)埋點(diǎn)信息進(jìn)行聚合,具體可以根據(jù)埋點(diǎn)信息對(duì)應(yīng)的時(shí)間點(diǎn)或時(shí)間段,將屬于相同時(shí)間點(diǎn)或者相同時(shí)間段的多條埋點(diǎn)信息聚合在一起,作為該相同時(shí)間點(diǎn)或相同時(shí)間段內(nèi)的聚合信息;按照應(yīng)用維度對(duì)埋點(diǎn)信息進(jìn)行聚合,具體可以根據(jù)埋點(diǎn)信息對(duì)應(yīng)的客戶端應(yīng)用的標(biāo)識(shí),將屬于相同客戶端應(yīng)用的多條埋點(diǎn)信息聚合在一起,作為該相同客戶端應(yīng)用的聚合信息。其中,多條埋點(diǎn)信息可以為同一客戶端應(yīng)用的埋點(diǎn)信息,也可以為不同客戶端應(yīng)用的埋點(diǎn)信息。
由于埋點(diǎn)日志中除了實(shí)際有用的埋點(diǎn)信息之外,還包括一些冗余的信息。因此,在本申請(qǐng)的一個(gè)優(yōu)選的實(shí)施例中,在所述步驟102之前,還可以對(duì)讀取出的埋點(diǎn)信息進(jìn)行清洗和過濾。通過清洗刪除一些無意義的字符或是標(biāo)記,例如分隔符等,通過過濾可以從剩余的信息中提取出有用的埋點(diǎn)信息,具體的,可以根據(jù)埋點(diǎn)屬性中的埋點(diǎn)類別和埋點(diǎn)關(guān)鍵字中至少一種進(jìn)行篩選。
具體的,可以利用實(shí)時(shí)計(jì)算框架讀取出埋點(diǎn)信息以及對(duì)埋點(diǎn)信息的清洗和過濾。例如可以采用jstorm實(shí)時(shí)計(jì)算框架,利用jstorm提取出與埋點(diǎn)屬性對(duì)應(yīng)的埋點(diǎn)信息。jstorm是參考storm的實(shí)時(shí)流式計(jì)算框架,在網(wǎng)絡(luò)輸入輸出、線程模型、資源調(diào)度、可用性及穩(wěn)定性上做了持續(xù)改進(jìn),相比于storm具有運(yùn)行更穩(wěn)定、調(diào)度功能更強(qiáng)大、執(zhí)行效率更高等優(yōu)點(diǎn)。如圖5所示,示出了消息中間件、jstorm和聚合系統(tǒng)之間的關(guān)系示意圖,jstorm從消息中間件獲取埋點(diǎn)信息,在jstorm中經(jīng)過spout(噴射)進(jìn)行清洗,通過bolt(篩選)進(jìn)行過濾,將清洗和過濾后的與埋點(diǎn)關(guān)鍵字對(duì)應(yīng)的埋點(diǎn)信息發(fā)送至聚合系統(tǒng)。
步驟104,根據(jù)查詢請(qǐng)求查詢并展示聚合后的埋點(diǎn)信息。
執(zhí)行本申請(qǐng)的服務(wù)端可以提供給用戶查詢埋點(diǎn)信息的接口,具體的可以 由上述聚合系統(tǒng)提供接口。用戶可以通過訪問該接口發(fā)送對(duì)埋點(diǎn)信息的查詢請(qǐng)求,服務(wù)端接收到該查詢請(qǐng)求后,查詢所需的埋點(diǎn)信息并展示給用戶。
具體而言,用戶可以通過訪問該接口輸入表征所需信息的查詢參數(shù),服務(wù)端接收到的查詢請(qǐng)求攜帶查詢參數(shù),進(jìn)一步根據(jù)查詢參數(shù)查詢對(duì)應(yīng)的埋點(diǎn)信息。查詢參數(shù)可以包括時(shí)間段、所述埋點(diǎn)屬性和所述客戶端應(yīng)用的應(yīng)用標(biāo)識(shí)中至少一種,以查詢參數(shù)包括時(shí)間段、埋點(diǎn)屬性和應(yīng)用標(biāo)識(shí)為例,根據(jù)查詢參數(shù)在聚合系統(tǒng)中可以查詢到某個(gè)時(shí)間段內(nèi)某個(gè)應(yīng)用的某個(gè)關(guān)鍵字的埋點(diǎn)信息。查詢結(jié)果可以以圖表、文檔、走勢(shì)圖等各種形式進(jìn)行展示。例如,針對(duì)按照時(shí)間維度聚合的埋點(diǎn)信息,可以生成可視化曲線圖,并根據(jù)實(shí)時(shí)獲取的新的埋點(diǎn)數(shù)據(jù)對(duì)曲線圖進(jìn)行更新。
綜上所述,本申請(qǐng)實(shí)施例中的技術(shù)方案,對(duì)客戶端應(yīng)用調(diào)用埋點(diǎn)sdk中的api所創(chuàng)建的埋點(diǎn)日志進(jìn)行監(jiān)聽,從埋點(diǎn)日志中讀取出埋點(diǎn)信息,并針對(duì)用戶的查詢請(qǐng)求查詢并展示按照不同的維度聚合后的埋點(diǎn)信息進(jìn)行查詢并展示。本申請(qǐng)實(shí)施例可以通過sdk埋點(diǎn)中的api自定義埋點(diǎn),由于支持不同應(yīng)用場(chǎng)景下根據(jù)用戶需求自定義收集客戶端應(yīng)用相關(guān)數(shù)據(jù),擴(kuò)大了針對(duì)客戶端應(yīng)用的信息收集范圍,并提高了收集結(jié)果的利用轉(zhuǎn)化率;而且,對(duì)從埋點(diǎn)日志中讀取出的埋點(diǎn)信息按不同維度進(jìn)行聚合,實(shí)現(xiàn)了對(duì)客戶端應(yīng)用的收集結(jié)果進(jìn)行分類統(tǒng)計(jì)。同時(shí),利用消息中間件傳輸埋點(diǎn)信息,并控制傳輸速度,可以緩解聚合系統(tǒng)的壓力。
參照?qǐng)D6,示出了本申請(qǐng)的另一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:
步驟200,客戶端應(yīng)用調(diào)用服務(wù)器端提供的埋點(diǎn)sdk自定義埋點(diǎn)。
步驟202,埋點(diǎn)sdk創(chuàng)建埋點(diǎn)日志。
步驟204,logagent監(jiān)聽埋點(diǎn)日志,并以增量方式讀取埋點(diǎn)日志中的埋點(diǎn)信息,并將埋點(diǎn)信息發(fā)送至消息中間件。
步驟206,jstorm從消息中間件中讀取出埋點(diǎn)信息,并對(duì)埋點(diǎn)信息進(jìn)行實(shí)時(shí)計(jì)算,將計(jì)算后的埋點(diǎn)信息發(fā)送給至聚合系統(tǒng)。
步驟208,聚合系統(tǒng)按照應(yīng)用維度和/或時(shí)間維度對(duì)埋點(diǎn)信息進(jìn)行聚合。
步驟210,服務(wù)端根據(jù)查詢請(qǐng)求查詢并展示聚合后的埋點(diǎn)信息。
綜上所述,本申請(qǐng)實(shí)施例中的客戶端應(yīng)用可以通過sdk埋點(diǎn)中的api自定義埋點(diǎn),由于支持不同應(yīng)用場(chǎng)景下根據(jù)用戶需求自定義收集客戶端應(yīng)用相關(guān)數(shù)據(jù),擴(kuò)大了針對(duì)客戶端應(yīng)用的信息收集范圍,并提高了收集結(jié)果的利用轉(zhuǎn)化率;而且,對(duì)從埋點(diǎn)日志中讀取出的埋點(diǎn)信息按不同維度進(jìn)行聚合,實(shí)現(xiàn)了對(duì)客戶端應(yīng)用的收集結(jié)果進(jìn)行分類統(tǒng)計(jì)。
參照?qǐng)D7,示出了本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法實(shí)施例的系統(tǒng)結(jié)構(gòu)邏輯示意圖,客戶端應(yīng)用調(diào)用埋點(diǎn)sdk中的api自定義埋點(diǎn),創(chuàng)建埋點(diǎn)日志;logagent讀取出埋點(diǎn)日志中的埋點(diǎn)信息,并發(fā)送至消息中間件,jstorm實(shí)時(shí)從消息中間件讀取出埋點(diǎn)信息,并進(jìn)行清洗和過濾,將清洗和過濾后的埋點(diǎn)信息發(fā)送至聚合系統(tǒng);聚合系統(tǒng)對(duì)接收到的埋點(diǎn)信息按照至少一個(gè)維度進(jìn)行聚合,并對(duì)外提供數(shù)據(jù)查詢功能和數(shù)據(jù)展示功能。
綜上所述,本申請(qǐng)實(shí)施例中的技術(shù)方案,對(duì)客戶端應(yīng)用調(diào)用埋點(diǎn)sdk中的api所創(chuàng)建的埋點(diǎn)日志進(jìn)行監(jiān)聽,從埋點(diǎn)日志中讀取出埋點(diǎn)信息,并針對(duì)用戶的查詢請(qǐng)求查詢并展示按照不同的維度聚合后的埋點(diǎn)信息進(jìn)行查詢并展示。本申請(qǐng)實(shí)施例可以通過sdk埋點(diǎn)中的api自定義埋點(diǎn),由于支持不同應(yīng)用場(chǎng)景下根據(jù)用戶需求自定義收集客戶端應(yīng)用相關(guān)數(shù)據(jù),擴(kuò)大了針對(duì)客戶端應(yīng)用的信息收集范圍,并提高了收集結(jié)果的利用轉(zhuǎn)化率;而且,對(duì)從埋點(diǎn)日志中讀取出的埋點(diǎn)信息按不同維度進(jìn)行聚合,實(shí)現(xiàn)了對(duì)客戶端應(yīng)用的收集結(jié)果進(jìn)行分類統(tǒng)計(jì)。
需要說明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng)實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本申請(qǐng)實(shí)施例所必須的。
參照?qǐng)D8,示出了本申請(qǐng)的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:
埋點(diǎn)日志監(jiān)聽模塊800,用于監(jiān)聽各個(gè)客戶端應(yīng)用調(diào)用埋點(diǎn)軟件開發(fā)工具包創(chuàng)建的埋點(diǎn)日志;
埋點(diǎn)信息提取模塊802,用于從所述埋點(diǎn)日志中提取出埋點(diǎn)信息,所述埋點(diǎn)日志根據(jù)預(yù)先定義的埋點(diǎn)屬性創(chuàng)建,所述客戶端應(yīng)用通過調(diào)用所述埋點(diǎn)軟件開發(fā)工具包的應(yīng)用編程接口預(yù)先定義所述埋點(diǎn)屬性;
埋點(diǎn)信息聚合模塊804,用于按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合;
埋點(diǎn)信息展示模塊806,用于根據(jù)查詢請(qǐng)求查詢并展示聚合后的埋點(diǎn)信息。
本申請(qǐng)實(shí)施例中,優(yōu)選地,所述埋點(diǎn)屬性包括所述埋點(diǎn)信息的埋點(diǎn)類別和/或埋點(diǎn)關(guān)鍵字,所述埋點(diǎn)類別包括所述埋點(diǎn)信息所屬埋點(diǎn)父類別或埋點(diǎn)子類別。
本申請(qǐng)實(shí)施例中,優(yōu)選地,所述埋點(diǎn)日志監(jiān)聽模塊,具體用于監(jiān)聽所述埋點(diǎn)日志的目錄和/或所述埋點(diǎn)信息的變化狀態(tài);若所述目錄和/或所述埋點(diǎn)信息發(fā)生變化,則確定所述埋點(diǎn)日志中新增埋點(diǎn)信息。
本申請(qǐng)實(shí)施例中,優(yōu)選地,所述埋點(diǎn)信息讀取模塊,具體用于從所述埋點(diǎn)日志中以增量方式讀取出埋點(diǎn)信息。
本申請(qǐng)實(shí)施例中,優(yōu)選地,所述裝置還包括:
埋點(diǎn)信息發(fā)送模塊,用于在所述從所述埋點(diǎn)日志中提取出埋點(diǎn)信息之后,將所述埋點(diǎn)信息發(fā)送至消息中間件,所述消息中間件用于傳輸所述埋點(diǎn)信息,并控制傳輸速度;
所述裝置還包括:
埋點(diǎn)信息提取模塊,用于在所述按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合之前,從所述消息中間件讀取出所述埋點(diǎn)信息。
本申請(qǐng)實(shí)施例中,優(yōu)選地,所述裝置還包括:
埋點(diǎn)信息篩選模塊,用于在所述按照至少一個(gè)維度對(duì)所述埋點(diǎn)信息進(jìn)行 聚合之前,篩選與所述埋點(diǎn)屬性對(duì)應(yīng)的埋點(diǎn)信息。
本申請(qǐng)實(shí)施例中,優(yōu)選地,所述埋點(diǎn)信息聚合模塊,具體用于按照應(yīng)用維度和/或時(shí)間維度對(duì)所述埋點(diǎn)信息進(jìn)行聚合。
本申請(qǐng)實(shí)施例中,優(yōu)選地,所述查詢請(qǐng)求攜帶通過查詢接口輸入的查詢參數(shù);
所述埋點(diǎn)信息展示模塊,具體用于根據(jù)所述查詢參數(shù)查詢并聚合后的埋點(diǎn)信息;所述查詢參數(shù)包括時(shí)間段、所述埋點(diǎn)屬性和所述客戶端應(yīng)用的應(yīng)用標(biāo)識(shí)中至少一種。
綜上所述,本申請(qǐng)實(shí)施例中的技術(shù)方案,對(duì)客戶端應(yīng)用調(diào)用埋點(diǎn)sdk中的api所創(chuàng)建的埋點(diǎn)日志進(jìn)行監(jiān)聽,從埋點(diǎn)日志中讀取出埋點(diǎn)信息,并針對(duì)用戶的查詢請(qǐng)求查詢并展示按照不同的維度聚合后的埋點(diǎn)信息進(jìn)行查詢并展示。本申請(qǐng)實(shí)施例可以通過sdk埋點(diǎn)中的api自定義埋點(diǎn),由于支持不同應(yīng)用場(chǎng)景下根據(jù)用戶需求自定義收集客戶端應(yīng)用相關(guān)數(shù)據(jù),擴(kuò)大了針對(duì)客戶端應(yīng)用的信息收集范圍,并提高了收集結(jié)果的利用轉(zhuǎn)化率;而且,對(duì)從埋點(diǎn)日志中讀取出的埋點(diǎn)信息按不同維度進(jìn)行聚合,實(shí)現(xiàn)了對(duì)客戶端應(yīng)用的收集結(jié)果進(jìn)行分類統(tǒng)計(jì)。
對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
在一個(gè)典型的配置中,所述計(jì)算機(jī)設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
本申請(qǐng)實(shí)施例是參照根據(jù)本申請(qǐng)實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè) 備上,使得在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本申請(qǐng)實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)實(shí)施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上對(duì)本申請(qǐng)所提供的一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)方法和一種基于云平臺(tái)的客戶端應(yīng)用的信息統(tǒng)計(jì)裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。