心有多大舞臺(tái)便有多大

          Embrace changes, pursue excellence, share niceness.

          clickstream項(xiàng)目體會(huì)

          clickstream是opensymphony上的一個(gè)開源項(xiàng)目,其目的是用于跟蹤用戶在web服務(wù)器上的瀏覽歷史.通過這個(gè)模塊得到的歷史數(shù)據(jù),可以分析出用戶訪問網(wǎng)站的路徑,瓶頸,熱點(diǎn)連接等,并根據(jù)這些數(shù)據(jù)對(duì)系統(tǒng)功能做出適當(dāng)調(diào)整.

          其設(shè)計(jì)的出發(fā)點(diǎn)是利用servlet的filter,在每次對(duì)servlet的訪問時(shí)就日志.日志的實(shí)現(xiàn)主要是通過在當(dāng)前用戶的session中設(shè)置一個(gè)clickstream的跟蹤對(duì)象.并利用HttpSessionListener來跟蹤session的創(chuàng)建,銷毀事件,從而達(dá)到跟蹤一個(gè)用戶的瀏覽歷史功能.

          雞蛋里挑點(diǎn)骨頭吧!
          1.clickstream只有在用戶訪問servlet時(shí)才能實(shí)現(xiàn)跟蹤的目的.如果網(wǎng)站有很多的靜態(tài)頁(yè)面,那么就無(wú)法通過它來跟蹤了,還是apache的日志好啊!
          2.clickstream在每個(gè)對(duì)servlet的訪問都創(chuàng)建了一個(gè)session,這對(duì)很多不需要session的servlet來說,是不必要的.對(duì)于高并發(fā)訪問的系統(tǒng),這會(huì)增加系統(tǒng)的負(fù)荷,尤其是如果站點(diǎn)是采用集群的話,更會(huì)帶來大量的session復(fù)制的性能問題.我建議才系統(tǒng)剛上線的時(shí)候或者有功能的重要更新的時(shí)候可以利用它來跟蹤用戶,以分析用戶行為,改進(jìn)系統(tǒng).

          posted on 2008-02-21 15:36 pony 閱讀(2297) 評(píng)論(4)  編輯  收藏 所屬分類: linux

          評(píng)論

          # re: clickstream項(xiàng)目體會(huì) 2008-02-22 13:36 pony

          今天在網(wǎng)上偶爾看到了http://www.opentracker.net這個(gè)網(wǎng)站,看了下他提供的功能:
          1.traffic analysis
          summary trend
          hourly trends
          dialy trends
          weekly trends
          monthly trends
          forecast
          bounce rate of visitors
          2.visitors
          online and recent visitors
          first time visitors
          returning visitors
          refered visitors
          visitors by search term
          entering
          exiting
          3.top navigation lists
          most popular pages
          top files & directory paths
          top referrers
          top search terms
          top search engines
          top exit links (3rd party)
          top exit pages
          top entry pages
          4.location data
          countries/ regions/ cities
          companies/ organizations
          ISPs
          DMA-codes (US)
          telephone area codes for U.S.
          ZIP/ postal codes (U.S. & Canada)
          continents
          subcontinents
          5.technical data
          operating system
          browsers
          display colors
          display resolutions
          routers
          domains
          什么時(shí)候有空自己也做一個(gè)類似的項(xiàng)目吧,我好缺米啊
            回復(fù)  更多評(píng)論   

          # re: clickstream項(xiàng)目體會(huì) 2008-02-25 11:49 pony

          今天把a(bǔ)pache的--enable-usertrack安裝了.
          日志格式為:"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{cookie}n"
          從中可以得到:
          1.訪問時(shí)間:%t
          2.訪問內(nèi)容:url
          3.從哪個(gè)頁(yè)面訪問url的:referer
          4.通過什么瀏覽器訪問的:user-agent
          5.是誰(shuí)訪問:cookie
          6.訪問的結(jié)果:會(huì)把http狀態(tài)記錄,如304,404等
          有了這些數(shù)據(jù),上面的需求基本都能實(shí)現(xiàn)了.  回復(fù)  更多評(píng)論   

          # re: clickstream項(xiàng)目體會(huì) 2008-02-25 13:25 pony

          Apache CustomLog的常用日志格式:
          格式字符串 描述
          %% 百分號(hào)(Apache2.0.44或更高的版本)
          %a 遠(yuǎn)端IP地址
          %A 本機(jī)IP地址
          %B 除HTTP頭以外傳送的字節(jié)數(shù)
          %b 以CLF格式顯示的除HTTP頭以外傳送的字節(jié)數(shù),也就是當(dāng)沒有字節(jié)傳送時(shí)顯示'-'而不是0。
          %{Foobar}C 在請(qǐng)求中傳送給服務(wù)端的cookieFoobar的內(nèi)容。
          %D 服務(wù)器處理本請(qǐng)求所用時(shí)間,以微為單位。
          %{FOOBAR}e 環(huán)境變量FOOBAR的值
          %f 文件名
          %h 遠(yuǎn)端主機(jī)
          %H 請(qǐng)求使用的協(xié)議
          %{Foobar}i 發(fā)送到服務(wù)器的請(qǐng)求頭Foobar:的內(nèi)容。
          %l 遠(yuǎn)端登錄名(由identd而來,如果支持的話),除非IdentityCheck設(shè)為"On",否則將得到一個(gè)"-"。
          %m 請(qǐng)求的方法
          %{Foobar}n 來自另一個(gè)模塊的注解Foobar的內(nèi)容。
          %{Foobar}o 應(yīng)答頭Foobar:的內(nèi)容。
          %p 服務(wù)器服務(wù)于該請(qǐng)求的標(biāo)準(zhǔn)端口。
          %P 為本請(qǐng)求提供服務(wù)的子進(jìn)程的PID。
          %{format}P 服務(wù)于該請(qǐng)求的PID或TID(線程ID),format的取值范圍為:pid和tid(2.0.46及以后版本)以及hextid(需要APR1.2.0及以上版本)
          %q 查詢字符串(若存在則由一個(gè)"?"引導(dǎo),否則返回空串)
          %r 請(qǐng)求的第一行
          %s 狀態(tài)。對(duì)于內(nèi)部重定向的請(qǐng)求,這個(gè)狀態(tài)指的是原始請(qǐng)求的狀態(tài),---%>s則指的是最后請(qǐng)求的狀態(tài)。
          %t 時(shí)間,用普通日志時(shí)間格式(標(biāo)準(zhǔn)英語(yǔ)格式)
          %{format}t 時(shí)間,用strftime(3)指定的格式表示的時(shí)間。(默認(rèn)情況下按本地化格式)
          %T 處理完請(qǐng)求所花時(shí)間,以秒為單位。
          %u 遠(yuǎn)程用戶名(根據(jù)驗(yàn)證信息而來;如果返回status(%s)為401,可能是假的)
          %U 請(qǐng)求的URL路徑,不包含查詢字符串。
          %v 對(duì)該請(qǐng)求提供服務(wù)的標(biāo)準(zhǔn)ServerName。
          %V 根據(jù)UseCanonicalName指令設(shè)定的服務(wù)器名稱。
          %X 請(qǐng)求完成時(shí)的連接狀態(tài):X= 連接在應(yīng)答完成前中斷。
          += 應(yīng)答傳送完后繼續(xù)保持連接。
          -= 應(yīng)答傳送完后關(guān)閉連接。

          (在1.3以后的版本中,這個(gè)指令是%c,但這樣就和過去的SSL語(yǔ)法:%{var}c沖突了)

          %I 接收的字節(jié)數(shù),包括請(qǐng)求頭的數(shù)據(jù),并且不能為零。要使用這個(gè)指令你必須啟用mod_logio模塊。
          %O 發(fā)送的字節(jié)數(shù),包括請(qǐng)求頭的數(shù)據(jù),并且不能為零。要使用這個(gè)指令你必須啟用mod_logio模塊。
            回復(fù)  更多評(píng)論   

          # re: clickstream項(xiàng)目體會(huì) 2008-03-20 09:25 pony

          昨天晚上cloudwards跟我說,google的analytics就能實(shí)現(xiàn)這個(gè)clickstream的功能.確實(shí)是,不過,google的東西還是有些缺陷的,例如,第一,它不能跟蹤到一個(gè)用戶,而用了apache的這個(gè)模塊,就可以通過cookie來跟蹤;第二,它不能統(tǒng)計(jì)一個(gè)頁(yè)面上引用的其它資源的調(diào)用,如圖片,而通過apache的日志,這些都可以記錄下來,這些數(shù)據(jù)對(duì)于優(yōu)化網(wǎng)頁(yè)的大小,甚至分布部署都是很有用的;第三,它不能統(tǒng)計(jì)出訪問一個(gè)頁(yè)面需要的時(shí)間,而apache的日志可以記錄接收請(qǐng)求的時(shí)間,返回響應(yīng)的時(shí)間,這對(duì)于分析網(wǎng)站的性能是很重要的數(shù)據(jù);第四,apache的日志還可以記錄每個(gè)請(qǐng)求返回的字節(jié)數(shù).
          所以,我想自己做的這個(gè)工具應(yīng)該還是挺有用的.但我可以去借鑒下google analytics的報(bào)表  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 灵丘县| 阳江市| 岳普湖县| 佛学| 醴陵市| 寿阳县| 洞头县| 宝鸡市| 图木舒克市| 新田县| 开平市| 天等县| 大渡口区| 荣昌县| 浦北县| 泌阳县| 肇州县| 武城县| 元氏县| 玛沁县| 龙川县| 利辛县| 白沙| 南陵县| 若羌县| 任丘市| 云梦县| 陆良县| 白沙| 大宁县| 浦城县| 鄂州市| 威远县| 沽源县| 丰镇市| 海兴县| 临夏县| 科技| 曲沃县| 奉化市| 宜兴市|