Dapper的“存儲(chǔ)API”簡(jiǎn)稱(chēng)為DAPI,提供了對(duì)分散在區(qū)域Dapper存儲(chǔ)庫(kù)(DEPOTS) 的監(jiān)控記錄的直接訪問(wèn)。一般來(lái)說(shuō),有以下三種方式可以對(duì)這些記錄進(jìn)行訪問(wèn)。
(1)通過(guò)監(jiān)控id訪問(wèn)(Access by Trace id):利用全局唯一的監(jiān)控id直接訪問(wèn)所需的監(jiān)控?cái)?shù)據(jù)。
(2)塊訪問(wèn)(Bulk Access): DAPI可以借助MapReduce來(lái)提供對(duì)數(shù)以十億計(jì)的Dapper監(jiān)控?cái)?shù)據(jù)的并行訪問(wèn)。用戶(hù)覆寫(xiě)一個(gè)將Dapper監(jiān)控作為其唯一參數(shù)的虛函數(shù)(virtua Function),在每次獲取用戶(hù)定義的時(shí)間窗口內(nèi)的監(jiān)控?cái)?shù)據(jù)時(shí)架構(gòu)都將引用該函數(shù)。
(3)索引訪問(wèn)(Indexed Access):Dapper存儲(chǔ)庫(kù)支持單索引(Single Index),因?yàn)楸O(jiān)控id的分配是偽隨機(jī)的,這是快速訪問(wèn)同特定服務(wù)或主機(jī)相關(guān)監(jiān)控的最好方式。
根據(jù)不完全的統(tǒng)計(jì),目前大約有三個(gè)基于DAPI的持久應(yīng)用程序,八個(gè)額外的基于DAPI的按需分析工具及大約15~20個(gè)使用DAPI框架構(gòu)建的一次性分析工具。
2. Dapper用戶(hù)界面
大部分的用戶(hù)在使用Dapper時(shí)都是通過(guò)基于web的交互式用戶(hù)界面,圖2-34~圖2-38顯示其一般性的使用流程。
(1)首先用戶(hù)需要選擇監(jiān)控對(duì)象,包括監(jiān)控的起止時(shí)間、區(qū)分監(jiān)控模式的信息(圖2-34中是區(qū)間名)及一個(gè)衡量開(kāi)銷(xiāo)的標(biāo)準(zhǔn)(圖2-34中是服務(wù)延遲)。

(2)如圖2-35所示,一個(gè)大的性能表給出了所有同指定監(jiān)控對(duì)象有關(guān)的分布式執(zhí)行模式的簡(jiǎn)要情況。用戶(hù)可以按其意愿對(duì)這些執(zhí)行模式進(jìn)行排序并選擇某一個(gè)査看更多的細(xì)節(jié)。

(3)圖2-36是某個(gè)選中的分布式執(zhí)行模式,該執(zhí)行模式以圖形化描述呈現(xiàn)給用戶(hù)。

(4)根據(jù)最初選擇的開(kāi)銷(xiāo)度量標(biāo)準(zhǔn),Dapper會(huì)以頻度直方圖的形式將步驟(3)中選中的執(zhí)行模式的開(kāi)銷(xiāo)分布展示出來(lái),如圖2-37所示,同時(shí)呈現(xiàn)給用戶(hù)的還有一系列特殊的監(jiān)控樣例信息,這些信息落在直方圖的不同部分。用戶(hù)可以進(jìn)一步的選擇這些監(jiān)控樣例。

(5)在用戶(hù)選擇了某個(gè)監(jiān)控樣例后,就會(huì)進(jìn)入所謂的監(jiān)控審査視圖(Trace Inspection View)。圖2-38是部分的監(jiān)控審查視圖,在這個(gè)視圖中,最頂端是一條全局的時(shí)間線(xiàn) (Global Time Line)。每一行是一個(gè)監(jiān)控樹(shù),選擇“+”或能夠展開(kāi)或折疊監(jiān)控樹(shù)。 每個(gè)監(jiān)控樹(shù)用嵌套的彩色長(zhǎng)方形表示的。每個(gè)RPC區(qū)間又被進(jìn)一步的分成花在服務(wù)器處理上的時(shí)間和花在網(wǎng)絡(luò)通信上的時(shí)間。用戶(hù)注釋并未在圖中顯示出來(lái),但是它們可以按照逐個(gè)區(qū)間被選擇包含在全局時(shí)間線(xiàn)上。

根據(jù)統(tǒng)計(jì),一個(gè)普通的工作日內(nèi)大概有200個(gè)不同的Google工程師在使用Dapper用戶(hù)界面。因此,在一周的時(shí)間里,大約有750~1000個(gè)不同的用戶(hù)。