十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
小編給大家分享一下OpenTsdb如何查詢或讀取數(shù)據(jù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、江城網(wǎng)站維護、網(wǎng)站推廣。OpenTSDB提供了許多提取,處理和分析數(shù)據(jù)的方法。數(shù)據(jù)可以通過CLI工具,HTTP API來查詢,并且作為為一個GnuPlot圖形輸出展示。開源工具如Grafana和Bosun可以訪問TSDB的數(shù)據(jù)。使用OpenTSDB的基于標簽的系統(tǒng)進行查詢可能有點棘手,所以仔細閱讀本文檔并查看以下頁面以獲取更深入的信息。此頁面上的示例查詢遵循HTTP API格式。
OpenTSDB提供了多個工具和接口允許隨著時間推移的多樣化查詢定義。原始語法支持簡單的過濾,聚合和降采樣。后來的版本增加了對函數(shù)和表達式的支持。一般來說,每個查詢都有以下組件:
| 參數(shù) | 數(shù)據(jù)類型 | Required | 描述 | 示例 |
|---|---|---|---|---|
| Start Time | String或Integer | Required | 查詢的開始時間??梢允墙^對時間或相對時間 | 24h-ago |
| End Time | String或Integer | Optional | 查詢的結(jié)束時間。如果未提供結(jié)束時間,則當前時間即結(jié)束時間 | 1h-ago |
| Metric | String | Required | 系統(tǒng)中的metric全名。必須是全名并且大小寫敏感 | sys.cpu.user |
| Aggregation Function | String | Required | 用于組合多個時間序列的數(shù)學函數(shù)(即如何合并一個組中的時間序列值) | sum |
| Filter | String | Optional | 過濾標簽值以減少查詢或組中挑選出的時間序列的數(shù)量,并聚合各個標簽 | host=*,dc=lax |
| Downsampler | String | Optional | 可選的時間間隔和函數(shù),用于減少隨時間返回的數(shù)據(jù)點的數(shù)量 | 1h-avg |
| Rate | String | Optional | 用于計算結(jié)果的每秒變化率 | rate |
| Functions | String | Optional | 數(shù)據(jù)處理函數(shù),如附加過濾、時間切換等 | highestMax(…) |
| Expressions | String | Optional | 數(shù)據(jù)處理函數(shù),例如將一個序列分化成另一個序列 | (m2/(m1 + m2))*100 |
支持人類可讀的絕對時間戳或Unix風格的整型格式。相對時間通常用來刷新儀表板。當前,所有的查詢可以覆蓋單一的時間段。未來我們希望提供一個偏移查詢參數(shù),這個參數(shù)可以在不同的時間段內(nèi)對指標進行聚合或者繪制圖表,比如上周到1年前的比較。
雖然OpenTSDB可以以毫秒分辨率(精度)存儲數(shù)據(jù),但大多數(shù)查詢將以秒級分辨率返回數(shù)據(jù),以提供對現(xiàn)有工具的向后兼容性。除非使用指定了降采樣算法的查詢,否則將使用查詢中指定的相同聚合函數(shù)將數(shù)據(jù)自動降采樣到1秒。這樣,如果多個數(shù)據(jù)點存儲在一個給定的秒數(shù),它們將被聚合并正確返回一個正常的查詢。
要以毫秒分辨率提取數(shù)據(jù),請使用/api/query接口并指定msResolution(ms也可以,但不推薦)JSON參數(shù)或查詢字符串標識,它將繞過采樣(除非指定),并以Unix epoch毫秒分辨率返回所有時間戳。另外,scan命令行工具將返回寫入存儲的時間戳。
每個時間序列由一個指標與一個或多個標簽名稱/值對組成。在OpenTSDB中,過濾器應用于標簽值(當前的TSDB不提供對指標或標簽名稱的過濾)。由于過濾器在查詢中是可選的,如果您僅僅請求指標名稱,則具有任意數(shù)值或標簽值都會在聚合結(jié)果中返回。過濾器與SQL語句中的Where子句相似。例如,我們存儲了如下數(shù)據(jù)集:
sys.cpu.user host=webserver01,cpu=0 1356998400 1
sys.cpu.user host=webserver01,cpu=1 1356998400 4
sys.cpu.user host=webserver02,cpu=0 1356998400 2
sys.cpu.user host=webserver02,cpu=1 1356998400 1
制定一個簡單的查詢,至少帶有起始時間,聚合器和指標,如:
start=1356998400&m=sum:sys.cpu.user
我們會得到一個在1356998400時間點上將4個時間序列聚合到一組,值為8。
如果我們想縮放一個特定序列或一系列序列,可以使用過濾器。例如,我們可以通過在host標簽上過濾:
start=1356998400&m=sum:sys.cpu.user{host=webserver01}
該查詢將會返回一個值5,僅包含時間序列host=webserver01。要深入到特定的時間序列,必須包含序列的所有標簽,如查詢:
start=1356998400&m=sum:sys.cpu.user{host=webserver01,cpu=0}
將會返回1。
OpenTSDB的一個強大功能是能夠?qū)⒍鄠€時間序列的即時聚合集成到一組數(shù)據(jù)點中。原始數(shù)據(jù)始終可用于存儲,但我們可以通過有意義的方式快速提取數(shù)據(jù)。聚合函數(shù)是將單個時間戳的兩個或多個數(shù)據(jù)點合并為單個值的方法。
注意:
OpenTSDB默認會聚合數(shù)據(jù),并且需要每個查詢都有一個聚合運算符。每個聚合器必須處理多個序列的缺失或不同時間戳中的數(shù)據(jù)點。這通過插值來執(zhí)行的,如果用戶不知道TSDB在做什么,可能會在查詢時導致意外的結(jié)果。
OpenTSDB可以攝取大量數(shù)據(jù),即使僅提取給定時間序列中每秒一個數(shù)據(jù)點也是如此。因此查詢可能會返回大量的數(shù)據(jù)點,從API訪問大量點的查詢結(jié)果可能會消耗許多帶寬。高頻率的數(shù)據(jù)很容易壓倒Javascript圖形庫,因此可以選擇使用GnuPlot。由GUI創(chuàng)建的圖形難以閱讀,導致濃密的折線,如下圖所示:
查詢時可以使用降采樣來減少返回的數(shù)據(jù)點數(shù)量,以便您可以從圖表中提取更好的信息或通過連接傳遞更少的數(shù)據(jù)。降采樣需要一個聚合函數(shù)和一個時間間隔。聚合函數(shù)用于通過適當?shù)臄?shù)學函數(shù)計算指定區(qū)間內(nèi)所有數(shù)據(jù)點上的新數(shù)據(jù)點。例如,如果使用sum聚合,則間隔內(nèi)的所有數(shù)據(jù)點將會一起累加為單個值。如果選擇avg,則會返回間隔內(nèi)所有數(shù)據(jù)點的平均值。
使用降采樣,我們可以清理前面的圖,以得到更有用的東西:
許多數(shù)據(jù)源以不斷遞增的計數(shù)器的形式返回值。一個例子是一個網(wǎng)站點擊計數(shù)器。當您啟動Web服務器時,它的計數(shù)器可能為0。五分鐘后,該值可能為1,024。再過五分鐘后可能是2,048。計數(shù)器的圖形是一條直線且向右傾斜,這樣的圖并不總是非常有用。OpenTSDB提供了一個rate轉(zhuǎn)換函數(shù),用于計算值隨時間變化的變化率。這會將計數(shù)器轉(zhuǎn)換為帶有尖峰的折線(曲線),以便在活動發(fā)生時向您展示且更有用。
該比率是這些值的一階導函數(shù)。它被定義為(v2 - v1) / (t2 - t1),時間以秒為單位。因此你會得到每秒的變化率。目前,毫秒級值之間的變化率默認為每秒計算。
OpenTSDB 2.0支持特殊的單調(diào)遞增計數(shù)器數(shù)據(jù)處理,包括設(shè)置“翻轉(zhuǎn)”(越界)值和抑制異常波動的能力。當在查詢中指定counterMax值時,如果數(shù)據(jù)點接近該值并且之后的點小于先前的值,則將使用大值來計算給定兩個點的準確率。例如,如果我們用2個字節(jié)記錄整數(shù)計數(shù)器,則大值將是65,535。如果在t0值是64000,在t1值是 1000,每秒所得到的速率將被作為計算-63000。然而我們知道,計數(shù)器可能會翻轉(zhuǎn),因此我們可以將大值設(shè)置為65535,現(xiàn)在計算65535 - t0 + t1將會返回給我們2535。
跟蹤計數(shù)器中數(shù)據(jù)的系統(tǒng)通常在重新啟動時恢復為0。發(fā)生這種情況時,如果使用大計數(shù)器功能,我們可能會得到一個虛假的結(jié)果。例如,如果計數(shù)器在t0達到2000,同時有人重新啟動服務器時,在t1下一個值可能會500。如果我們設(shè)定大值65535,那么結(jié)果就是65535 - 2000 + 500返回64035給我們。如果正常速度是每秒幾個點,這個特定的尖峰,在30s中的數(shù)據(jù)點之間,將創(chuàng)建一個速率尖峰2134.5!為了避免這種情況,我們可以設(shè)置resetValue,當速率超過這個值時,返回一個值為0數(shù)據(jù)點以避免任何一個方向上出現(xiàn)尖峰。對于上面的例子,如果我們知道,速度幾乎從來沒有超過100,我們可以配置resetValue為100,并且當上面的數(shù)據(jù)點被計算時,它將返回0而不是2,134.5。默認值0表示重置的值將被忽略,不會抑制rates。(不會影響rates)
了解運算順序非常重要。返回查詢結(jié)果時,以下是處理的順序:
1. 過濾
1. 分組
1. 降采樣
1. 插值
1. 聚合
1. Rate轉(zhuǎn)換
1. 函數(shù)
1. 表達式
以上是“OpenTsdb如何查詢或讀取數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。