一、【常见异常】
1、max series per database exceeded 异常
err = max series per database exceeded:
java.lang.RuntimeException: {"error":"max series per database exceeded:
at org.influxdb.impl.InfluxDBImpl.execute(InfluxDBImpl.java:266)
at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:167)
at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:157)
数据量太大之后,再每次进行连续查询的时候,会出现此异常,同时也会造成程序也会报类似的异常
修改配置文件:vim /etc/influxdb/influxdb.conf
# 最大插入series记录数
max-series-per-database = 10000000
# 最大插入的tag值
max-values-per-tag = 10000000
2、err = max number of points reached
[ coordinator]
write-timeout = "10s"
max-concurrent-queries = 0
query-timeout = "0"
log-queries-after = "10s"
max-select-point = 0
max-select-series = 0
max-select-buckets = 0
max-concurrent-queries
max-concurrent-queries项是配置最大的可执行的命令数,此项值为零则表示无限制。
如果你执行的命令数超过这个配置项的数量,则会报如下错误:
query-timeout
query-timeout项用来配置命令的超时时间,如果命令的执行时长超过了此时间,则influxDB会杀掉这条语句并报出如下错误:
如果配置了连续查询,那么最好不要配置query-timeout超时时间,因为随着数据量的增加,连续查询生成的数据所需要的时间更长,配置之后会导致数据生成不成功。
log-queries-after
log-queries-after用来配置执行时长为多少的语句会被记录为慢查询。配置为0则表示不会记录这些语句。
比如,改项配置为“1s”,则执行时长超过1秒的语句会被标记为慢查询,并记录在日志里。
max-select-point( 在point可控的情况下,可以设置此参数 )
max-select-point配置一次可查询出的数据量,因为在influxDB中一条数据看做一个点,因此这个配置叫每次可查询的最大的点数。
配置为0则表示无限制,如果查询出来的数量大于此项配置,则influxDB会杀掉这条语句并报出如下错误:
max-select-series用来配置influxDB语句中最多可处理的series的数量,如果你的语句中要处理的series数量大于此配置,则influxDB不会执行这条语句并且会报出如下错误:
log-enabled = false //默认为true,会生成很多http请求的数据,建议关闭,不然日志文件跟插入数据量成正比,大致1:1的关系
max-row-limit = 10000 //查询页面显示最大记录数
[ continuous_queries] //连续查询
log-enabled = true //开启连续查询的日志,有助于异常发现
enabled = true //开启连续查询
[ data]
enabled = true
dir = "/disk2/influxdb/data" ##数据存储的目录
wal-dir = "/disk2/influxdb/wal" //wal数据目录
wal-logging-enabled = true
# 4294967296(b)=4G 最大缓存数据,先缓存再写入
cache-max-memory-size = 4294967296
参考地址: http://www.linuxdaxue.com/influxdb-query-management.html
1、max series per database exceeded 异常
err = max series per database exceeded:
java.lang.RuntimeException: {"error":"max series per database exceeded:
at org.influxdb.impl.InfluxDBImpl.execute(InfluxDBImpl.java:266)
at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:167)
at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:157)
数据量太大之后,再每次进行连续查询的时候,会出现此异常,同时也会造成程序也会报类似的异常
修改配置文件:vim /etc/influxdb/influxdb.conf
# 最大插入series记录数
max-series-per-database = 10000000
# 最大插入的tag值
max-values-per-tag = 10000000
2、err = max number of points reached
[continuous_querier] 2017/02/10 08:02:42 error executing query: END: err = max number of points reached
[ coordinator]
write-timeout = "10s"
max-concurrent-queries = 0
query-timeout = "0"
log-queries-after = "10s"
max-select-point = 0
max-select-series = 0
max-select-buckets = 0
max-concurrent-queries
max-concurrent-queries项是配置最大的可执行的命令数,此项值为零则表示无限制。
如果你执行的命令数超过这个配置项的数量,则会报如下错误:
ERR: max concurrent queries reached
query-timeout
query-timeout项用来配置命令的超时时间,如果命令的执行时长超过了此时间,则influxDB会杀掉这条语句并报出如下错误:
ERR: query timeout reached
如果配置了连续查询,那么最好不要配置query-timeout超时时间,因为随着数据量的增加,连续查询生成的数据所需要的时间更长,配置之后会导致数据生成不成功。
log-queries-after
log-queries-after用来配置执行时长为多少的语句会被记录为慢查询。配置为0则表示不会记录这些语句。
比如,改项配置为“1s”,则执行时长超过1秒的语句会被标记为慢查询,并记录在日志里。
max-select-point( 在point可控的情况下,可以设置此参数 )
max-select-point配置一次可查询出的数据量,因为在influxDB中一条数据看做一个点,因此这个配置叫每次可查询的最大的点数。
配置为0则表示无限制,如果查询出来的数量大于此项配置,则influxDB会杀掉这条语句并报出如下错误:
ERR: max number of points reached
max-select-series
max-select-series用来配置influxDB语句中最多可处理的series的数量,如果你的语句中要处理的series数量大于此配置,则influxDB不会执行这条语句并且会报出如下错误:
ERR: max select series count exceeded: <query_series_count> series
[
http]
log-enabled = false //默认为true,会生成很多http请求的数据,建议关闭,不然日志文件跟插入数据量成正比,大致1:1的关系
max-row-limit = 10000 //查询页面显示最大记录数
[ continuous_queries] //连续查询
log-enabled = true //开启连续查询的日志,有助于异常发现
enabled = true //开启连续查询
[ data]
enabled = true
dir = "/disk2/influxdb/data" ##数据存储的目录
wal-dir = "/disk2/influxdb/wal" //wal数据目录
wal-logging-enabled = true
# 4294967296(b)=4G 最大缓存数据,先缓存再写入
cache-max-memory-size = 4294967296
参考地址: http://www.linuxdaxue.com/influxdb-query-management.html