diff options
| author | Pim van den Berg | 2014-05-03 11:40:46 +0200 |
|---|---|---|
| committer | Pim van den Berg | 2014-05-03 19:19:05 +0200 |
| commit | 1bb10c398d1a3198a8b86517bd780b8122e2e69d (patch) | |
| tree | 669ea50b9b0efe268f4bb9153459f95ccfb167b5 /inc | |
| parent | type: move generic functions to base class (diff) | |
| download | apt-panopticon_cgp-1bb10c398d1a3198a8b86517bd780b8122e2e69d.zip apt-panopticon_cgp-1bb10c398d1a3198a8b86517bd780b8122e2e69d.tar.gz apt-panopticon_cgp-1bb10c398d1a3198a8b86517bd780b8122e2e69d.tar.bz2 apt-panopticon_cgp-1bb10c398d1a3198a8b86517bd780b8122e2e69d.tar.xz | |
move collectd_flush function to base class
Diffstat (limited to 'inc')
| -rw-r--r-- | inc/collectd.inc.php | 65 | ||||
| -rw-r--r-- | inc/html.inc.php | 6 |
2 files changed, 5 insertions, 66 deletions
diff --git a/inc/collectd.inc.php b/inc/collectd.inc.php index 74595aa..3bfc6ff 100644 --- a/inc/collectd.inc.php +++ b/inc/collectd.inc.php | |||
| @@ -167,68 +167,3 @@ function plugin_sort($data) { | |||
| 167 | 167 | ||
| 168 | return $data; | 168 | return $data; |
| 169 | } | 169 | } |
| 170 | |||
| 171 | function socket_cmd($socket, $cmd) { | ||
| 172 | $r = fwrite($socket, $cmd, strlen($cmd)); | ||
| 173 | if ($r === false || $r != strlen($cmd)) { | ||
| 174 | error_log(sprintf('ERROR: Failed to write full command to unix-socket: %d out of %d written', | ||
| 175 | $r === false ? -1 : $r, strlen($cmd))); | ||
| 176 | return FALSE; | ||
| 177 | } | ||
| 178 | |||
| 179 | $resp = fgets($socket,128); | ||
| 180 | if ($resp === false) { | ||
| 181 | error_log(sprintf('ERROR: Failed to read response from collectd for command: %s', | ||
| 182 | trim($cmd))); | ||
| 183 | return FALSE; | ||
| 184 | } | ||
| 185 | |||
| 186 | $n = (int)$resp; | ||
| 187 | while ($n-- > 0) | ||
| 188 | fgets($socket,128); | ||
| 189 | |||
| 190 | return TRUE; | ||
| 191 | } | ||
| 192 | |||
| 193 | # tell collectd to FLUSH all data of the identifier(s) | ||
| 194 | function collectd_flush($identifier) { | ||
| 195 | global $CONFIG; | ||
| 196 | |||
| 197 | if (!$CONFIG['socket']) | ||
| 198 | return FALSE; | ||
| 199 | |||
| 200 | if (!$identifier || (is_array($identifier) && count($identifier) == 0) || | ||
| 201 | !(is_string($identifier) || is_array($identifier))) | ||
| 202 | return FALSE; | ||
| 203 | |||
| 204 | if (!is_array($identifier)) | ||
| 205 | $identifier = array($identifier); | ||
| 206 | |||
| 207 | $u_errno = 0; | ||
| 208 | $u_errmsg = ''; | ||
| 209 | if (! $socket = @fsockopen($CONFIG['socket'], 0, $u_errno, $u_errmsg)) { | ||
| 210 | error_log(sprintf('ERROR: Failed to open unix-socket to %s (%d: %s)', | ||
| 211 | $CONFIG['socket'], $u_errno, $u_errmsg)); | ||
| 212 | return FALSE; | ||
| 213 | } | ||
| 214 | |||
| 215 | if ($CONFIG['flush_type'] == 'collectd'){ | ||
| 216 | $cmd = 'FLUSH'; | ||
| 217 | foreach ($identifier as $val) | ||
| 218 | $cmd .= sprintf(' identifier="%s"', $val); | ||
| 219 | $cmd .= "\n"; | ||
| 220 | socket_cmd($socket, $cmd); | ||
| 221 | } | ||
| 222 | elseif ($CONFIG['flush_type'] == 'rrdcached') { | ||
| 223 | foreach ($identifier as $val) { | ||
| 224 | $cmd = sprintf("FLUSH %s.rrd\n", $val); | ||
| 225 | socket_cmd($socket, $cmd); | ||
| 226 | } | ||
| 227 | } | ||
| 228 | |||
| 229 | fclose($socket); | ||
| 230 | |||
| 231 | return TRUE; | ||
| 232 | } | ||
| 233 | |||
| 234 | ?> | ||
diff --git a/inc/html.inc.php b/inc/html.inc.php index 2bcbc3f..7f6e7c0 100644 --- a/inc/html.inc.php +++ b/inc/html.inc.php | |||
| @@ -196,7 +196,11 @@ function host_summary($cat, $hosts) { | |||
| 196 | $CONFIG['weburl'],$host, $host); | 196 | $CONFIG['weburl'],$host, $host); |
| 197 | 197 | ||
| 198 | if ($CONFIG['showload']) { | 198 | if ($CONFIG['showload']) { |
| 199 | collectd_flush(sprintf('%s/load/load', $host)); | 199 | require_once 'type/Default.class.php'; |
| 200 | $load = array('h' => $host, 'p' => 'load', 't' => 'load'); | ||
| 201 | $obj = new Type_Default($CONFIG, $load); | ||
| 202 | $obj->collectd_flush(); | ||
| 203 | |||
| 200 | $rrd_info = $rrd->rrd_info($CONFIG['datadir'].'/'.$host.'/load/load.rrd'); | 204 | $rrd_info = $rrd->rrd_info($CONFIG['datadir'].'/'.$host.'/load/load.rrd'); |
| 201 | 205 | ||
| 202 | # ignore if file does not exist | 206 | # ignore if file does not exist |
