influxd入门
2017-12-05 00:00
246 查看
influxdb介绍
influxdb是一个时间序列数据库。将数据组织成一个时间序列(measurements)。序列中包含一个测量值,例如,cpu_load,temperature。序列像一条线一样由一系列的点(points)组成。point结构
time:每条数据记录的时间(插入数据时可以指定,如果没有指定influxdb会根据本机系统时间自动生成)measurement :测量值 ,例如 “cpu_load”
field:测量值本身,例如“value= 0.64”或“temperature= 21.2”
tags: 0-many key-value 值,包含该测量值的元数据(例如:“host=server01”, “region=EMEA”, “dc=Frankfurt”)
你可以将measurement视为一个SQL表,主索引是时间。 tags和filed在表中是有效的列。 标签被索引,而字段不被索引。 与sql表不同的是,您可以拥有数百万的表和数据,而且不用事先定义表结构,而且不会存储空值。
还有一个重要的名词:series
series: 所有在数据库中的数据,都需要通过图表来表示,series表示这个表里面的所有的数据可以在图标上画成几条线(注:线条的个数由tags排列组合计算出来)
举个简单的小例子:
有以下数据:
它的series为:
influxdb基本操作
#登录数据库 influx -precision rfc3339 #The -precision argument specifies the format/precision of any returned timestamps. #In the example above, rfc3339 tells InfluxDB to return timestamps in RFC3339 format (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ). #创建数据库 create database "db_name" #显示所有的数据库 show databases #删除数据库 drop database "db_name" #使用数据库 use db_name m #显示该数据库中所有的表 show measurements #创建表,直接在插入数据的时候指定表名 insert test,host=127.0.0.1,monitor_name=test count=1 #删除表 drop measurement "measurement_name"
插入数据
通过命令行> use metrics Using database metrics > insert test,host=127.0.0.1,monitor_name=test count=1
通过http接口
curl -i -XPOST 'http://127.0.0.1:8086/write?db=metrics' --data-binary 'test,host=127.0.0.1,monitor_name=test count=1'
influxDB存储数据采用的是Line Protocol
Line Protocol格式:写入数据库的Point的固定格式。
在上面的两种插入数据的方法中都有这样的一部分:
test,host=127.0.0.1,monitor_name=test count=1
其中:
test:表名;
host=127.0.0.1,monitor_name=test:tag;
count=1:field
相对此格式有详细的了解参见官方文档
查询数据库中的数据
通过命令行> use metrics Using database metrics > select * from test order by time desc
通过http接口
url -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=metrics" --data-urlencode "q=select * from test order by time desc"
** InfluxQL有许多功能和关键字,这里没有涉及,包括对Go风格的正则表达式的支持。例如:**
> SELECT * FROM /.*/ LIMIT 1
--
数据保存策略(Retention Policies)
influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据查看当前数据库Retention Policies
show retention policies on "db_name"
创建新的Retention Policies
create retention policy "rp_name" on "db_name" duration 3w replication 1 default
rp_name:策略名
db_name:具体的数据库名
3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期)
replication 1:副本个数,一般为1就可以了
default:设置为默认策略
修改Retention Policies
删除Retention Policies
drop retention policy "rp_name"
连续查询(Continous Queries)
当数据超过保存策略里指定的时间之后就会被删除,但是这时候可能并不想数据被完全删掉,怎么办?influxdb提供了联系查询,可以做数据统计采样。
查看数据库的Continous Queries
show continuous queries
创建新的Continous Queries
create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end
cq_name:连续查询名字
db_name:数据库名字
sum(count):计算总和
table_name:当前表名
new_table_name:存新的数据的表名
30m:时间间隔为30分钟
删除Continous Queries
删除Continous Queries
drop continous query cp_name on db_name
用户管理
可以直接在web管理页面做操作,也可以命令行。#显示用户 show users #创建用户 create user "username" with password 'password' #创建管理员权限用户 create user "username" with password 'password' with all privileges #删除用户 drop user "username"
相关文章推荐
- 开始使用 WTF 吧,一款终端仪表板
- s-tui:在 Linux 中监控 CPU 温度、频率、功率和使用率的终端工具
- 使用zabbix监控Nginx活动状态--Part1
- [Zabbix问题解决]Zabbix discoverer processes 75% busy
- C#实现简单屏幕监控的方法
- C#进程监控方法实例分析
- Windows下使用性能监视器监控SqlServer的常见指标
- Android编程实现监控各个程序流量的方法
- 利用ganglia监控redis的最新解决方法
- Zabbix 2.4.5自带MySQL监控的配置使用教程
- Zabbix监控Linux主机设置方法
- Zabbix监控交换机设置方法
- 使用zabbix监控mongodb的方法
- Shell脚本实现Linux系统和进程资源监控
- jQuery 监控键盘一段时间没输入
- Oracle 监控索引使用率脚本分享
- Shell脚本监控目录内文件改动
- 使用Javascript监控前端相关数据的代码
- 获取键盘键的值 集合 方便监控键盘事件
- 一个监控Squid运行进程数并自动重启的简洁Shell脚本分享