四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

StreamInsight 淺入淺出(六)—— Debugger

  對(duì)于 StreamInsight 系統(tǒng),由于對(duì)事件的處理查詢都是異步進(jìn)行的,輸入輸出很難進(jìn)行時(shí)序上的對(duì)應(yīng)監(jiān)測(cè),所以普通的基于代碼的 Debug 和 Watch 顯得不那么有意義。于是微軟隨 StreamInsight 系統(tǒng)提供了一個(gè)好用的圖形化調(diào)試工具 StreamInsight Event Flow Debugger。

image

  這一工具的主要特點(diǎn)在于:

  1. 圖形化界面,足夠直觀。有點(diǎn)類似 SQL Server 的查詢計(jì)劃界面,將一個(gè)復(fù)雜的查詢拆分成多個(gè)基本查詢,并以列表形式展現(xiàn)每個(gè)查詢中事件的狀態(tài)與取值。
  2. 支持跟蹤、回溯,可以查看一個(gè)事件的初始狀態(tài)以及演變過(guò)程。
  3. 支持即時(shí)調(diào)試,也支持日志調(diào)試。日志調(diào)試能更好的研究一個(gè)完整的查詢的過(guò)程。

  另,關(guān)于事件流調(diào)試和常見(jiàn)的控制流調(diào)試的區(qū)別,參見(jiàn) MSDN : http://techNET.microsoft.com/zh-cn/library/ff518532.ASPx

  啟用調(diào)試

  調(diào)試分為實(shí)時(shí)跟蹤和日志跟蹤兩種模式。其中實(shí)時(shí)跟蹤需要運(yùn)行 StreamInsight 的客戶端通過(guò) Server.Connect 方式連接到 StreamInsight 服務(wù)器(需要運(yùn)行賬戶屬于 StreamInsight 用戶組的成員),同時(shí)將 Debugger 也連接到服務(wù)器上。具體連接方式參見(jiàn) MSDN http://techNET.microsoft.com/zh-cn/library/ff518532.ASPx。使用這種方式的好處是可以實(shí)時(shí)跟蹤最新的數(shù)據(jù),對(duì)于長(zhǎng)時(shí)間連續(xù)性的應(yīng)用來(lái)說(shuō)比較方便,并且能同時(shí)監(jiān)控服務(wù)器上的資源情況。而缺點(diǎn)是一方面需要調(diào)試器和程序都連到 StreamInsight 服務(wù)器上,另一方面由于每次調(diào)試的都是“開(kāi)始記錄”到“停止”這一段時(shí)間的數(shù)據(jù),不一定能跟蹤到事件的完整流程。

  另一種方式就是日志式的跟蹤:

  1. trace.cmd start <文件名>.etl 創(chuàng)建一個(gè)跟蹤文件。
  2. 執(zhí)行 StreamInsight 程序進(jìn)行查詢,直到運(yùn)行足夠長(zhǎng)時(shí)間。
  3. trace.cmd stop <文件名>.etl 結(jié)束跟蹤。

Ff518532.f10b2317-ebad-418d-96d7-61fc2045a939(zh-cn,SQL.105)

  將生成的跟蹤文件加載到調(diào)試器中,同樣展開(kāi)了和實(shí)時(shí)跟蹤類似的圖像界面。這里會(huì)看到對(duì)象資源管理器中的對(duì)象并不包含服務(wù)器相關(guān)的對(duì)象。相對(duì)于實(shí)時(shí)跟蹤,使用日志式跟蹤的好處是不需要連接到服務(wù)器,而且比較方便跟蹤事件的完整流程,同時(shí)因?yàn)榭梢约虞d多個(gè)日志文件,也方便進(jìn)行對(duì)比。

  跟蹤事件

  這里還是以官方提供的 StreamInsight 的 樣例 TrafficJoinQuery 為例。

image

  這是未展開(kāi)的流程圖,可以清晰的看到整個(gè)查詢的步驟。其中由于有兩個(gè) Input (sensorInput,locationInput),所以有兩個(gè)起點(diǎn),并在 Join 處連接在一起,最終到達(dá)輸出端 OutputAdapter。

展開(kāi)其中的一項(xiàng),會(huì)看到所有的事件內(nèi)容,包括事件的類型(Insert,CTI),以及事件的起止時(shí)間還有事件負(fù)載的各個(gè)字段,除此之外,還有事件的排隊(duì)時(shí)間、延遲等信息。注意這里的排隊(duì)事件是程序執(zhí)行時(shí)的即時(shí)時(shí)間,和事件的起止時(shí)間沒(méi)有直接的關(guān)系:

