OK I've dug a bit deeper. the values are being inserted into the 'poller_output' table correctly (by cmd.php).
The problem appears to be in poller.php:process_poller_output(). Well, maybe it's not a problem... maybe I'm attempting to do something cacti was not designed to support.
It seems that the times value is getting unset:
Code: Select all
[/path/to/inst/rra/my.rrd] => Array
(
[local_data_id] => 2168
[times] => Array
(
)
)
instead of
[/path/to/inst/rra/my.rrd] => Array
(
[local_data_id] => 2168
[times] => Array
(
[1116443361] => Array
(
[edn_cap] => 209715200
[edn_puse] => 6
[edn_use] => 13966288
[old_cap] => 33554432
[old_puse] => 61
[old_use] => 20505544
[prm_puse] => 0
[prm_use] => 134
[s0_cap] => 10485760
[s0_puse] => 0
[s0_use] => 0
[s1_cap] => 83886080
[s1_puse] => 56
[s1_use] => 47402512
)
)
)
I just realized that $unix_time consistently has a diff time for at least one of these values... Maybe it's getting unset when at least one value has a different time than the rest?
I should be able to populate a multi-value rrd with seperate SNMP OID's right?
For Example say I have two OID's as follows:
Code: Select all
oid: .1.2.3.4.0
name: foo
value: 56
oid: .1.2.3.4.1
name: bar
value: 78
Can I update the following rrd using a Custom SNMP query (not a script)?
Code: Select all
rrdtool create /path/to/inst/rra/foobar.rrd --step 300 DS:foo:GAUGE:600:0:100 DS:bar:GAUGE:600:0:100 RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:775 RRA:AVERAGE:0.5:288:797 RRA:MAX:0.5:1:600 RRA:MAX:0.5:6:700 RRA:MAX:0.5:24:775 RRA:MAX:0.5:288:797
So the update should look something like this:
Code: Select all
rrdtool update /path/to/inst/rra/foobar.rrd --template foo:bar 1116443407:56:78
I set things up assuming the above scenario will work. Or do I have to return all the values in a single snmpget? like so:
Code: Select all
oid: .1.2.3.4.0
name: foobar
value: foo:56 bar:78