InfluxDB 開源分布式時序 事件和指標資料庫

2022-06-30 05:06:11 字數 2345 閱讀 5605

influxdb 是乙個開源分布式時序、事件和指標資料庫。使用 go 語言編寫,無需外部依賴。其設計目標是實現分布式和水平伸縮擴充套件。

管理介面:

influxdb 支援兩種api方式

protobuf 還未開發完成, 官網文件都沒有

如何使用 http api 進行操作?

比如對於foo_production這個資料庫,插入一系列資料,可以發現post請求到/db/foo_production/series?u=some_user&p=some_password, 資料放到body裡。

資料看起來是這樣的:

下面的"name": "events", 其中"events"就是乙個series,類似關係型資料庫的表table

[

, ]

格式是json,可以在乙個post請求傳送多個series, 每個series裡的points可以是多個,但索引要和columns對應。

上面的資料裡沒有包含time列,influxdb會自己加上,不過也可以指定time,比如:

[  ]

time 在influxdb裡是很重要的,畢竟influxdb是time series database在influxdb裡還有個sequence_number欄位是資料庫維護的,類似於mysql的 主鍵概念

influxdb 增刪更查都是用http api來完成,甚至支援使用正規表示式刪除資料,還有計畫任務。

比如:傳送post請求到/db/:name/scheduled_deletes, body如下,

這個查詢會刪除大於14天的資料,並且任何以stats開頭的資料,並且每天3:00 am執行。

更加詳細檢視官方文件: 

influxdb 提供了類似sql的查詢語言

看起來是這樣的:

select * from events where state == 'ny';

select * from log_lines where line =~ /error/i;

select * from events where customer_id == 23 and type == 'click';

select * from response_times where value > 500;

select * from events where email !~ /.*gmail.*/;

select * from nagios_checks where status != 0;

select * from events

where (email =~ /.*gmail.* or email =~ /.*yahoo.*/) and state == 'ny';

delete from response_times where time > now() - 1h

非常容易上手, 還支援group by,merging series,joining series, 並內建常用統計函式,比如max, min, mean 等

文件: 

常用語言的庫都有,因為api簡單,也很容易自己封裝。

influxddb作為很多監控軟體的後端,這樣監控資料就可以直接儲存在influxdb

statsd,collectd,fluentd

還有其它的視覺化工具支援influxdb, 這樣就可以基於influxdb很方便的搭建監控平台

influxdb 用於儲存基於時間的資料,比如監控資料,因為influxdb本身提供了http api,所以可以使用influxdb很方便的搭建了個監控資料儲存中心。

對於influxdb中的資料展示,官方admin有非常簡單的圖表, 看起來是這樣的

除了自己寫程式展示資料還可以選擇:

tasseo,為graphite寫的live dashboard,現在也支援influxdb,tasseo 比較簡單, 可以配置的選項很少。

配置資料來源:

datasources: 

},

InfluxDB 開源分布式時序 事件和指標資料庫

influxdb 是乙個開源分布式時序 事件和指標資料庫。使用 go 語言編寫,無需外部依賴。其設計目標是實現分布式和水平伸縮擴充套件。管理介面 influxdb 支援兩種api方式 protobuf 還未開發完成,官網文件都沒有 如何使用 http api 進行操作?比如對於foo product...

InfluxDB 開源分布式時序 事件和指標資料庫

influxdb 是乙個開源分布式時序 事件和指標資料庫。使用 go 語言編寫,無需外部依賴。其設計目標是實現分布式和水平伸縮擴充套件。管理介面 influxdb 支援兩種api方式 protobuf 還未開發完成,官網文件都沒有 如何使用 http api 進行操作?比如對於foo product...

開源時序型資料庫 InfluxDB

influxdb是開源時序型資料庫,由go寫成,被廣泛應用於監控系統,如cpu利用率,io,記憶體等指標 穿戴裝置,如心率,體溫 iot實時資料等場景。influxdb 官方 資料來源每隔一段時間產生一條資料,除了時間戳和值不一樣,其他都相同。比如cpu使用率,隨著時間變化,它產生的資料就是時間序列...