image

  選中其中的任意一條時(shí)間,可以進(jìn)行兩個(gè)方向的跟蹤:尋根(Root Cause Analysis),演化(Event Propagation Analysis)。前者是對(duì)中間階段的事件,找出其之前的事件源,而后者則是對(duì)較前階段的事件,跟蹤其之后的所有演變。此外,重播按鈕(Start Replay)可以像過(guò)程調(diào)試中的單步模式一樣從頭開(kāi)始一步一步的演變事件流的變化,也可以直接前進(jìn)后退到下一個(gè)斷點(diǎn)。

imageimage

  另外,在每個(gè)模塊中都有一個(gè)過(guò)濾區(qū)域,可以通過(guò)一些表達(dá)式對(duì)展現(xiàn)的事件進(jìn)行過(guò)濾。比如 EndTime > "2009-6-25 08:10" && EventKind == "Cti" 表示過(guò)濾所有結(jié)束時(shí)間在 2009-6-25 8:10 之后的 CTI 事件。這里注意要對(duì)非 Int 類型的值添加雙引號(hào)。

  利用調(diào)試器調(diào)試事件流

  利用調(diào)試器調(diào)試事件流,其實(shí)和控制流調(diào)試有些類似,都是先跟蹤定位到與預(yù)期不符的數(shù)據(jù)處,然后根據(jù)上下文排查原因。但事件流的調(diào)試比控制流調(diào)試麻煩的一點(diǎn)是,由于調(diào)試工具和編譯的程序是分離的,所以即使找到了異常的事件數(shù)據(jù),也需要花費(fèi)一些功夫,進(jìn)行多遍的推演才能找到導(dǎo)致這些異常的原因。這其中,經(jīng)驗(yàn)是最重要的。

  而其實(shí)筆者本人也暫時(shí)沒(méi)有總結(jié)出比較靠譜的經(jīng)驗(yàn),只能簡(jiǎn)單提供以下的一些小Tips,希望能讓大家少走些彎路。

  1. CTI 很重要,所有在最后一個(gè) CTI 的 StartTime 之后結(jié)束的事件都不會(huì)進(jìn)入到最后的計(jì)算結(jié)果中,也就是被丟棄了。
  2. 聚合分組會(huì)修改事件的開(kāi)始時(shí)間,將一組內(nèi)以及一個(gè)時(shí)間窗口內(nèi)的事件的起止時(shí)間進(jìn)行對(duì)齊。 而且每組的每個(gè)窗口后會(huì)跟一個(gè) CTI 。這里的 CTI 其實(shí)和最早的插入事件時(shí)的 CTI 已經(jīng)沒(méi)有關(guān)聯(lián)了。
  3. 以后如果再有體會(huì)會(huì)加到這里~

  這樣,關(guān)于 StreamInsight 的一些入門(mén)知識(shí)就介紹到這里。可以看到很多是概念上的介紹和操作上的指導(dǎo),真正關(guān)系到事件流的、算法的設(shè)計(jì)的部分很少很少。還是那句話,需要多嘗試,多實(shí)際運(yùn)用,才能找到感覺(jué)。

NET技術(shù)StreamInsight 淺入淺出(六)—— Debugger,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 唐人街探案四免费观看| 天津电视台体育频道节目单| 《最后的凶手》免费观看| 数码宝贝第三部| 美女mm| 香港毛片视频| 减肥可以吃桃子吗?| 林正英电影大全| 王音棋的个人简历| 项目负责人任命书| 在线观看亚洲免费视频| 中国人数| 我的一级兄弟| 美丽的坏女人中文字幕| 南北腿王| 人总要有点爱好,生活才能继续 | 梦断楼兰电影| 粤韵风华| 河南卫视直播| 河东狮吼 电视剧| 周星驰的全部电影免费观看| 93夜之女| 好妻子电视剧54集剧情| 日本电影高校教师| 尤克里里谱| 陈诗雅韩国| 来生缘吉他谱c调| 妥协电影在线观看完整版中文| 泰坦尼克号床戏| 三太太电影| 会说话的金杰| 娄际成| 老司机免费在线观看| 折叠画| 命运的逆转| 猎兽神兵免费全集在线观看高清版| 在线观看xxxx| 与妻书 电影| 美女自愿戴镣铐调教室| 春闺梦里人电影在线观看| 崔维斯·费米尔|