KairosDB 監控系統介紹

KairosDB是一個快速可靠的分佈式時間序列數據庫,主要用於Cassandra來做底層存儲,當然也可以使用HBase。KairosDB是在OpenTSDB基礎上重寫的。 KairosDB主頁: https://code.google.com/p/kairosdb/

對於運維工程師而言,OpenTSDB可以獲取基礎設施和服務的實時狀態信息,展示集羣的各種軟硬件錯誤,性能變化以及性能瓶頸。對於管理者而言,OpenTSDB可以衡量系統的SLA,理解複雜系統間的相互作用,展示資源消耗情況。集羣的整體作業情況,可以用以輔助預算和集羣資源協調。對於開發者而言,OpenTSDB可以展示集羣的主要性能瓶頸,經常出現的錯誤,從而可以着力重點解決重要問題。

與OpenTSDB相比KairosDB 改進的地方:

  • Uses Guice to load modules.
  • Incorporates Jetty for Rest API and serving up UI.
  • Pure Java build tool (Tablesaw)
  • UI uses Flot and is client side rendered.
  • Ability to customize UI.
  • Relative time now includes Month and supports leap years.
  • Modular data store interface supports:
    • HBase
    • Cassandra
    • H2 (For development)
  • Milliseconds data support when using Cassandra.
  • Rest API for querying and submitting data.
  • Build produces deployable tar, rpm and deb packages.
  • Linux start/stop service scripts.
  • Faster.
  • Made aggregations optional (easier to get raw data).
  • Bug fix with returning incorrect data.
  • Added abilities to import and export data.
  • Aggregators can aggregate data for a specified period.
  • Aggregators can be stacked or "piped" together.
  • Grouping by tags, time range, or value.

KairosDB 刪除的地方:

  • Removed all telnet commands except for put
  • No longer supports URL query

KairosDb 特性:

Data Store Support

KairosDB 可以使用cassandra、HBase、H2(開發環境中)作爲後端存儲。默認情況下,KairosDB運行在H2數據庫下,開發環境不需要cassandra或HBase。

Time Granularity

如果使用cassandra,KairosDB 支持毫秒的粒度。HBase 僅支持秒級別。

Tags

數據點可以跟上標記,一個標記是一個鍵值對。

Submit Metrics Via Telnet

使用telnet是一個非常簡單的方式來添加指標的方法。語法簡單、使用方便。

REST API

支持REST API來添加查詢指標。

Aggregators

在查詢時,使用聚合來處理數據點。KairosDB帶有聚合的默認設置,聚合器可以很容易地進行編碼,並加入到擴展默認功能。

Grouping

查詢API可以通過標記、時間範圍、值來對數據點進行分組。

Filtering

查詢API通過標記來篩選過濾返回的一組數據。

Graphing

KairosDB 有一個內置的web服務來繪圖。用戶界面允許您在一個折線圖建立查詢並顯示結果數據點。將JSON發送到REST API也可以顯示出結果,因此如果你想直接調用KairosDB對結果進行解析。

CORS

KairosDB支持跨地資源共享。這個主要是js跨域。基本上,可以讓你在其他網站上通過JavaScript來訪問KairosDB數據。

Compressed Upload

KairosDB支持gzip壓縮指標數據。如果你需要上傳大量的數據讓服務器批量處理,可以用gzip壓縮JSON並上傳,設置內容類型爲application/gzip。

KairosDB 對時間粒度的處理

原來的OpenTSDB項目只處理秒級別的數據。KairosDB重寫了該項目,並引進毫秒級別粒度的目標。

爲了實現這兩個目錄,做了下面的處理:

1. Telnet協議接收秒和毫秒級別的時間值。如果時間值小於3,000,000,000,就乘以 1,000所得到毫秒值存入到數據庫。

2. REST API只接受毫秒時間值。

3. Cassandra接收並存儲毫秒級的時間值。

4. HBase對毫秒級時間值進行處理,除以1,000所得的秒值存入到數據庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章