1.
通过上期分享《实践指路明灯,源码剖析flink-metrics》,对当下较火的流式处理框架 flink 的指标监控体系有了全局的认识,并结合 flink-metrics-xxxx 模块进行深入分析,对 flink 是如何集成监控轮子了如之掌。
不过,源码中的 flink-metrics-influxdb 模块,你是否留意到?按照设计规范,不用多想,那肯定是 flink 指标监控对 influxdb 的集成。
那么,influxdb ?influxdb 是啥?influxdb 你用过吗?
今天稍微花一分钟,带你 Get 这门技能,放心不会伤脑。
(图看不清放大了去看)
2.
去说 InfluxDB 之前,先聊聊,什么是时间序列数据(时序数据)?
时间序列数据就是在不同时间上收集到的数据,主要有两个关键指标:监测时间和监测数值。生活中常见的时间序列数据,包括股票价格、网站的 PV/UV、服务器系统监控数据(比如 CPU 和内存占用率)等等。
那时间序列数据应该存到哪儿?时间序列数据库(TSDB)是啥?
A time series database (TSDB) is a software system that is optimized for storing and serving time series through associated pairs of time(s) and value(s)
https://en.wikipedia.org/wiki/Time_series_database
简单去理解,时间序列数据可以存储到 TSDB 中,因为 TSDB 是用于存储和分析时间序列数据的数据库。
如图所示,在 DB-ENGINES 给出的最新的时间序列数据库的排名中,InfluxDB 高居第一位,而脸熟的 Prometheus、Graphite 等也位居其中,下面就以 InfluxDB 作为突破口进行体验。
3.
3.1 磨刀霍霍。
首先,选择您最中意的版本进行下载。
https://portal.influxdata.com/downloads/
本次以 v1.7.10 的 Mac 系统版本进行安装。
https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10_darwin_amd64.tar.gz
下载解压后的目录全局概览,不同安装方式会不同,但是着重关注 usr/bin/ 目录,后续操作的命令全在这里啦。
然后,按照安装手册进行配置,若是为了体验,默认配置也够用啦。
https://docs.influxdata.com/influxdb/v1.7/introduction/installation/
3.2 披荆斩棘。
下载安装已经完成,执行 ./influxd 命令启动 InfluxDB。
一顿命令操作猛如虎,熟练工种。
熟练工种,命令多练就是啦,感受一下与传统数据库有啥不同?
另外,InfluxDB 也提供了 HTTP API 方式操作。
简单整理了一下,/ping 可以获取 InfluxDB 实例信息以及健康状况;/write 提供插入数据的功能;/query 提供查询数据的功能。
InfluxDB 提供 API 要比这多,用到之时再深入也未尝不可。
3.3 拨云见日
InfluxDB 与传统数据库有啥不同呢?
如图示意,InfluxDB 中的 measurement 类似于传统数据库中的表,包含了列 time、tags 和 fields。
tag key/value 类似于传统数据库里索引的列;
field key/value 类似于传统数据库里没有索引的列;
time 存着时间戳,类似于传统数据库的主键。
另外,有没有什么轮子,可以更好的展示 InfluxDB 中的数据呢?
InfluxDB 位居 DB-ENGINES 排名首榜,对应的展示数据的轮子还是很多的,例如官方的 Chronograf,以及提及多次的 Grafana 等等。
闲暇之余,可以参考官方文档去深入。
https://docs.influxdata.com/influxdb/v1.7/introduction/getting-started/
4.
InfluxDB 本次就说到这里,希望你们能有所获。
下期,我们将结合源码,去看看别人都是怎么用 InfluxDB 的?并尝试把 InfluxDB、Grafana 这些轮子组装到一起,看看组装之后的车子能否跑起来,敬请期待。