使用動態可視化控制應用跟蹤的制作方法
【專利說明】使用動態可視化控制應用跟蹤
[0001]相關申請的交叉引用
[0002]本申請要求于2013年2月I日提交的題為“Controlling Applicat1n Tracingusing Dynamic Visualizat1n(使用動態可視化控制應用跟蹤)”的美國專利申請序列號13/757,625的優先權和權益,該申請的整體內容通過援引被明確地納入于此。
[0003]背景
[0004]消息傳遞計算環境通過在執行期間使獨立的處理元素(諸如線程或其他計算組件)將消息從一個元素傳遞到另一元素來操作。在各組件間傳遞的消息可包含可由接收者消費的數據和其他信息。
【發明內容】
[0005]用于跟蹤器(tracer)的可視化系統可包括處理流水線,該處理流水線可生成跟蹤數據、預處理該數據、以及可視化該數據。預處理步驟可包括處理用戶定義的表達式或其他可執行代碼的機制。該可執行代碼可執行各種函數,包括數學、統計、與其他數據的聚集等。預處理器可執行惡意軟件分析、測試功能性、隨后實現該可執行代碼。可向用戶呈現編輯器或其他基于文本的用戶界面組件以用于輸入和編輯該可執行代碼。該可執行代碼可被保存并隨后作為可選擇轉換被調用以與其他數據流一起使用。
[0006]力導向圖可擔當針對跟蹤器的用戶控制的一部分。跟蹤器可在監視正在執行的應用的同時收集數據,隨后該數據可被處理并顯示在力導向圖上。用戶可以能夠選擇個體節點、邊、或其他元素,隨后使該跟蹤器改變可收集什么數據。該用戶可以能夠選擇個體節點、邊或圖上的元素的組,隨后使用所選擇的元素對跟蹤器執行更新。該選擇機制可包括點擊及拖動窗口以選擇可能相關的節點,以及從圖例或其他編組中選擇。
[0007]力導向圖可使用一組回放控制以暫停、播放、反轉、快進、慢進、或以其他方式控制時間序列數據的顯示來顯示時間序列數據。該回放控制可在向其顯示數據集以及可顯示該數據集的速度的實時或近實時應用中使用。在一個架構中,力導向圖可使用渲染引擎來部署,該渲染引擎接收數據并將該數據渲染到圖中。回放控制器可根據來自回放控制的用戶輸入向渲染引擎發送更新。
[0008]可通過示出在消息傳遞計算環境內傳遞的消息來將該環境可視化。該消息可包含由函數或其他計算元素消費的數據,并可被用于啟動或產生各種計算元素。一個可視化可以是力導向圖,該力導向圖的每個功能均作為節點,其中被傳遞的消息作為圖的邊。在一些實施例中,邊可通過將邊顯示得更寬或更窄、或通過改變所顯示的邊的顏色來顯示消息的數目、數據量、或其他度量。節點可用不同顏色、大小或形狀示出以顯示不同方面。一些實施例可具有用于存儲和回放隨時間對圖的改變的機制。
[0009]力導向圖可將消息傳遞系統的最近活動作為高亮(highlight)特征顯示在更大的圖上。力導向圖可顯示表示過程和消息路由的節點和邊的超集(superset),隨后將最近活動顯示為更大的超集內的高亮元素。高亮元素可顯示在一時間序列的最近時間元素期間傳遞的消息或執行的計算。在一些實施例中,可通過使高亮的視覺元素隨時間衰減來顯示活動的影響。
[0010]提供該概述以便以簡化形式介紹概念的選集,所述概念在以下詳細描述中被進一步描述。本概述并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。
[0011]附圖簡述
[0012]在附圖中:
[0013]圖1是示出力導向圖的實施例的圖示。
[0014]圖2是示出使用圖的數據收集和顯示的環境的實施例的圖示。
[0015]圖3是示出用于收集數據的方法的實施例的流程圖。
[0016]圖4是示出用于可視化之前聚集數據的方法的實施例的流程圖。
[0017]圖5是示出用于部署和更新圖的方法的實施例的流程圖示。
[0018]圖6是示出用于生成圖上的對象的蹤跡(trace)的方法的實施例的流程圖示。
[0019]圖7是示出顯示一時間序列的樣本力導向圖的實施例的圖示。
[0020]圖8A、8B和8C是用力導向圖示出選擇機制的實施例的圖示的序列。
[0021]圖9A、9B和9C是用力導向圖示出第二選擇機制的實施例的圖示的序列。
[0022]圖10是用于通過交互式圖來控制跟蹤器的方法的實施例的流程圖示。
[0023]圖11是示出用于可視化蹤跡數據的網絡環境的實施例的圖示。
[0024]圖12是示出用于用轉換來可視化蹤跡數據的方法的實施例的圖示。
[0025]圖13是示出具有轉換編輯器的樣本用戶界面的實施例的圖示。
[0026]圖14是示出具有轉換的網絡環境的實施例的圖示。
[0027]圖15是示出用于使用數據瀏覽器來控制顯示的方法的實施例的流程圖。
[0028]詳細描述
[0029]用于可視化消息傳遞計算環境的圖
[0030]消息傳遞計算環境可通過顯示在計算元素之間傳遞的消息的圖來可視化。所述圖可將計算元素示為節點,而消息為圖的邊。一種類型的這種可視化可以是力導向圖。
[0031 ] 該可視化可將數據的不同特性(諸如消息的數目、數據量、消息的方向、或其他特性)顯示為線寬、顏色、或其他視覺元素。在力導向圖的情況下,各元素之間的力可表示這種數據特性。
[0032]圖的節點可表示計算元素。計算元素可以是可發送或接收消息的任何可執行代碼、設備、或其他元素。節點可以用不同大小、顏色、形狀或其他特性來示出以示出所消耗的計算時間量、調用頻率、組中的成員資格、與其他元素的交互、或其他數據項。
[0033]該可視化可使用數據集的序列來執行,其中每個數據集可隨時間被收集。在這些實施例中,當應用執行時,圖可擴展、收縮、以及改變形狀。這些實施例可以能夠存儲和回放數據集的序列。在一些情況下,這種回放可被減慢或加速以示出執行期間的改變。
[0034]可視化系統可具有檢測機制系統(instrumentat1n system),該檢測系統收集執行期間的消息信息,隨后處理或格式化該信息以用于顯示。顯示系統可生成圖并向用戶顯示圖。在一些情況下,圖可以是交互式的,其中用戶可以能夠探詢(probe)該圖來獲得附加洞察。在一個示例中,用戶可以能夠點擊節點來尋找關于該節點的細節,諸如節點名稱、關于該節點的性能度量、或其他信息。
[0035]可視化系統可被用來監視和顯示在單一設備內傳遞的消息,以及其中消息在設備間傳遞的實施例。例如,一些函數式語言可在可在單一處理器上或跨單一設備內的若干處理器執行的進程之間傳遞消息。在另一示例中,高性能計算系統可組合位于許多不同設備上的處理器來執行大型應用。可通過顯示例如從設備到設備、以及在每個個體設備中從一個處理器到另一處理器傳遞的所有消息來可視化這種應用。
[0036]用于具有尚殼的時間序列數據的力導向圖
[0037]通過維持節點和邊的超集,以及通過高亮圖內表示最近活動的那些元素來顯示最近活動,力導向圖可顯示時間序列數據。節點和邊的超集可通過捕捉可通過時間序列來定義的每個節點和邊并在時間序列的回放或顯示期間維持該超集來創建。
[0038]通過高亮表示所述活動的那些元素,同時以非高亮方式顯示節點和邊的超集中的至少一些,最近活動可被覆蓋在元素的超集上。在這種可視化的一種樣式中,節點和邊的超集可按變灰淡化的方式呈現,而最近活躍的節點和邊可按有顏色的方式呈現。
[0039]通過使元素對于被激活之后的后續時間段在高亮上減弱來將最近活動示出為淡出或溶解。這種視覺衰減可高亮活躍元素,同時保持視覺線索達一定數量的時間片,并且在以下情況下可以是有用的:其中時間片足夠短而使得單一時間片中的活動可能未被完全理解。
[0040]用力導向圖來可視化時間序列數據
[0041]時間序列數據的動態可視化可在力導向圖中被渲染。時間序列數據可包括表示任何給定時間處系統的狀態的數據集。可視化可示出隨時間前進的狀態變化。
[0042]可視化可具有一組控件,所述控件允許用戶在數據集中向前或向后移動。所述控件可允許用戶控制數據的回放。在一些情況下,數據可在正常時間基礎上呈現,其中回放可對應于數據收集的速度。在其他情況下,回放可相對于數據被收集的周期性被加速或減慢。
[0043]用于可視化系統的架構可具有可被綁定到數據源的可視化器。可視化器可顯示力導向圖,包括渲染力的任何經動畫化的運動。所述控件可配置數據瀏覽器,該數據瀏覽器可選擇要呈現的數據集,要呈現的數據集可通過數據綁定而被傳輸到可視化器。在一些情況下,可視化器可收集用戶輸入,所述用戶輸入可以由數據瀏覽器在其上操作的遠程設備處理。
[0044]力導向圖作為跟蹤器的輸入機制
[0045]跟蹤器可使用力導向圖作為輸入機制。力導向圖可允許用戶選擇并操縱可表示應用的各種元素的圖的節點和邊。一旦被選擇,用戶可以能夠向元素應用各種動作,比如使得附加跟蹤被應用于元素或被應用于相關元素。
[0046]力導向圖或其他可視化可將應用元素呈現在不同編組或呈現中,這可幫助用戶看到各元素內的關系。通過使用力導向圖或其他可視化作為對跟蹤器的輸入,用戶可以能夠容易地選擇元素和相關元素,它們原本是難以選擇的。
[0047]圖可包含可顯示元素的組的圖例。圖例可包括用戶可用以選擇元素的子集的熱點或其他用戶界面控件。
[0048]用戶界面可包括可使用所選擇的元素作為輸入的附加的選項菜單。該附加菜單可包括可由提供所顯示的數據的跟蹤器采取的各種動作。配置文件可被更新并發送至跟蹤器以改變跟蹤器行為。
[0049]蹤跡數據的轉換定義
[0050]通過應用預定義的或用戶定義的轉換,蹤跡數據可被準備以用于顯示。數據的可視化可包括用戶界面,通過該用戶界面,用戶可選擇一個或多個預定義轉換或輸入可創建新轉換的可執行代碼或表達式。
[0051]用戶輸入的表達式可定義在準備可視化時可被應用到數據的改變。所述改變可執行統計分析、應用算術函數、組合數據字段、合并外部數據或其他函數。該表達式可允許用戶創建解決在可創建可視化時不可預見的特定場景的轉換。
[0052]表達式可被插入到用于數據饋送的數據處理流水線中。在一些情況下,數據處理流水線可以是可接收、處理和顯示實時數據的實時流水線。
[0053]貫穿本說明書和權利要求書,術語“剖析器”、“跟蹤器”和“檢測機制”(“instrumentat1n)”被可互換地使用。這些術語指代可在應用被執行時收集數據的任何機制。在經典定義中,“檢測機制”可指代可向其插入可執行代碼并藉此改變該可執行代碼的存根(stub)、掛鉤(hook)或其他數據收集機制,而“剖析器”或“跟蹤器”可經典地指代不可改變可執行代碼的數據收集機制。使用這些術語及其派生詞中的任一者都可蘊含或暗示彼此。例如使用“跟蹤器”的數據收集可使用“跟蹤器”的經典意義中的非接觸式數據收集以及用其中可執行代碼可被改變的“檢測機制”的經典意義的數據收集來執行。相似地,通過“檢測機制”收集的數據可包括使用非接觸式數據收集機制的數據收集。
[0054]此外,通過“剖析”、“跟蹤”和“檢測機ΦΙΓ收集的數據可包括可收集的任何類型的數據,包括諸如處理時間、吞吐量、性能計數器之類的與性能相關的數據等等。收集到的數據可包括函數名稱、所傳遞的參數、存儲器對象名稱和內容、所傳遞的消息、消息內容、注冊表設置、注冊表內容、差錯標志、中斷或與正被跟蹤的應用有關的任何其他參數或其他可收集的數據。
[0055]貫穿本說明書和權利要求書,術語“執行環境”可用于指代用于執行應用的任何類型的支持軟件。執行環境的一個示例是操作系