欢迎访问我的博客,你的支持,是我最大的动力!

influxdb 使用总结及常用命令整理

Linux 小马奔腾 40℃ 评论
目录:
[显示]

目前使用的版本为:1.8.3

常用命令

命令行连接
# 显示字符串时间
influx -host 172.16.1.10 -precision rfc3339
# 使用 flux 语法
influx -type=flux
## -precision 'rfc3339|h|m|s|ms|u|ns'
数据库相关
# 查看数据库
show databases
# 创建数据库
create database "nginx"
# 使用数据库
use nginx
# 删除数据库
drop database "nginx"
表 measurements 相关
# 查看表 显示表名
show measurements
# 删除表
drop series from prod
drop measurement prod
tags 相关
# tag value只能是string类型
# 查看tags
show series from prod
# 查看tags名称
show tag keys from prod
# 查看tags值
show tag values on nginx from prod with key = status
# 查询单个tag的value值
show tag values from prod with key="app"
show tag values from prod with key in ("app", "host") where status = '200'
# 删除key
drop series from <measurement_name[,measurement_name]> where <tag_key>='<tag_value>'
# 对于WHERE子句中的tag values或string类型的field values
# 如果没有用引号括起来,或者是用的双引号,这种时候,查询不会返回任何结果,有时甚至也不会报错
show tag values on "nginx" from "prod" with key = "app" where pdu = 'infra'
fields 相关
# 查看字段类型
show field keys
查询相关
# 查询记录条数
select count(*) from prod
select count(qps) from prod
# 查看记录
select * from prod order by time desc limit 5
select app,qps,count,status from prod order by time desc limit 5
select app,qps,count,status from prod where app="redis" order by time desc limit 5
# distinct的字段仅是field 不能是tag
# group by仅是tag 不能是field
select distinct(qps) from prod
# 模糊查询
select * from prod where app =~/infra/
# 按时间查询
select * from prod where status =~/^5/ and time > (now()-10m)
select app,pdu,api,status,count from prod where status =~/^5/ and time > (now()-10m) TZ('Asia/Shanghai')
# 命令行方式
influx -database 'nginx' -execute 'select PERCENTILE(RequestTime,95), PERCENTILE(RequestTime,99), PERCENTILE(RequestTime,85),mean(RequestTime),count(BodyBytesSent) from ng where time > 1601224057160000000 group by Host,time(10m),Status' -format csv >> test.csv
过期策略 retention policies

一个数据库可以有多个过期策略,访问时可以通过指定策略来访问存放于特定策略下的数据
删除策略时,该策略下对应的数据也会一并删除

# 查看过期策略
show retention policies on nginx
# 显示当前是所有shared数据文件和他们的过期时间
show shards
# 修改过期策略 修改的策略只会影响新创建的share
alter retention policy autogen on nginx duration 15d replication 1 shard duration 1d default
# 创建过期策略
create retention policy one_day_only on nginx duration 23h60m replication 1 default
# 切换过期策略
alter retention policy autogen on nginx duration 0s replication 1 shard duration 168h default
# 删除过期策略
drop retention policy one_day_only on nginx
# 创建数据库时指定保存策略
create database mydb with duration 14d
连续查询 continuous query

连续查询主要用在将数据归档,以降低系统空间的占用率,主要是以降低精度为代价
每次连续查询时间间隔很短(时间间隔 = now() - group by time())

# 查看连续查询
show continuous queries
# 删除
drop continuous query <cq_name> on <database_name>
drop continuous query "qps" on nginx
# 创建
create continuous query "qps_prod" on nginx begin select floor(sum(qps)) as qps into qps.autogen.qps_prod from nginx.autogen.prod group by time(1m) end
create continuous query "qps_prod_app" on nginx begin select sum(qps) as qps into qps.autogen.qps_prod_app from nginx.autogen.prod group by app,time(1m) end

注意 continuous queries must be aggregate queries,即连续查询的select只能是聚合函数字段,但group by中可以使用 tags

常用函数:
ceil() 四舍五入
floor() 去小数
sum()
count()
系统级命令
# 查看最后执行命令
show queries
# 结束查询
kill query <qid>
influx 服务相关
# 查看日志
journalctl -u influxdb -f

Go语言客户端sdk

 

grafana 展示 iframe方式

influxdb中的数据,可视化展示这块,我使用的是 grafana
为了在其他系统中嵌入,使用 iframe 的方式

grafana需要做的配置:

[security]
allow_embedding = true   # 允许嵌入
cookie_samesite = none   # 需要设置为 none 否则嵌入后登录后不能跳转,会一直显示登录页

在嵌入时,可以选择性隐藏左侧和上部工具菜单
kiosk 隐藏左侧及上部
kiosk=tv 隐藏左测

示例:

 

 

 

转载请注明:轻风博客 » influxdb 使用总结及常用命令整理

喜欢 (2)or分享 (0)