一種網絡中到訪信息收集的方法和系統的制作方法
【專利摘要】本發明公開了一種網絡中到訪信息收集系統,其包括后臺服務器、前端服務器、以及后端服務器。通過后臺產品人員錄入統計項信息而獲得對該統計項的進行統計的配置文件以及對該統計項進行統計的打點地址;然后將所述打點地址發送至前端服務器,在用戶請求統計項時同時觸發對打點地址的請求,生成相應的請求日志;將所述配置文件及請求日志傳送至后臺服務器來實現對統計項的統計。另外,本發明還公開一種網絡中到訪信息收集方法。利用本發明的系統和方法,可以快速、高效、準確地實現對網絡中運行的某一項目的到訪信息的統計。
【專利說明】一種網絡中到訪信息收集的方法和系統
【技術領域】
[0001]本發明涉及計算機網絡【技術領域】,尤其涉及網絡中到訪信息收集的方法和系統。【背景技術】
[0002]隨著計算機網絡技術的普及和不斷發展,許多產品開發人員開發研制出越來越多的應用,放到網絡平臺上供大家選擇、下載、和使用。每一種應用在放到網絡平臺上之后,產品開發人員都希望知道其開發研制的應用是不是很受歡迎,受歡迎的程度有多高。所以網絡平臺的管理人員會根據產品開發人員的需求對每項應用的用戶訪問量、頁訪問量等進行統計。但是,目前大多采用人工手動的方式進行統計,占用管理人員的統計時間比較長,統計效率低。
【發明內容】
[0003]鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的一種網絡中到訪信息收集的方法和系統。
[0004]依據本發明的一個方面,提供了一種網絡中到訪信息收集系統,其包括后臺服務器、前端服務器、以及后端服務器。其中,所述后臺服務器包括:輸入裝置,其適于接收用戶輸入的統計項信息,并根據用戶輸入的統計項信息生成對所述統計項進行統計的打點地址及配置文件,該配置文件包含對該統計項進行統計的指定形式的打點地址和統計規則;傳輸裝置,其適于將所述配置文件傳輸至所述后端服務器,以及將所述打點地址傳輸至前端服務器。所述前端服務器包括:接收裝置,其適于經網絡接收所述傳輸裝置傳送的打點地址;訪問啟動裝置,其適于根據用戶對所述統計項的訪問,啟動對所述統計項的打點地址的訪問請求,產生請求日志;異步裝置,其適于每隔預定時間將所述請求日志異步傳輸至后端服務器;以及第一存儲裝置,其適于存儲所述請求日志。所述后端服務器包括:統計裝置,其接收所述傳輸裝置傳送的所述配置文件以及所述異步裝置傳輸的所述請求日志并存儲,讀取所述配置文件,根據所述配置文件中的打點地址,掃描所述請求日志,獲得對所述統計項的到訪信息的統計結果。
[0005]根據本發明的另一方面,提供了一種網絡中到訪信息收集方法,包括:接收用戶輸入的統計項信息,并根據用戶輸入的統計項信息生成對所述統計項進行統計的指定形式的打點地址及配置文件,該配置文件包含對所述統計項進行統計的指定形式的打點地址和統計規則;將所述配置文件傳輸至后端服務器中的分布式數據處理軟件框架,以及將所述打點地址傳輸至前端服務器中;在前端服務器中,根據用戶對所述統計項的訪問,啟動對所述統計項的打點地址的訪問請求,產生請求日志,并將該請求日志傳輸至后端服務器中的分布式數據處理軟件框架;讀取分布式數據處理軟件框架中的配置文件,根據所述配置文件中的指定形式的打點地址,掃描分布式數據處理軟件框架中的所述請求日志,獲得對所述統計項的到訪信息的統計結果。
[0006]利用本發明,可以快速、高效、準確地實現對網絡中運行的某一項目的到訪信息的統計。
[0007]上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的【具體實施方式】。
【專利附圖】
【附圖說明】
[0008]通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0009]圖1示出了根據本發明的一種實施方式的網絡中到訪信息收集系統的方框示意圖;
[0010]圖2A示出了一個項目的一個統計項的統計項信息的輸入界面;
[0011]圖2B示出了用戶輸入一個項目的多個統計項的統計項信息的輸入界面;
[0012]圖2C示出了追加統計項的輸入界面;
[0013]圖3示出了系統管理人員看到的各項目的統計框的界面;
[0014]圖4A示出了包含打點分類選項的輸入界面;
[0015]圖4B示出了在打點分類選項中選擇了人工統計的選項之后出現的輸入界面;
[0016]圖5A示出了統計項目“滑動有驚喜”超過預定的統計時間段的顯示狀態;
[0017]圖5B示出了 “權限管理”界面;
[0018]圖5C示出了對統計項進行續期的界面;
[0019]圖示出了產品人員設置訪問權限的界面;
[0020]圖5E給出了利用本發明所得到對統計項目進行統計的統計結果的表格;
[0021]圖6示出了本發明的網絡中到訪信息收集方法的流程圖。
【具體實施方式】
[0022]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
[0023]本發明提供一種網絡中到訪信息收集系統,該系統可以自動統計網絡平臺上的各個應用的用戶訪問量等數據,從而知道該應用的受歡迎程度,這對于應用的開發方向有一定的指導作用。
[0024]圖1示出了根據本發明的一種實施方式的網絡中到訪信息收集系統的方框示意圖。如圖1所示,本發明的網絡中到訪信息收集系統100包括:后臺服務器110、前端服務器120、以及后端服務器130。
[0025]后臺服務器110包括輸入裝置1110和傳輸裝置1120。其中,輸入裝置1110適于接收產品人員(或稱為用戶)輸入的針對某一要統計的項目的統計項信息。這里的產品人員主要是開發應用的產品開發人員或者與應用有關的產品管理人員。產品人員從后臺服務器110經輸入裝置1110輸入想要知道的關于某一要統計的項目的一個或多個統計項的相關信息,即統計項信息。所述要統計的項目可以是一個應用,可以是一個應用的某一項功能,也可以是某個網頁或者某個網頁中的某一欄目等等。所述統計項信息例如可以包括:項目的名稱、統計項名稱、以及統計規則等。其中,所述統計規則包括統計項的頁訪問量(PV,即page view)、統計項的用戶訪問量(UV,即user view)、用戶的MID、用戶的IP地址、統計項的排名中的一個或多個。其中UV可以基于用戶的MID或用戶的IP地址來統計。用戶的MID是公司規定的對每臺機器生成的一個唯一的字符串,代表每個用戶。通過統計PV和UV,可以知道當前推出的應用或者某一產品的某一項新增功能是否受用戶歡迎。
[0026]圖2A示出了一個項目的統計項信息的輸入界面,其中包括指標名稱(對應著項目的名稱,這里是應用的名稱)、報表標題(對應著統計項名稱,即要統計的對象)、和統計功能(對應著統計規則,這里示出了 PV和UV兩項,用戶可以根據自己要統計的數據而進行選擇)。
[0027]圖2A示出的是關于一個項目的一個統計項的統計項信息的輸入界面,即單項統計的輸入界面。實際上在輸入界面中還可以輸入多個項目的統計項信息或者輸入一個項目的多個統計項信息。如圖2B所示,其示出了用戶輸入一個統計項目的多個統計項的統計項信息的輸入界面,這樣可以對一個統計項目的多個統計項同時進行統計。
[0028]用戶在輸入統計項信息后,可以自動生成相應統計項的打點地址(即到訪信息統計地址)。具體地,產品人員在輸入完某一統計項目的統計項信息時,將打點地址一欄留空,這樣,在點擊輸入界面中的“新增”按鈕后,就會在打點地址一欄中生成相應的打點地址,同時還生成該統計項的配置文件。該打點地址包含產品人員輸入的指標名稱、報表標題等信息。所生成的打點地址具有預先指定的地址形式,例如可以是圖片形式的地址,象.GIF、.JPEG、.PNG 等形式的地址,例如為 http: //dd.browser.#/static/a/75.604.gif,另I也可以是.HTML形式的地址。對于靜態圖片形式的打點地址,解析速度快,所以每秒鐘解析的靜態圖片數量比解析動態地址要多得多。例如對于動態地址,每秒鐘解析3000個,但對于靜態圖片,每秒鐘可以解析I萬個。
[0029]另外,可選地,所述打點地址也可以手動輸入。產品人員在輸入完某一統計項目的統計項信息時,在打點地址一欄中手動輸入打點地址,然后再點擊輸入界面中的“新增”按鈕,會生成該統計項的配置文件,但這時的打點地址是產品人員手動輸入的打點地址。
[0030]另外,如果在輸入完某一個項目的一個或多個統計項的統計項信息并且生成了打點地址之后,想再增加該項目的統計項時,可以點擊圖2C所示界面中的“追加統計項”按鈕。如圖2C所示,之前已經輸入了針對統計項目“火車俠”的“首頁”、“購票成功”、“無賬號購買”三個統計項的信息并生成了相應的打點地址,如果再增加關于統計項目“火車俠”的其它統計項時,則點擊界面中的“追加統計項”按鈕,即可出現一套新的空白的統計項信息輸入欄,即指標名稱、報表標題、統計功能、打點地址等,以供用戶輸入新的統計項信息。
[0031]可選地,對于每個項目的統計項的個數,可以進行限定,例如可以設置每個項目的統計項個數最多為50項,當產品人員輸入超過50項的統計項時,系統會提示,統計項個數已經達到限制數,不能再增加。這時,如果產品人員想要增加更多的統計項,可以向管理人員申請增加,由管理人員為該產品人員開通更多的統計項數目。圖3示出了系統管理人員看到的各項目的統計相關信息,如圖3所示,對于統計項目“滑動有驚喜”,其中有12個項統計項,對于統計項目“搶車票”有8項統計項。但是系統可以設定,對于每個統計項目,所統計的統計項不能超過50項,當然也可設置對于每個統計項目的統計項數目不能超過其它的數據,例如60項或者30項等。
[0032]可選地,在輸入統計項信息時,還可以選擇對該統計項進行統計的統計時間段,例如,在圖2A、圖2B、圖2C中顯示的輸入框“有效期至”,其中有效期的長短由用戶自己選擇,例如3個月、半年、或者I年等。
[0033]可選地,當產品人員在輸入統計項信息時選擇了統計時間段時,該配置文件還包括統計時間段。
[0034]傳輸裝置1120將輸入裝置1110所生成的配置文件傳輸至后端服務器130。當產品人員在后臺服務器上添加了多個統計項的時候,會產生很多配置文件。當打點地址采用圖片形式gif時,會對應產生很多圖片。傳輸裝置1120將所述配置文件傳輸至后端服務器中的統計裝置1310(這將在后面具體描述)上。所產生的打點地址可以保存在后臺服務器110上,也可以經傳輸裝置1120傳輸至前端服務器120,具體地,是傳送至用于打點統計的前端服務器中,例如可以采取自動推送的方式將所產生的打點地址傳輸至前端服務器120,將配置文件推送至后端服務器130。這里,用于打點統計的前端服務器120通常具有多臺。傳輸裝置1120要將所產生的打點地址分別傳輸至每臺用于打點統計的前端服務器120。這樣,可以確保用戶訪問任何一臺前端服務器上的某一項目(例如應用或者網頁)時會觸發對應的打點地址(例如圖片)。
[0035]當要傳輸的打點地址很多時,這個傳輸過程比較耗網絡10(即網絡硬件,包括本地網卡、網關、路由器等),尤其當網絡不流暢的時候,這個傳輸過程會變得很慢。為此,傳輸裝置1120可以采用異步傳輸方式加上失敗重連機制(即重新推送)來傳輸這些打點地址。例如,事先限定每個打點地址的自動推送次數,在超過限定的自動推送次數之后仍未推送成功時,則再重新進行推送,推送次數與之前設定的自動推送次數相同。具體地,當推送失敗時,產品人員重新點擊輸入頁面中的“保存”按鈕即可重新觸發重新推送,這可以防止有時出現斷網等情況時導致部分數據未能成功推送的問題。
[0036]另外,采用異步推送的方式,可以將打點地址分批進行傳送,使得前端服務器很快響應,而不必等待。如果所有打點地址的推送都同時推送,由于推送都是要花時間的,例如I分鐘、30秒等,這樣前端服務器、產品人員、或者產品的使用人員就需要等待。而通過異步推送的方式,可以避免網頁出現一堆空白或錯誤。
[0037]傳輸裝置1210將配置文件向后端服務器傳送時,也可以如前面所述采用異步推送的方式進行推送。
[0038]前端服務器120包括接收裝置1210、訪問啟動裝置1230、第一存儲裝置1220、以及異步裝置1240。前端服務器120可以有很多臺,部分前端服務器120存儲一些應用等,接收用戶對應用的訪問,并根據用戶對應用的訪問請求而產生相應的請求日志,這部分請求日志并非本發明所關注的;還有部分前端服務器120接收從后臺服務器110傳送來的打點地址、接收對打點地址的請求,并根據對打點地址的請求而產生相應的請求日志(后面所提及的請求日志皆是這個請求日志)。當后臺服務器110向前端服務器120傳輸打點地址時,所有的前端服務器120都會接收到所述打點地址。
[0039]其中,接收裝置1210適于經網絡接收后臺服務器110的傳輸裝置1120傳輸的打點地址。[0040]訪問啟動裝置1230適于根據用戶對所述統計項(例如某一網頁或者網頁中的某一功能)的訪問,啟動或觸發與所述統計項對應的所述到訪信息統計地址(即打點地址)的訪問請求,產生請求日志。這里,啟動或觸發可以是通過用戶點擊、或者通過用戶訪問網頁時輸入的回車鍵等來實現;例如,統計項為某一網頁a.com,當用戶向前端服務器發送訪問該網頁a.com的請求時,會同時觸發b.com上的對網頁a.com的打點地址的訪問請求,這可以通過在a.com這一統計項中(例如網頁a.com的html代碼中)添加一段代碼來實現。這樣,訪問網頁a.com的日志存儲在a.com域名的機器上,訪問打點地址的請求日志存儲在b.com域名的機器上。本發明關注的是在b.com域名的機器上的請求日志,這直接涉及到對網頁a.com的訪問次數的統計。所述請求的HEADER頭中包含有很多信息,例如可以包含用戶的瀏覽器信息、IP地址(對應于地域)、用戶的MID、打點地址等等,這些信息會形成在請求日志中。所述請求日志包含所述打點地址及訪問該統計項的用戶的IP地址。
[0041]當用戶通過瀏覽器向前端服務器120發送訪問某一應用等的請求時,由于HTTP是無狀態的協議,瀏覽器與前端服務器連接的時候都是采用SOCKET方式連接前端服務器的地址,而SOCKET連接的時候是基于客戶端的IP地址進行連接,因此前端服務器能夠獲得客戶端的IP地址,并將其放置于請求日志中。
[0042]第一存儲裝置1220適于存儲所述請求日志,例如在其中保存一段時間,例如3天,以防其未被傳輸至HDFS中。對每個統計項的打點地址的訪問而產生的請求日志是之后進行統計規則的統計時所要用到的重要信息,統一存儲在第一存儲裝置1220中。另外,為了防止該打點地址被地區運營商緩存而影響打點的統計結果,在啟動或觸發打點地址的請求時,在打點地址后可以加一個隨機數,該包含隨機數的打點地址會被寫入到請求日志中。如前面所述的例子,通過開發人員在a.com的域名的統計項中添加代碼,可以使得在觸發對打點地址請求時在打點地址后加一個隨機數,
[0043]異步裝置1240適于將第一存儲裝置1220中存儲的請求日志向后端服務器130中的統計裝置1310(這將在后面具體描述)異步傳輸。統計裝置1310可以采用分布式數據處理軟件框架來實現。具體地,分布式數據處理軟件框架可以由HAD00P來實現。當統計裝置1310由HAD00P來實現時,異步裝置1240將所述請求日志傳輸至的HAD00P的HDFS (Hadoop分布式文件系統)中。例如異步裝置1240可以通過facebook scribe開源程序(即,分布式日志搜集系統)進行異步傳輸。這樣,可以將請求日志綜合地存儲在一臺機器上。所述異步傳輸可以按小時進行目錄的歸檔,也可以按其它的時間段進行目錄的歸檔。特別說明的是,當按小時進行異步傳輸時,當前看到的請求日志會比當前的請求日志晚一個小時。
[0044]后端服務器130包括統計裝置1310。統計裝置1310可以采用分布式數據處理軟件框架來實現。具體地,分布式數據處理軟件框架可以由HAD00P來實現,但分布式數據處理軟件框架不限于由HAD00P來實現。HAD00P可以包括多臺服務器(該多臺服務器形成HAD00P集群)和hadoop分布式文件系統(即HDFS)。Hadoop是由Apache開發的一個分布式系統基礎架構,能夠對大量數據進行并行處理以提高處理速度,包括MAP和REDUCE流程。下面以統計裝置1310由HADOOP來實現為例進行具體說明,但統計裝置1310并不限于由HADOOP來實現。
[0045]后臺服務器110中的傳輸裝置1210將配置文件、前端服務器120中的異步裝置1240將產生的請求日志傳送至hadoop分布式文件系統進行存儲。為了防止請求日志丟失或者損壞,系統維護工程師會將所述請求日志拷貝幾份進行備份,例如備份3份,其中一份放在HDFS中,另外兩份分別存儲HADOOP集群中的兩個服務器上。
[0046]在HDFS中有一個或多個目錄,以存儲不同的數據。例如,HDFS中的目錄B用于統一存儲請求日志。為此,可以將散列于不同的前端服務器上的請求日志每隔預定時間傳輸至hdfs中,這便于對這些請求日志進行分析、統計。例如,可以每隔I小時將所有前端服務器的請求日志異步傳輸至hdfs中,如前面所述,這可以通過在每臺前端服務器中的異步裝置1240來實現。當這些請求日志被異步傳輸到hdfs中時,會被按照年月日分別進行存儲于不同的文件夾中,例如:
[0047]2013年10月10日接收到的請求日志存在文件夾“2013_0CT0BER-10th log”中,當按小時進行異步傳輸時,該文件夾下會包含如下文件:
[0048]01.log---存儲傳送過來的O點至I點產生的請求日志;
[0049]02.log---存儲傳送過來的I點至2點產生的請求日志;
[0050]03.log存儲傳送過來的2點至3點產生的請求日志;
[0051]以此類推,直至24.log—存儲傳送過來的23點至24點產生的請求日志。
[0052]具體地,在利用HADOOP進行統計時,在MAP過程中,提取指定請求日志,例如,會呈現如下的結果:
[0053]pv:http://test.cn/1.gif I
[0054]uv:http://test.cn/1.gif 127.0.0.1
[0055]pv:http://test.cn/1.gif I
[0056]uv:http://test.cn/1.gif 111.111.111.1ll
[0057]其中,第I項和第2項是IP地址為127.0.0.1的用戶訪問打點地址http://test, cn/1.Rifl的請求日志提取相關信息而得到的結果;第3項與第4項是IP地址為111.111.111.111的用戶訪問打點地址http://test, cn/1.RifI的請求日志提取相關信息而得到的結果。
[0058]然后,在reduce過程中,對MAP過程得到的結果進行累加、以及根據IP地址進行消重,獲得最終的對統計項的PV和UV的統計結果。
[0059]另外,統計裝置1310基于配置文件和請求日志還可以對獲得其它統計規則的統計結果,例如可以獲得某一應用的TOP排名的統計結果等。
[0060]另外,統計裝置1310是按天還是按小時等進行統計,在配置文件中已經事先設定好,這個在本發明“自助統計”的輸入界面(如前面所述的圖2A-圖2C所示的輸入界面)中可以設置相應的選項,后臺產品人員在錄入需要時可以根據自己的需求進行選擇,例如選擇是按天或者按小時。目前圖2A-圖2C所示的輸入界面中還沒有加入該選項,其默認是按天進行統計。這里,也不限定是按天或者是按小時,也可以按半天或者幾個小時或者幾天、一星期等等。
[0061]通過Hadoop集群可以高效地實現對大量請求日志的分析。但是,一方面,HADOOP集群有可能同時被好多人使用,如果HADOOP集群中的所有服務器都被占用,則會出錯。另一方面,HADOOP在運行時,會耗掉本機的內存。如果本機內存已經超標的話,會報錯。因此,HADOOP集群可以根據設定的總的統計時間以及對每個統計項的統計時間而并行運行對各統計項的分析、統計,即并行啟動讀取多個配置文件、掃描所述請求日志,獲得對多個統計項的到訪信息的統計結果。例如,設定的對所有統計項的統計時間為一小時,而其中的各統計項的運行時間分別為3分鐘等,這樣,當HADOOP集群調用其中數臺機器對第一批統計項分析3分鐘時,無論對第一批統計項的統計是否獲得統計結果,都會自動地并發啟動對第二批統計項的分析統計,以此類推,調用數臺機器對第N批統計項進行分析統計,直到對所有統計項在一個小時內分析統計完畢。這里,N為自然數。其中第一、第二批統計項、…第N批統計項可以分別包括一個或多個統計項。
[0062]上面所進行的打點統計,打點地址都位于同一個域名的同一個目錄下。通常每個域名都有其自己的日志格式。日志格式的配置是在前端服務器上進行的,由Apache或者Nginx根據客戶端請求向請求日志寫入請求數據、并按照預定格式來進行配置而生成。在本發明的系統開發出來之前,都是采用人工統計的方式。在以前的人工統計的情形下,針對被統計的項目,請求日志的生成沒有統一的格式,而且在HDFS中存放在不同的目錄下,例如被統計的項目“收藏夾”的請求日志從前端服務器人工地傳輸至HDFS中的目錄“fav”下,被統計的項目“登錄管家”的請求日志從前端服務器人工地傳輸至HDFS中的目錄“login”下。[0063]在本發明的系統開發出來之后,需要將以前的人工統計集成到本系統的自助統計中。為此,將對應不同項目的請求日志自動推送至HDFS中對應的目錄下,這時,不同項目的請求日志可能在不同的域名下生成,因此請求日志的格式不一樣。
[0064]為了方便將人工統計集成到本系統的自助統計的統計結果中,本系統采用圖4A所示的輸入界面,在該界面的“打點分類”選項中選擇“人工統計”,則會出現圖4B所示的輸入界面,在圖4B所示的輸入界面中會顯示“匹配規則”的輸入欄,本系統的開發人員在“匹配規則” 一欄中輸入相應的正則匹配規則。在選擇“新增”后,生成相應的配置文件。該配置文件被傳送至HDFS中。
[0065]當想要獲取人工統計的統計結果時,統計裝置1310讀取人工統計的相應統計項的配置文件,根據該配置文件中的匹配規則,查詢該統計項的請求日志,利用所述配置文件中的匹配規則進行正則匹配,如果匹配,則加I。這樣,就可以將某一統計項之前的人工統計數據集成到本發明的系統的相應統計項的統計結果中。
[0066]可選地,后端服務器130還可以包括定時器1350。定時器1350適于定時觸發統計裝置1310啟動統計。通常,對統計項的統計可以設定進行統計的時間間隔,例如,可以設定為按天進行統計,也可以設定為按兩個小時、或者按6個小時等進行統計,也可以設定成實時進行統計。對于設定為定時啟動的情形,由定時器1350定時觸發統計裝置1310進行統計。例如,可以設定每天下午3點開始進行統計,那么,定時器1350每天下午3點就會觸發統計裝置1310開始運行,讀取配置文件,根據所述配置文件中的打點地址,掃描所述請求日志,獲得對所述統計項的到訪信息的統計結果。
[0067]可選地,后端服務器130還可以包括統計期限監控裝置1320。統計期限監控裝置1320適于根據所述配置文件中包含的對所述統計項的統計時間段,來告知所述統計裝置是否進行統計。
[0068]對一些項目的統計,有的只需統計一個月即可,有的可能需要統計的時間長一些,但是統計時間長的,也不能無限期,因為每個統計項的統計結果都會產生大量數據。為此產品人員在錄入統計項信息時,可以選擇統計時間段。如果選擇的統計時間段到期,產品人員可以手動進行續期。這樣,使得本系統對各統計項的統計的靈活性更大。
[0069]當產品人員在前面的輸入界面中有效期(即統計時間段)一欄中選擇了某一時間段,則統計期限監控裝置1320會根據該有效期而計算對該統計項的統計時間,該統計時間自該產品人員添加了該項統計項信息之日起計算。
[0070]統計期限監控裝置1320在確認統計裝置1310對所述統計項進行統計的時間超過了所述統計時間段,則提示此項統計項的統計已經過期,并通知所述統計裝置1310對此項統計項停止統計,產品人員所看到的該統計項的統計框的邊框會呈現紅色,以區別正常的統計狀態,如圖5A所示,系統管理人員看到的統計項目“滑動有驚喜”目前已經超過預定的統計時間段。
[0071]統計期限監控裝置1320在對所述統計項進行統計的時間到達所述統計時間段之前的預定天數,提醒對所述統計項的統計即將到期。例如,對生活小幫手的統計時間為3個月,則在到期前7天,每天發郵件或短信給錄入該統計項信息的產品人員或者相關人員,提醒該統計項即將到期,是否需要延長統計時間(即續期),另外,顯示給產品人員的該統計項的統計框的邊框會呈現不同于正常統計狀態的顏色,如紅色。
[0072]另外,在統計期限監控裝置1320對所述統計項的統計時間到期或者超過所設定的統計時間段時,用戶可以通過手動設置進行續期,即在“權限管理”界面(如圖5B所示)中選擇“自定義配置”,則進入一個界面,如果已經過期,則會在界面中顯示出一個“續期”的按鈕(如圖5C所示),用戶點擊該“續期”按鈕,可以選擇統計時間段。在用戶重新設定了統計時間段后,統計期限監控裝置1320根據新的配置文件中的統計時間段監控對所述統計項的統計時間。
[0073]可選地,后端服務器130還可以包括垃圾清理裝置1330。垃圾清理裝置1330適于在統計裝置1310獲得統計結果之后,將對所述請求日志進行掃描、分析、和統計過程中產生的日志刪除。
[0074]在統計裝置1310對請求日志進行搜索、分析、和統計的過程中,容易產生中間層數據垃圾等(例如map和reduce過程中產生的垃圾)。在分析完之后,如果不及時將產生的垃圾清理掉,就會導致磁盤的使用空間膨脹,以后的請求日志就不能再存儲。因此,為了保證磁盤空間的合理利用以及系統的正常運行,垃圾清理裝置1330會將HADOOP集群運行過程中的垃圾及時進行清理。
[0075]可選地,后端服務器130還可以包括預警裝置1340。預警裝置1340適于對本發明的整個系統運行過程中出現的異常情況以及運行狀態進行預警。由于統計裝置1310進行統計時是在后端服務器130中運行的,運行過程中是否出錯,運行到哪一步,運行的結果怎樣,都無法確定,另外,程序、請求日志異步傳輸等都可能出問題。因此需要預警裝置1340對整個運行過程進行監控,對每一步的情況進行詳細記錄,如果出現異常,異常產生的原因是什么(例如網絡、機房故障(機器死機、重啟)、磁盤空間滿了等)進行記錄并及時通過短信或郵件的方式發送給系統的管理人員,當對各統計項統計分析完畢時,也通過短信或郵件的方式發送給系統的管理人員,從而讓管理人員知道整個系統的運行狀態。例如,預警裝置1340主要監控如下幾個過程:第一,所有前端服務器向HDFS的日志異步傳輸過程;第二,MAP和reduce分析過程;第三,把將統計裝置分析好的結果同步到后臺服務器的過程。
[0076]另外,預警裝置1340還可以根據請求日志來監控前端服務器是否處于正常工作狀態。由于在每條請求日志的前面都有一個字符串,該字符串包含產生該請求日志的主機名,所以通過請求日志可以監控前端服務器是否處于正常工作狀態。具體地,預警裝置1340通過調用一個API接口,由API接口返回一組預設的前端服務器的主機列表(例如JSON格式)。另外,預警裝置1340通過查找HDFS中前一個小時(如果請求日志是每隔I小時異步傳輸至HDFS的情況下)里所有請求日志中的主機名,獲取前端服務器的主機列表。將前面API接口返回的預設主機列表與所獲得的前端服務器的主機列表做差集,如果存在沒有傳送請求日志過來的前端服務器,則說明該前端服務器有問題,預警裝置1340會啟動短信發送程序,發送到開發人員和服務器維護人員的手機里,從而能夠讓開發人員和服務器維護人員及時得知哪些服務器出現問題,并能夠得到及時地處理。這樣,一方面,可以保證后臺統計的打點數據的準確性,另一方面可以了解各前端服務器的運行狀況。
[0077]上面所述的主要是關于利用請求日志來監控各前端服務器的運行狀況的情形。實際上,在整個系統運行過程中,會產生很多日志,例如對產品人員的操作、后臺管理人員的操作、應用程序的運行、系統程序的運行等,都可以進行日志記錄。通過這些日志可以知道關于整個系統的幾乎所有的信息,比如,過去對系統做了什么樣的修改,是誰對系統做的修改等等,都可以記錄下來。再比如,通過對后臺管理人員的每一步操作都記錄一個詳細日志,可以查看其所做的操作的歷史,例如某年某月某日對某一產品做了怎樣的修改,都可以查到,這樣,可以避免因時間流逝而忘記之前所做的操作。
[0078]另外,在進程分析程序時,每分析一個,都可以輸出一個日志,這樣,當以后程序出現問題時,方便排查問題。
[0079]另外,通過對程序的運行過程進行日志記錄,由于知道每一程序在哪一步花了多長時間,這在進行程序優化時可以作為參考。
[0080]后臺服務器110還可以包括展現裝置1140。展現裝置1140適于展現所述統計裝置1310所得到的對所述統計項的到訪信息的統計結果。例如,圖5E給出了利用本發明所得到的對于統計項目“火車俠”的統計結果的表格,可以讓后臺產品人員方便地看到統計結果。其中示出了采用本發明對“火車俠”這一應用的“首頁”的PV和UV、利用本應用最后“購票成功”的PV和UV、以及利用本應用“無帳號購買”的PV和UV分別在2013年12月13日至2013年12月22日進行統計后所得到的統計結果。
[0081]可選地,后臺服務器110還可以包括訪問權限設置裝置1150。訪問權限設置裝置1150適于設置訪問對所述統計項的到訪信息的統計量的權限。該訪問權限設置裝置由產品人員根據需要而設置訪問對所述統計項的到訪信息的統計結果的人的權限。現有技術中,通常由系統的管理人員為每個想查看統計結果的人分別開通權限,這在統計項目非常多的情況下,系統的管理人員的工作量非常大。為此,本發明將權限管理交給統計項目創建人自己管理。
[0082]具體地,在統計項目創建人(例如產品人員)在“管理”菜單下選擇“權限管理”(如圖5B所示),會出現一個框(如圖所示),統計項目創建人將每個可以查看的人員添加進去,點回車就可以為這些人員開通查看權限。通常,被添加的人員不具有統計項目創建人那么多權限,只是可以查看,但不可以進行修改。
[0083]當該統計項目的統計超過配置文件中的統計時間段時,提醒該統計項目過期的郵件只發給統計項目創建人,不發給其它的查看人。[0084]可選地,后臺服務器110還可以包括第二存儲裝置1130。第二存儲裝置1130適于存儲對所述統計項的到訪信息的統計結果。
[0085]本發明還公開一種網絡中到訪信息收集方法,圖6示出了本發明的網絡中到訪信息收集方法的流程圖。
[0086]如圖6所示,在步驟S610,接收用戶輸入的統計項信息,并根據用戶輸入的統計項信息生成對所述統計項進行統計的指定形式的打點地址及配置文件。所述配置文件包含對所述統計項進行統計的指定形式的打點地址和統計規則。
[0087]所述統計項信息,是指關于某一要統計的項目的一個或多個統計項的相關信息。所述要統計的項目可以是一個應用,可以是一個應用的某一項功能,也可以是某個網頁或者某個網頁中的某一欄目等等。所述統計項信息例如可以包括:項目的名稱、統計項名稱、以及統計規則等。其中,所述統計規則包括統計項的頁訪問量(PV,即page view)、統計項的用戶訪問量(UV,即user view)、用戶的MID、用戶的IP地址、統計項的排名中的一個或多個。其中UV可以基于用戶的MID或用戶的IP地址來統計。
[0088]例如,用戶通過圖2A所示的輸入界面輸入統計項信息。其中包括指標名稱(對應著項目的名稱,這里是應用的名稱)、報表標題(對應著統計項名稱,即要統計的對象)、和統計功能(對應著統計規則,這里示出了 PV和UV兩項,用戶可以根據自己要統計的數據而進行選擇)。
[0089]圖2A示出的是關于一個項目的統計項信息的輸入界面,即單項統計的輸入界面。實際上在輸入界面中還可以輸入多個項目的統計項信息或者輸入一個項目的多個統計項信息。如圖2B所示,其示出了用戶輸入一個統計項目的多個統計項的統計項信息的輸入界面,這樣可以對一個統計項目的多個統計項同時進行統計。
[0090]用戶在輸入統計項信息后,可以自動生成相應統計項的打點地址(即到訪信息統計地址)。具體地,產品人員在輸入完某一統計項目的統計項信息時,將打點地址一欄留空,這樣,在點擊輸入界面中的“新增”按鈕后,就會在打點地址一欄中生成相應的打點地址,同時還生成該統計項的配置文件。該打點地址包含產品人員輸入的指標名稱、報表標題等信息。所生成的打點地址具有預先指定的地址形式,例如可以是圖片形式的地址,象.GIF、.JPEG、.PNG等形式的地址,也可以是.HTML形式的地址。對于靜態圖片形式的打點地址,解析速度快,所以每秒鐘解析的靜態圖片數量比解析動態地址要多得多。例如對于動態地址,每秒鐘解析3000個,但對于靜態圖片,每秒鐘可以解析I萬個。
[0091]另外,可選地,所述打點地址也可以手動輸入。產品人員在輸入完某一統計項目的統計項信息時,在打點地址一欄中手動輸入打點地址,然后再點擊輸入界面中的“新增”按鈕,會生成該統計項的配置文件,但這時打點地址是產品人員手動輸入的打點地址。
[0092]另外,如果在輸入完某一個項目的一個或多個統計項的統計項信息并且生成了打點地址之后,想再增加該項目的統計項時,可以點擊圖2C所示界面中的“追加統計項”按鈕。如圖2C所示,之前已經輸入了針對統計項目“火車俠”的“首頁”、“購票成功”、“無賬號購買”三個統計項的信息并生成了相應的打點地址,如果再增加關于統計項目“火車俠”的其它統計項時,則點擊界面中的“追加統計項”按鈕,即可出現一套新的空白的統計項信息輸入欄,即指標名稱、報表標題、統計功能、打點地址等,以供用戶輸入新的統計項信息。
[0093]可選地,對于每個項目的統計項的個數,可以進行限定,例如可以設置每個項目的統計項個數最多為50項,當產品人員輸入超過50項的統計項時,系統會提示,統計項個數已經達到限制數,不能再增加。這時,如果產品人員想要增加更多的統計項,可以向管理人員申請增加,由管理人員為該產品人員開通更多的統計項數目。圖3示出了系統管理人員看到的各項目的統計相關信息,如圖3所示,對于統計項目“滑動有驚喜”,其中有12個項統計項,對于統計項目“搶車票”有8項統計項。但是系統可以設定,對于每個統計項目,所統計的統計項不能超過50項,當然也可設置對于每個統計項目的統計項數目不能超過其它的數據,例如60項或者30項等。
[0094]接下來,在步驟S620,將所述配置文件傳輸至后端服務器中的分布式數據處理軟件框架,以及將所述打點地址傳輸至前端服務器中。這里的后端服務器的分布式數據處理軟件框架可以采用HADOOP來實現對統計項進行統計。HADOOP包括HADOOP分布式文件系統和HADOOP集群,其中HADOOP集群包含多臺服務器,HADOOP主程序存儲于主服務器中。每個統計項的配置文件存放在HADOOP分布式文件系統(即HDFS)中。在步驟S610中生成的打點地址傳送至前端服務器中,具體地,是傳送至用于打點統計的前端服務器中,當用于打點統計的前端服務器120具有多臺時,打點地址要傳送至每臺用于打點統計的前端服務器中。當打點地址采用圖片形式gif時,會對應產生很多圖片。所述配置文件和打點地址的傳送也可以采用自動推送的形式分別推送至后端服務器和前端服務器。
[0095]當要傳輸的打點地址很多時,這個傳輸過程比較耗網絡10(即網絡硬件,包括本地網卡、網關、路由器等),尤其當網絡不流暢的時候,這個傳輸過程會變得很慢。為此,可以采用異步傳輸方式加上失敗重連機制(即重新推送)來傳輸這些打點地址。例如,事先限定每個打點地址的自動推送次數,在超過限定的自動推送次數之后仍未推送成功時,則再重新進行推送,推送次數與之前設定的自動推送次數相同。具體地,當推送失敗時,產品人員重新點擊輸入頁面中的“保存”按鈕即可重新觸發重新推送,這可以防止有時出現斷網等情況時導致部分數據未能成功推送的問題。
[0096]另外,采用異步推送的方式,可以將打點地址分批進行傳送,使得前端服務器很快響應,而不必等待。如果所有打點地址的推送都同時推送,由于推送都是要花時間的,例如I分鐘、30秒等,這樣前端服務器、產品人員、或者產品的使用人員就需要等待。而通過異步推送的方式,可以避免網頁出現一堆空白或錯誤。
[0097]另外,配置文件向后端服務器傳送時,也可以如前面所述采用異步推送的方式進行推送。
[0098]接下來,在步驟S630,在前端服務器中,根據用戶對所述統計項的訪問,啟動對所述統計項的打點地址的訪問請求,產生請求日志,并將該請求日志傳輸至后端服務器中的分布式數據處理軟件框架中。當分布式數據處理軟件框架由HADOOP來實現時,則該請求日志傳輸至HADOOP分布式文件系統中。
[0099]前端服務器120可以有很多臺,部分前端服務器120存儲一些項目(例如應用、網頁等),接收用戶對這些項目的訪問,并根據用戶對項目的訪問請求而產生相應的請求日志,這部分請求日志并非本發明所關注的;還有部分前端服務器120用于接收后臺產品人員(即本發明提及的用戶)從后臺服務器錄入統計需求后產生的打點地址(例如圖片等),且根據用戶對某一項目的統計項的訪問而啟動或觸發對該統計項的打點地址的請求而產生相應的請求日志(后面所提及的請求日志皆是這個請求日志),這里,啟動或觸發可以是通過用戶點擊、或者通過用戶訪問網頁時輸入的回車鍵等來實現。當后臺服務器向前端服務器傳輸打點地址時,所有的前端服務器都會接收到所述打點地址。
[0100]另外,為了防止該打點地址被地區運營商緩存而影響打點的統計結果,在啟動或觸發打點地址的請求時,在打點地址后可以加一個隨機數,該包含隨機數的打點地址會被寫入到請求日志中。
[0101]所述請求日志通過異步傳輸的方式傳輸至后端服務器中的HDFS中,其在前端服務器中可以保存一段時間,例如3天,以防止其未被傳輸至HDFS中。例如可以通過facebookscribe開源程序(即,分布式日志搜集系統)進行異步傳輸。這樣,可以將請求日志綜合地存儲在一臺機器上。所述異步傳輸可以按小時進行目錄的歸檔,也可以按其它的時間段進行目錄的歸檔。特別說明的是,當按小時進行異步傳輸時,當前看到的請求日志會比當前的請求日志晚一個小時。
[0102]接下來,在步驟S640,讀取分布式數據處理軟件框架中的配置文件,根據所述配置文件中的指定形式的打點地址,掃描分布式數據處理軟件框架中的所述請求日志,獲得對所述統計項的到訪信息的統計結果。
[0103]當分布式數據處理軟件框架采用HADOOP來實現時,由于配置文件及請求日志存儲在HDFS中,所以HADOOP主程序(其位于HADOOP集群中的主服務器中)會讀取HADOOP分布式文件系統中的配置文件(該配置文件是從后臺服務器傳送至HDFS中的),根據所述配置文件中的指定形式的打點地址,掃描HDFS中的所述請求日志中的打點地址,如果二者一致,則對該統計項的統計結果加I。
[0104]具體地,在利用HADOOP進行統計時,在MAP過程中,提取指定請求日志,例如,會呈現如下的結果:
[0105]pv:http://test.cn/1.gif I
[0106]uv:http://test.cn/1.gif 127.0.0.1
[0107]pv:http://test.cn/1.gif I
[0108]uv:http://test.cn/1.gif 111.111.111.1ll
[0109]其中,第I項和第2項是IP地址為127.0.0.1的用戶訪問打點地址http://test, cn/1.Rifl的請求日志提取相關信息而得到的結果;第3項與第4項是IP地址為111.111.111.111的用戶訪問打點地址http://test, cn/1.RifI的請求日志提取相關信息而得到的結果。
[0110]然后,在reduce過程中,對MAP過程得到的結果進行累加、以及根據IP地址進行消重,獲得最終的對統計項的PV和UV的統計結果。
[0111]另外,還可以基于配置文件和請求日志還可以對獲得其它統計規則的統計結果,例如可以獲得某一應用的TOP排名的統計結果等。
[0112]在HDFS中,每隔預定時間從散列于不同的前端服務器上傳送來的請求日志,例如,可以每隔I小時從所有前端服務器異步傳輸過來的請求日志。這些請求日志在HDFS中可以按照年月日分別存儲于某 一指定日錄的不同文件夾下,例如:
[0113]2013年10月10日接收到的請求日志存在文件夾“2013-0CT0BER_10th log”中,當按小時進行異步傳輸時,該文件夾下會包含如下文件:
[0114]01.log---存儲傳送過來的O點至I點產生的請求日志;[0115]02.log存儲傳送過來的I點至2點產生的請求日志;
[0116]03.log存儲傳送過來的2點至3點產生的請求日志;
[0117]以此類推,直至24.log—存儲傳送過來的23點至24點產生的請求日志。
[0118]在步驟S604中,可以按小時進行統計,也可以按天進行統計,這在后臺人員錄入需求時,在統計項信息的輸入界面中可以通過某一選項而進行選擇,目前圖2A-2C中并未示出該選項,默認設置為按天進行統計。這里,并不限定是按天或者是按小時進行統計,可以根據需要按半天或者幾個小時或者幾天、一星期等等進行統計。
[0119]通過Hadoop集群可以高效地實現對大量請求日志的分析。但是,一方面,HADOOP集群有可能同時被好多人使用,如果HADOOP集群中的所有服務器都被占用,則會出錯。另一方面,HADOOP在運行時,會耗掉本機的內存。如果本機內存已經超標的話,會報錯。因此,HADOOP集群可以根據設定的總的統計時間以及對每個統計項的統計時間而并行運行對各統計項的分析、統計,即并行啟動讀取多個配置文件、掃描所述請求日志,獲得對多個統計項的到訪信息的統計結果。例如,設定的對所有統計項的統計時間為一小時,而其中的各統計項的運行時間分別為3分鐘等,這樣,當HADOOP集群調用其中數臺機器對第一批統計項分析3分鐘時,無論對第一批統計項的統計是否獲得統計結果,都會自動地并發啟動對第二批統計項的分析統計,以此類推,調用數臺機器對第N批統計項進行分析統計,直到對所有統計項在一個小時內分析統計完畢。這里,N為自然數。其中第一、第二批統計項、…第N批統計項可以分別包括一個或多個統計項。
[0120]上面所進行的打點統計,打點地址都位于同一個域名的同一個目錄下。通常每個域名都有其自己的日 志格式。日志格式的配置是在前端服務器上進行的,由Apache或者Nginx根據客戶端請求向請求日志寫入請求數據、并按照預定格式來進行配置而生成。在本發明的系統開發出來之前,都是采用人工統計的方式。在以前的人工統計的情形下,針對被統計的項目,請求日志的生成沒有統一的格式,而且在HDFS中存放在不同的目錄下,例如被統計的項目“收藏夾”的請求日志從前端服務器人工地傳輸至HDFS中的目錄“fav”下,被統計的項目“登錄管家”的請求日志從前端服務器人工地傳輸至HDFS中的目錄“login”下。
[0121]在本發明的系統開發出來之后,需要將以前的人工統計集成到本系統的自助統計中。為此,將對應不同項目的請求日志自動推送至HDFS中對應的目錄下,這時,不同項目的請求日志可能在不同的域名下生成,因此請求日志的格式不一樣。
[0122]為了方便將人工統計集成到本系統的自助統計的統計結果中,本系統采用圖4A所示的輸入界面,在該界面的“打點分類”選項中選擇“人工統計”,則會出現圖4B所示的輸入界面,在圖4B所示的輸入界面中會顯示“匹配規則”的輸入欄,本系統的開發人員在“匹配規則” 一欄中輸入相應的正則匹配規則。在選擇“新增”后,生成相應的配置文件。該配置文件被傳送至HDFS中。
[0123]當想要獲取人工統計的統計結果時,讀取人工統計的相應統計項的配置文件,根據該配置文件中的匹配規則,查詢該統計項的請求日志,利用所述配置文件中的匹配規則進行正則匹配,如果匹配,則加I。這樣,就可以將某一統計項之前的人工統計數據集成到本發明的系統的相應統計項的統計結果中。
[0124]可選地,在步驟S610中,在圖2A、圖2B、圖2C所示的輸入界面中輸入統計項信息時,還可以選擇對該統計項進行統計的統計時間段,例如,輸入框“有效期至”中選擇統計時間段,例如3個月、半年、或者I年等。
[0125]可選地,當產品人員在輸入統計項信息時選擇了統計時間段時,該配置文件還包括統計時間段。相應地,在本發明的方法600可以包括步驟:在到達用戶選擇的所述統計時間段之前的預定天數,提醒對所述統計項的統計即將到期。
[0126]對一些項目的統計,有的只需統計一個月即可,有的可能需要統計的時間長一些,但是統計時間長的,也不能無限期,因為每個統計項的統計結果都會產生大量數據。為此產品人員在圖2A-2C所示的輸入界面中錄入統計項信息時,可以選擇統計時間段。如果選擇的統計時間段到期,產品人員可以手動進行續期。這樣,使得本系統對各統計項的統計的靈活性更大。
[0127]當后臺產品人員在圖2A-2C所示的輸入界面中有效期(即統計時間段)一欄中選擇了某一時間段,則根據該有效期而計算對該統計項的統計時間,該統計時間自該產品人員添加了該項統計項信息之日起計算。
[0128]在對某一統計項進行統計的時間超過了所述統計時間段,則提示該項目的后臺產品人員此項統計項的統計已經過期,并對該統計項停止統計,這時后臺產品人員和系統管理人員所看到的該統計項的統計框的邊框會呈現紅色,以區別正常的統計狀態。如圖5A所示,統計項目“滑動有驚喜”目前已經超過預定的統計時間段。
[0129]在對所述統計項進行統計的時間到達所述統計時間段之前的預定天數,提醒對所述統計項的統計即將到期。例如,對生活小幫手的統計時間為3個月,則在到期前7天,每天發郵件或短信給錄入該統計項信息的后臺產品人員或者相關人員,提醒該統計項即將到期,是否需要延長統計時間(即續期),另外,顯示給產品人員的該統計項的統計框的邊框會呈現不同于正常統計狀態的顏色,例如紅色。
[0130]另外,在對所述統計項的統計時間到期或者超過所設定的統計時間段時,用戶可以通過手動設置進行續期,即在圖5B所示的“權限管理”界面中選擇“自定義配置”,則進入一個界面,如果已經過期,則會在界面中顯示出一個“續期”的按鈕(如圖5C所示),用戶點擊該“續期”按鈕,可以選擇統計時間段。在用戶重新設定了統計時間段后,則可以根據新的配置文件中的統計時間段監控對所述統計項的統計時間。
[0131]另外,在本發明的方法600中,在步驟S640之后還可以包括步驟S650:在利用分布式數據處理軟件框架獲得統計結果之后,將分布式數據處理軟件框架在對所述請求日志進行掃描、分析、和統計過程中產生的日志刪除。具體地,當分布式數據處理軟件框架采用HADOOP來實現時,在HADOOP對請求日志進行搜索、分析、和統計的過程中,容易產生中間層數據垃圾等(例如map和reduce過程中產生的垃圾)。在分析完之后,如果不及時將產生的垃圾清理掉,就會導致磁盤的使用空間膨脹,以后的請求日志就不能再存儲。因此,為了保證磁盤空間的合理利用以及系統的正常運行,需將HADOOP集群運行過程中的垃圾及時進行清理。
[0132]另外,在本發明的方法600中,還可以包括步驟S660:對本方法執行過程中出現的異常情況和運行狀況通過短信進行預警。該步驟可以設置于任何步驟之后或者設置于每個步驟之后。
[0133]HADOOP在進行統計時,運行過程中是否出錯,運行到哪一步,運行的結果怎樣,都無法確定,另外,程序、請求日志異步傳輸等都可能出問題。因此在本發明中,通過對整個運行過程進行監控,對每一步的情況進行詳細記錄,如果出現異常,異常產生的原因是什么(例如網絡、機房故障(機器死機、重啟)、磁盤空間滿了等)進行記錄并及時通過短信或郵件的方式發送給系統的管理人員,當對各統計項統計分析完畢時,也通過短信或郵件的方式發送給系統的管理人員,從而讓管理人員知道整個系統的運行狀態。例如,主要監控如下幾個過程:第一,所有前端服務器向HDFS的日志異步傳輸過程;第二,MAP和reduce分析過程;第三,把將統計好的結果同步到后臺服務器的過程等等。
[0134]另外,還可以根據請求日志來監控前端服務器是否處于正常工作狀態。由于在每條請求日志的前面都有一個字符串,該字符串包含產生該請求日志的主機名,所以通過請求日志可以監控前端服務器是否處于正常工作狀態。具體地,先通過調用一個API接口,由API接口返回一組預設的前端服務器的主機列表(例如JSON格式)。然后通過查找HDFS中前一個小時(如果請求日志是每隔I小時異步傳輸至HDFS的情況下)里所有請求日志中的主機名,獲取前端服務器的主機列表。將前面API接口返回的預設的前端服務器的主機列表與通過分析請求日志而獲得的前端服務器的主機列表做差集,如果存在沒有傳送請求日志過來的前端服務器,則說明該前端服務器有問題,則啟動短信發送程序,發送到開發人員和服務器維護人員的手機里,從而能夠讓開發人員和服務器維護人員及時得知哪些服務器出現問題,并能夠得到及時地處理。這樣,一方面,可以保證后臺統計的打點數據的準確性,另一方面可以了解各前端服務器的運行狀況。
[0135]上面所述的主要是關于利用請求日志來監控各前端服務器的運行狀況的情形。實際上,在整個系統運行過程中,會產生很多日志,例如對產品人員的操作、后臺管理人員的操作、應用程序的運行、系統程序的運行等,都可以進行日志記錄。通過這些日志可以知道關于整個系統的幾乎所有的信息,比如,過去對系統做了什么樣的修改,是誰對系統做的修改等等,都可以記錄下來。再比如,通過對后臺管理人員的每一步操作都記錄一個詳細日志,可以查看其所做的操作的歷史,例如某年某月某日對某一產品做了怎樣的修改,都可以查到,這樣,可以避免因時間流逝而忘記之前所做的操作。
[0136]另外,在進程分析程序時,每分析一個,都可以輸出一個日志,這樣,當以后程序出現問題時,方便排查問題。
[0137]另外,通過對程序的運行過程進行日志記錄,由于知道每一程序在哪一步花了多長時間,這在進行程序優化時可以作為參考。
[0138]另外,在本發明的方法600中,在步驟S640之前,還可以包括步驟S635:通過定時器定時觸發讀取配置文件,啟動步驟S640。通常,對統計項的統計可以設定進行統計的時間間隔,例如,可以設定為按天進行統計,也可以設定為按兩個小時、或者按6個小時等進行統計,也可以設定成實時進行統計。例如,當分布式數據處理軟件框架由HADOOP來實現且按天對統計項進行統計時,可以設定每天下午3點開始進行統計,那么,每天下午3點就會啟動HAD00P,讀取HDFS中的配置文件,根據所述配置文件中的打點地址,掃描HDFS中的所述請求日志,獲得對所述統計項的到訪信息的統計結果。
[0139]另外,在本發明的方法600中,在步驟S640之后,還可以包括步驟S670:將所獲得的對所述統計項的到訪信息統計結果呈現給用戶。圖5E給出了對于統計項目“火車俠”的統計結果,該表格可以展現給后臺產品人員。[0140]可選地,后臺管理人員可以設置后臺人員對所述統計項的到訪信息的統計量的訪問權限。現有技術中,通常由系統的管理人員為每個想查看統計結果的人分別開通權限,這在統計項目非常多的情況下,系統的管理人員的工作量非常大。為此,本發明將權限管理交給后臺管理人員(也可以稱為統計項目創建人)自己管理。
[0141]具體地,在統計項目創建人(例如產品人員)在“管理”菜單下選擇“權限管理”(如圖5B所示),會出現一個框(如圖所示),統計項目創建人將每個可以查看的人員添加進去,點回車就可以為這些人員開通查看權限。通常,被添加的人員不具有統計項目創建人那么多權限,只是可以查看,但不可以進行修改。
[0142]當該統計項目的統計超過配置文件中的統計時間段時,提醒該統計項目過期的郵件只發給統計項目創建人,不發給其它的查看人。
[0143]可選地,將對所述統計項的到訪信息的統計結果存放在后臺服務器中以作備份。
[0144]在上述實施例的描述中,主要以分布式數據處理軟件框架由HADOOP來實現為例進行的描述和解釋說明,但分布式數據處理軟件框架并不限于由HADOOP來實現,也可以由其它具有類似功能的部件或軟件來實現。
[0145]在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發明的內容,并且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
[0146]在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
[0147]類似地,應當理解,為了精簡本公開并幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權利要求書由此明確地并入該【具體實施方式】,其中每個權利要求本身都作為本發明的單獨實施例。
[0148]本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0149]此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0150]本發明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發明實施例的瀏覽器客戶端中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用于執行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0151]應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
[0152]本發明公開了 Al、一種網絡中到訪信息收集系統,其包括后臺服務器、前端服務器、以及后端服務器,
[0153]所述后臺服務器包括:
[0154]輸入裝置,其適于接收用戶輸入的統計項信息,并根據用戶輸入的統計項信息生成對所述統計項進行統計的打點地址及配置文件,該配置文件包含對該統計項進行統計的指定形式的打點地址和統計規則;
[0155]傳輸裝置,其適于將所述配置文件傳輸至所述后端服務器,以及將所述打點地址傳輸至前端服務器;
[0156]所述前端服務器包括:
[0157]接收裝置,其適于經網絡接收所述傳輸裝置傳送的打點地址;
[0158]訪問啟動裝置,其適于根據用戶對所述統計項的訪問,啟動對所述統計項的打點地址的訪問請求,產生請求日志;
[0159]異步裝置,其適于每隔預定時間將所述請求日志異步傳輸至后端服務器;以及
[0160]第一存儲裝置,其適于存儲所述請求日志;
[0161]所述后端服務器包括:
[0162]統計裝置,其接收所述傳輸裝置傳送的所述配置文件以及所述異步裝置傳輸的所述請求日志并存儲,讀取所述配置文件,根據所述配置文件中的打點地址,掃描所述請求日志,獲得對所述統計項的到訪信息的統計結果。
[0163]A2、根據Al所述的系統,其中,所述配置文件還包括:
[0164]用戶選擇的對所述統計項的統計時間段;
[0165]所述后端服務器還包括:
[0166]統計期限監控裝置,其適于根據所述配置文件中包含的對所述統計項的統計時間段,來告知所述統計裝置是否進行統計。
[0167]A3、根據A2所述的系統,其中,
[0168]所述統計期限監控裝置在確認所述統計裝置對所述統計項進行統計的時間超過了所述統計時間段,則提示此項統計項的統計已經過期,并通知所述統計裝置對此項統計項停止統計。
[0169]A4、根據A2或A3所述的系統,其中,
[0170]所述統計期限監控裝置在對所述統計項進行統計的時間到達所述統計時間段之前的預定天數,提醒對所述統計項的統計即將到期。
[0171]A5、根據A1-A4中任何一項所述的系統,其中,
[0172]所述統計裝置由分布式數據處理軟件框架來實現。
[0173]A6、根據A1-A5中任何一項所述的系統,所述后端服務器還包括:
[0174]垃圾清理裝置,其適于在所述統計裝置獲得統計結果之后,將對所述請求日志進行掃描、分析、和統計過程中產生的日志刪除。
[0175]A7、根據A1-A6中任何一項所述的系統,所述后端服務器還包括:
[0176]預警裝置,其適于對所述系統運行過程中出現的異常情況以及運行狀態進行預
m
目O
[0177]AS、根據A7所述的系統,所述預警裝置還適于根據請求日志來監控前端服務器是否處于正常工作狀態。
[0178]A9、根據A1-A8中任何一項所述的系統,所述后端服務器還包括:
[0179]定時器,其適于定時觸發所述統計裝置啟動統計。
[0180]A10、根據A9所述的系統,其中,所述統計裝置根據為每個統計項設定的運行時間而并發啟動讀取多個配置文件、掃描所述請求日志,獲得對多個統計項的到訪信息的統計結果。
[0181]AU、根據Al-AlO中任何一項所述的系統,所述后臺服務器還包括,
[0182]第二存儲裝置,其適于存儲由后端服務器傳送過來的對所述統計項的到訪信息的統計結果。
[0183]A12、根據Al-All中任何一項所述的系統,所述后臺服務器還包括:
[0184]展現裝置,其適于展現所述統計裝置所得到的對所述統計項的到訪信息的統計結
果O
[0185]A13、根據A1-A12中任何一項所述的系統,所述后臺服務器還包括:
[0186]權限設置裝置,其適于設置對所述統計項的到訪信息的統計結果的訪問權限。
[0187]本發明公開了 B1、一種網絡中到訪信息收集方法,包括:
[0188]接收用戶輸入的統計項信息,并根據用戶輸入的統計項信息生成對所述統計項進行統計的指定形式的打點地址及配置文件,該配置文件包含對所述統計項進行統計的指定形式的打點地址和統計規則;
[0189]將所述配置文件傳輸至后端服務器中的分布式數據處理軟件框架,以及將所述打點地址傳輸至前端服務器中;
[0190]在前端服務器中,根據用戶對所述統計項的訪問,啟動對所述統計項的打點地址的訪問請求,產生請求日志,并將該請求日志傳輸至后端服務器中的分布式數據處理軟件框架;
[0191]讀取分布式數據處理軟件框架中的配置文件,根據所述配置文件中的指定形式的打點地址,掃描分布式數據處理軟件框架中的所述請求日志,獲得對所述統計項的到訪信息的統計結果。
[0192]B2、根據BI所述的方法,其中,
[0193]所述統計項信息包括要統計的項目的名稱、統計項名稱、以及統計規則,
[0194]其中,所述統計規則包括統計項的頁訪問量、統計項的用戶訪問量、用戶的MID、用戶的IP地址、統計項的排名中的一個或多個。
[0195]B3、根據BI或B2所述的方法,所述配置文件還包括:
[0196]用戶選擇的對所述統計項的統計時間段。
[0197]B4、根據B3所述的方法,還包括:
[0198]在到達用戶選擇的所述統計時間段之前的預定天數,提醒對所述統計項的統計即將到期。
[0199]B5、根據權利要求B1-B4中任何一項所述的方法,其中,
[0200]所述讀取所述配置文件、根據所述配置文件中的指定形式的打點地址掃描所述請求日志以獲得對所述統計項的到訪信息的統計結果的步驟通過分布式數據處理軟件框架來實現。
[0201]B6、根據B5所述的方法,還包括:
[0202]在利用分布式數據處理軟件框架獲得統計結果之后,將分布式數據處理軟件框架在對所述請求日志進行掃描、分析、和統計過程中產生的日志刪除。
[0203]B7、根據B5或B6所述的方法,還包括:
[0204]對分布式數據處理軟件框架運行過程中出現的異常情況和運行狀況通過短信進
行預警。
[0205]B8、根據B1-B7中任何一項所述的方法,其中,
[0206]所述讀取所述配置文件的步驟由定時器定時觸發。
[0207]B9、根據B8所述的方法,其中,
[0208]所述讀取所述配置文件的步驟包括根據為每個統計項設定的運行時間而并發啟動讀取對應的配置文件。
[0209]B10、根據B1-B9中任何一項所述的方法,還包括:
[0210]將所獲得的對所述統計項的到訪信息統計結果呈現給用戶。
[0211]B11、根據BlO所述的方法,其中,對所述統計結果的查看權限由后臺人員來設定。
【權利要求】
1.一種網絡中到訪信息收集系統,其包括后臺服務器、前端服務器、以及后端服務器, 所述后臺服務器包括: 輸入裝置,其適于接收用戶輸入的統計項信息,并根據用戶輸入的統計項信息生成對所述統計項進行統計的打點地址及配置文件,該配置文件包含對該統計項進行統計的指定形式的打點地址和統計規則; 傳輸裝置,其適于將所述配置文件傳輸至所述后端服務器,以及將所述打點地址傳輸至前端服務器; 所述前端服務器包括: 接收裝置,其適于經網絡接收所述傳輸裝置傳送的打點地址; 訪問啟動裝置,其適于根據用戶對所述統計項的訪問,啟動對所述統計項的打點地址的訪問請求,產生請求日志; 異步裝置,其適于每隔預定時間將所述請求日志異步傳輸至后端服務器;以及 第一存儲裝置,其適于存儲所述請求日志; 所述后端服務器包括: 統計裝置,其接收所述傳輸裝置傳送的所述配置文件以及所述異步裝置傳輸的所述請求日志并存儲,讀取所述配置文件,根據所述配置文件中的打點地址,掃描所述請求日志,獲得對所述統計項的到訪信息的統計結果。
2.根據權利要求1所述的系統,其中,所述配置文件還包括: 用戶選擇的對所述統計項的統計時間段; 所述后端服務器還包括: 統計期限監控裝置,其適于根據所述配置文件中包含的對所述統計項的統計時間段,來告知所述統計裝置是否進行統計。
3.根據權利要求2所述的系統,其中, 所述統計期限監控裝置在確認所述統計裝置對所述統計項進行統計的時間超過了所述統計時間段,則提示此項統計項的統計已經過期,并通知所述統計裝置對此項統計項停止統計。
4.根據權利要求2或3所述的系統,其中, 所述統計期限監控裝置在對所述統計項進行統計的時間到達所述統計時間段之前的預定天數,提醒對所述統計項的統計即將到期。
5.根據權利要求1-4中任何一項所述的系統,所述后端服務器還包括: 垃圾清理裝置,其適于在所述統計裝置獲得統計結果之后,將對所述請求日志進行掃描、分析、和統計過程中產生的日志刪除。
6.—種網絡中到訪信息收集方法,包括: 接收用戶輸入的統計項信息,并根據用戶輸入的統計項信息生成對所述統計項進行統計的指定形式的打點地址及配置文件,該配置文件包含對所述統計項進行統計的指定形式的打點地址和統計規則; 將所述配置文件傳輸至后端服務器中的分布式數據處理軟件框架,以及將所述打點地址傳輸至前端服務器中; 在前端服務器中,根據用戶對所述統計項的訪問,啟動對所述統計項的打點地址的訪問請求,產生請求日志,并將該請求日志傳輸至后端服務器中的分布式數據處理軟件框架; 讀取分布式數據處理軟件框架中的配置文件,根據所述配置文件中的指定形式的打點地址,掃描分布式數據處理軟件框架中的所述請求日志,獲得對所述統計項的到訪信息的統計結果。
7.根據權利要求6所述的方法,其中, 所述統計項信息包括要統計的項目的名稱、統計項名稱、以及統計規則, 其中,所述統計規則包括統計項的頁訪問量、統計項的用戶訪問量、用戶的MID、用戶的IP地址、統計項的排名中的一個或多個。
8.根據權利要求6或7所述的方法,所述配置文件還包括: 用戶選擇的對所述統計項的統計時間段。
9.根據權利要求8所述的方法,還包括: 在到達用戶選擇的所述統計時間段之前的預定天數,提醒對所述統計項的統計即將到期。
10.根據權利要求6-9中任何一項所述的方法,其中, 所述讀取所述配置文件、根據所述配置文件中的指定形式的打點地址掃描所述請求日志以獲得對所述統計項的到訪信息的統計結果的步驟通過分布式數據處理軟件框架來實現。
【文檔編號】H04L29/06GK103905428SQ201410042865
【公開日】2014年7月2日 申請日期:2014年1月28日 優先權日:2014年1月28日
【發明者】范家鵬, 任寰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司