$measure['value']) { $reads += $measure['value'] + 4294967295 - $previous["dr$index"] - $previous["dr$index"]; } else { $reads += $measure['value'] - $previous["dr$index"]; } $current["dr$index"] = $measure['value']; } } $iops = cacti_snmp_walk($host['hostname'], $host['snmp_community'], '.1.3.6.1.4.1.2021.13.15.1.1.6', $host['snmp_version'], $host['snmp_username'], $host['snmp_password'], $host['snmp_auth_protocol'], $host['snmp_priv_passphrase'], $host['snmp_priv_protocol'], $host['snmp_context'], $host['snmp_port'], $host['snmp_timeout'], $host['ping_retries'], $host['max_oids'], SNMP_POLLER, $host['snmp_engine_id']); foreach($iops as $measure) { $parts = explode('.', $measure['oid']); $index = $parts[cacti_sizeof($parts)-1]; if (array_key_exists($index, $indexes)) { if (!isset($previous['uptime'])) { $writes = 'U'; } elseif ($current['uptime'] < $previous['uptime']) { $writes = 'U'; } elseif (!isset($previous["dw$index"])) { $writes = 'U'; } elseif ($previous["dw$index"] > $measure['value']) { $writes += $measure['value'] + 4294967295 - $previous["dw$index"] - $previous["dw$index"]; } else { $writes += $measure['value'] - $previous["dw$index"]; } $current["dw$index"] = $measure['value']; } } $data = "'" . json_encode($current) . "'"; shell_exec("echo $data > $tmpdir/$tmpfile"); } if ($found) { return "reads:$reads writes:$writes"; } else { return 'reads:0 writes:0'; } }