OpenTSDB簡(jiǎn)介

OpenTSB概述

官方文檔這樣描述:OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase;

OpenTSDB是基于HBase的分布式的,可伸縮的時(shí)間序列數(shù)據(jù)庫(kù),通過(guò)TCollector收集監(jiān)控對(duì)象的各個(gè)指標(biāo),按時(shí)間的序列存入HBase中。通過(guò)查詢?cè)谝欢螘r(shí)間內(nèi)某個(gè)指標(biāo)的參數(shù),經(jīng)過(guò)處理展示給用戶,用戶可以看到各個(gè)時(shí)間點(diǎn)的指標(biāo)值和這段時(shí)間的變化,達(dá)到監(jiān)控的目的。

主要用途,可以做監(jiān)控系統(tǒng),收集大規(guī)模集群的監(jiān)控?cái)?shù)據(jù)并存儲(chǔ),監(jiān)控。

OpenTSDB總體部署
OpenTSDB總體部署

OpenTSDB包含時(shí)間序列守護(hù)進(jìn)程Time Series Daemon(TSD)。與OpenTSDB交互主要是有一個(gè)或多個(gè)TSD來(lái)實(shí)現(xiàn),每一個(gè)TSD都是獨(dú)立的,沒(méi)有master,沒(méi)有shared state,所以可以根據(jù)需要運(yùn)行盡可能多的TSD。每一個(gè)TSD使用開(kāi)源數(shù)據(jù)庫(kù)HBase來(lái)存儲(chǔ)并檢索時(shí)間序列數(shù)據(jù)。HBase模式高度優(yōu)化相似時(shí)間序列的快速聚合以減少存儲(chǔ)空間。TSD的用戶從不直接連接HBase,可以通過(guò)簡(jiǎn)單的遠(yuǎn)程連接協(xié)議,HTTP API或簡(jiǎn)單的GUI和TSD交流。所有的會(huì)話發(fā)生在同一個(gè)端口。

詳細(xì)介紹

OpenTSDB主要有兩個(gè)表:tsdb-uid和tsdb. 前者描述指標(biāo)(metrics)相關(guān)的元數(shù)據(jù),后者存儲(chǔ)時(shí)間序列數(shù)據(jù)。首先我們來(lái)了解一下“指標(biāo)”(metrics)的概念,簡(jiǎn)單講一個(gè)指標(biāo)就是一個(gè)需要收集的數(shù)據(jù)項(xiàng),但是只有指標(biāo)是不能全面地描述出一條數(shù)據(jù)產(chǎn)生的相關(guān)背景信息的,比如:如果我們要統(tǒng)計(jì)cpu的使用率,我們可以建立一下名為proc.stat.cpu的metrics,如果我們從不同的機(jī)器和用戶下收集了大量的cpu信息,如果沒(méi)有對(duì)一條信息進(jìn)行一定地標(biāo)識(shí),我們是無(wú)法區(qū)分出哪些數(shù)據(jù)來(lái)自哪臺(tái)機(jī)器的哪個(gè)用戶,所以我們還需要建立一些“標(biāo)簽”(Tag)來(lái)標(biāo)識(shí)一條數(shù)據(jù)。嚴(yán)格地說(shuō),指標(biāo)和標(biāo)簽之間并沒(méi)有必然的從屬關(guān)系,就像兩個(gè)不同的指標(biāo)的數(shù)據(jù)可能都有指示其來(lái)自哪臺(tái)主機(jī)的host標(biāo)簽一樣,但是有一點(diǎn)是確定的,即:對(duì)于一條數(shù)據(jù)來(lái)說(shuō),應(yīng)該至少含有一個(gè)指標(biāo)和一個(gè)標(biāo)簽,這樣的數(shù)據(jù)才是有意義的,因此,在OpenTSDB的表設(shè)計(jì)上,就把“指標(biāo)”(metrics)和“標(biāo)簽”(Tag)統(tǒng)一放在了tsdb-uid表中存儲(chǔ),格式為:RowKey(自增ID,3字節(jié)數(shù)組):name:metrics,name:tagk,name:tagv,
在OpenTSDB中,有一系列的數(shù)據(jù)點(diǎn),這些數(shù)據(jù)點(diǎn)包含以下參數(shù)

  • metric name,metric描述的是這條數(shù)據(jù)的指標(biāo)
  • timestamp
  • value(64位整數(shù)或單精度浮點(diǎn)值)
  • 一系列tags(鍵值對(duì)),tags是對(duì)這些數(shù)據(jù)點(diǎn)做一些來(lái)源或特性的標(biāo)識(shí)
mysql.bytes_received 1287333217 327810227706 schema=foo host=db1
mysql.bytes_sent 1287333217 6604859181710 schema=foo host=db1
mysql.bytes_received 1287333232 327812421706 schema=foo host=db1
mysql.bytes_sent 1287333232 6604901075387 schema=foo host=db1
mysql.bytes_received 1287333321 340899533915 schema=foo host=db2
mysql.bytes_sent 1287333321 5506469130707 schema=foo host=db2

例如,此例子包含了6個(gè)數(shù)據(jù)點(diǎn)(data point),metric有兩種mysql.bytes_receivedmysql.bytes_sent

通過(guò)OpenTSDB查詢

HTTP API/quaryapi鏈接
一個(gè)request通過(guò)開(kāi)始時(shí)間start,結(jié)束時(shí)間end,以及一個(gè)包含查詢語(yǔ)句的數(shù)組queries來(lái)查詢。
queries數(shù)組里面包含的是subquery,subquery必須包含aggregator和metric,即需要知道你要對(duì)什么進(jìn)行查詢,也要知道你要對(duì)這些數(shù)據(jù)點(diǎn)怎么處理是疊加呢還是干啥呢。博主使用的時(shí)候還涉及到了filters,filters就是對(duì)所取出來(lái)數(shù)據(jù)的過(guò)濾嘛,一般是針對(duì)tags的分組。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容