I have been using Grafana for Trending & Historical Data. But i am curious about database size increasing due to multiple sensors.
I have installed systeminfo Binding that gives me total size / Diskspace usage / CPU Load etc.
But how to Define Influx DB Size in Openhab Items so i can use it for showing in Sitemap and also store as Historical Data to see rate of Increase in database size.
The system command: sudo du -sh /var/lib/influxdb/data/openhab_db
Will return the size of the database in Megabytes:
example:
openhab@openhab:~$ sudo du -sh /var/lib/influxdb/data/openhab_db
25M /var/lib/influxdb/data/openhab_db
So you could do in rules:
var String databaseQueryString = executeCommandLine("sudo du -sh /var/lib/influxdb/data/openhab_db")
var String databaseSizeString = databaseQueryString.split(" ").get(0).replace("M", "")
var Number databaseSize = Float::parseFloat(databaseSizeString) as Number
2018-07-28 22:44:04.115 [ERROR] [ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule āInflux DB Size Data Collectionā: cannot invoke method public java.lang.String[] java.lang.String.split(java.lang.String) on null
I am getting error
my rules
rule "Influx DB Size Data Collection"
when
Time cron "0 0/1 * * * ?"
then
var String databaseQueryString = executeCommandLine("sudo du -sh /var/lib/influxdb/data/openhab_db")
var String databaseSizeString = databaseQueryString.split(" ").get(0).replace("M", "")
var Number databaseSize = Float::parseFloat(databaseSizeString) as Number
end
2018-07-29 11:33:03.761 [ERROR] [ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule 'Influx DB Size Data Collection': cannot invoke method public java.lang.String[] java.lang.String.split(java.lang.String) on null
rule "Influx DB Size Data Collection"
when
Time cron "0 0/1 * * * ?"
then
var String databaseQueryString = executeCommandLine("du -sh /var/lib/influxdb/data/openhab_db", 1000)
logInfo("TEST1", databaseQueryString)
var String databaseSizeString = databaseQueryString.split("\t").get(0)
databaseSizeString = databaseSizeString.replace("M", "")
logInfo("TEST1", databaseSizeString)
var Number databaseSize = Float::parseFloat(databaseSizeString) as Number
logInfo("TEST1", databaseSize.toString)
end
Correctā¦i had already put that in ruleā¦ like below
rule "Influx DB Size Data Collection"
when
Time cron "0 0/1 * * * ?"
then
var String databaseQueryString = executeCommandLine("du -sh /var/lib/influxdb/data/openhab_db", 1000)
logInfo("TEST1", databaseQueryString)
var String databaseSizeString = databaseQueryString.split("\t").get(0)
databaseSizeString = databaseSizeString.replace("M", "")
logInfo("TEST1", databaseSizeString)
var Number databaseSize = Float::parseFloat(databaseSizeString) as Number
logInfo("TEST1", databaseSize.toString)
Databasesize.postUpdate(databaseSize)
end