prometheus VS influxdb
所属分类 prometheus
浏览量 1474
InfluxDB
InfluxData 公司使用 go 实现的时间序列数据库,
InfluxDB 的口号之一就是:From the ground up,没有任何外部依赖,就一个可执行文件,丢到服务器上就可以运行,对运维非常友好。
语法的设计很大程度受到 OpenTSDB 的启发。项目初期自带集群功能,可以轻松地实现横向扩展,但是在 1.0 之后集群功能被删除,
取而代之的是通过 Relay 模式实现高可用
Prometheus
SoundCloud 开源的监控系统,已提交给开源社区独立运营。
Cloud Native Computing Foundation 下 只有 k8s 和 Prometheus 两个项目。
InfluxDB只是数据库,而 Prometheus 是一个监控系统,包含了时序数据库,还有抓取、检索、绘图、报警功能。
参考 Google 内部的 Borgmon 系统 ,基于拉(pull)模式
《Site Reliability Engineering》
SRE
InfluxData 公司也推出了整套的围绕时间序列数据库的解决方案:TICK,数据获取(Telegraf )、存储和查询(InfluxDB)、图表绘制(Chronograf )、报警(Kapacitor )。
Elastic 围绕 ElasticSearch 核心功能,加上 Logstash,Kibana, Bea 、Watcher 等组件
指标监控 日志监控
Push vs Pull
Prometheus 提供 pushgateway 来支持 push 模式
查询语法
磁盘 IO 时间 指标
时间戳 metric: 值 tag
1565052526862 disk_io_time:10 type="sda"
1565052526862 disk_io_time:30 type="sdb"
1565052526862 disk_io_time:11 type="sdc"
1565052526862 disk_io_time:18 type="sde"
SELECT mean("value") FROM "disk_io_time" WHERE $timeFilter GROUP BY time($interval), "instance" fill(null)
SELECT mean("value") *1024 FROM "disk_io_time" WHERE $timeFilter GROUP BY time($interval), "instance" fill(null)
SELECT derivative(mean("value"), 10s) *1024 FROM "disk_io_time" WHERE $timeFilter GROUP BY time($interval), "instance" fill(null)
disk_io_time
disk_io_time*1024
rate(disk_io_time)*1024
维度之间的计算
sda 和 sdc 的 io 时间相加 , InfluxDB暂不支持
rate(disk_io_time{type="sda"}) + rate(disk_io_time{type="sdc"})
上一篇
下一篇
aerospike write-block-size 参数说明
kubernetes核心概念
为何Hashtable ConcurrentHashmap不允许key 和 value为null
go语言历程
go语言特性及优点
lua local function 与 function 区别