时间:2021-07-01 10:21:17 帮助过:11人阅读
1. 支持类似SQL的查询语法
2.提供了Http Api直接访问
3.存储超过10亿级别的时间序列数据
4.灵活的数据保留策略,可以定义到Database级别(只保留最热的数据)
5.内置管理接口和CMD
6.飞一般速度的聚合查询
7.按不同时间段进行聚合查询
8.内置持续查询功能,定时计算指定时间段的数据,插入到指定表中,可以理解为定时归集数据
9. 水平扩展,支持集群模式
二、Influxdb 版本和.Net支持
1. 根据我们的使用经验,V0.10版本是非常稳定的,V0.9.6我们用过,有内存泄漏问题
2. GitHub上有非常多的.Net Libraby,方便我们写入和读取数据
三、数据写入Write Data(Points)
Http API:
curl -i -XPOST ‘http://localhost:8086/write?db=mydb‘ --data-binary ‘cpu_load,host=server01,region=us-west value=0.64 1434055562000000000‘
db:mydb, 要写入的数据库
measurement:cpu_load,表
tag keys:host region tag value:server01 us-west
tag标签可以理解为维度,可选参数,用于标识不同的数据源,基于tag使查询更加简单和高效
Tags are indexed so queries on tag keys or tag values are more performant than queries on fields.
key field:value value field:0.64
Timestamp:1434055562000000000 可选参数、UTC
支持批量写入
支持同一个Timestamp写入不同的数据
Influxdb 支持存储结构灵活变化,可以在任意增加measure、tags、fields,但是每个tag、field的数据类型必须固定。
四、查询Query
Http API:
curl -G ‘http://localhost:8086/query?pretty=true‘ --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region=‘us-west‘
返回JSON格式数据
支持同时多个Query SQL
查询最大返回10000个点的数据,如果超过阈值,可以设置chunk_size
Measurement、Tag、Field、数据等大小写敏感,SQL关键字不区分大小写
支持算术计算:
SELECT (water_level * 2) + 4 from h2o_feet
支持对Tags进行过滤查询,条件必须使用单引号
SELECT water_level FROM h2o_feet WHERE location = ‘santa_monica‘
Tag value 为空、不为空过滤
SELECT * FROM h2o_feet WHERE location !~ /.*/
SELECT * FROM h2o_feet WHERE location =~ /.*/
时间范围过滤
SELECT * FROM h2o_feet WHERE time > now() - 7d
Field value过滤
SELECT * FROM h2o_feet WHERE location = ‘coyote_creek‘ AND water_level > 8
聚合函数、选择函数、转换函数
五、持续查询(Continuous Queries)
持续查询是Influxdb自动、周期的运行的查询,结果自动存储
设计持续查询的目的是为了规则采样数据,比如按天、按月采样数据
CREATE CONTINUOUS QUERY <cq_name> ON <database_name> [RESAMPLE [EVERY <interval>] [FOR <interval>]] BEGIN SELECT <function>(<stuff>)[,<function>(<stuff>)] INTO <different_measurement> FROM <current_measurement> [WHERE <stuff>] GROUP BY time(<interval>)[,<stuff>] END
六、 监控应用场景
通过上面几个部分的介绍,Influxdb的基本语法就可以掌握了。有什么作用:
1. 实时采集监控数据,按时间写入Influxdb
2. 按不同纬度聚合查询监控数据,用于监控展现
3. 持续查询,定时归集指定时间的数据,用于更大时间范围监控数据的展现
总结一下,场景结合实践,通过实际监控系统的应用,和大家分享了Influxdb的使用和技能。我们自己的监控系统就是通过这个套路一点点搭建起来的。
目前,我们的监控平台,2500个监控项,500台服务器实时监控,每日处理上T数据,几百个监控图表,Influxdb满足了我们日常超大规模监控的需要。
同时,Influxdb在大数据展现领域,也有不俗的表现,Druid的集成也很棒的。
周国庆
2017/7/11
互联网级监控系统必备-时序数据库之Influxdb技术
标签:dex 架构 pretty url 结构 github strong local different