'%d', ); $ret = array( 'munin_apc' => array( '#title' => t('PHP APC'), '#info' => t('Collect cache information for the Alternative PHP Cache'), 'total_size' => $int + array( '#label' => t('Bytes allocated'), '#type' => MUNIN_API_GAUGE, '#info' => t('Number of bytes allocated to APC.') ), 'used_size' => $int + array( '#label' => t('Bytes in use'), '#type' => MUNIN_API_GAUGE, '#info' => t('Number of bytes actually used by APC, either cached or deleted'), ), 'uptime' => $int + array( '#label' => t('Up-time of APC instance'), '#type' => MUNIN_API_GAUGE, '#info' => t('Seconds since last APC restart.'), ), 'num_hits' => $int + array( '#label' => t('Hits since last restart'), '#type' => MUNIN_API_COUNTER, ), 'num_misses' => $int + array( '#label' => t('Misses since last restart'), '#type' => MUNIN_API_COUNTER, ), 'num_inserts' => $int + array( '#label' => t('Insertions since last restart'), '#type' => MUNIN_API_COUNTER, ), // 'hit_rate' => $int + array( // '#label' => t('Hit/miss ratio since last restart'), // '#type' => MUNIN_API_GAUGE, // ), 'cache_entries' => $int + array( '#label' => t('Number of cache entries'), '#type' => MUNIN_API_GAUGE, ), 'deleted_entries' => $int + array( '#label' => t('Number of deleted entries'), '#type' => MUNIN_API_GAUGE, '#info' => t('Deleted entries lingering until the garbage collection TTL elapses'), ), ), ); return $ret; } /** * Implements hook_munin_api_fetch(). */ function munin_apc_munin_api_fetch() { $info = apc_sma_info(); $ret = array(); // SMA Info $total = $info['num_seg'] * $info['seg_size']; $ret['total_size'] = (int) $total; $ret['used_size'] = (int) ($total - $info['avail_mem']); // Cache info $info = apc_cache_info(); $ret['uptime'] = time() - $info['start_time']; foreach (array('num_hits', 'num_misses', 'num_inserts') as $field) { $ret[$field] = $info[$field]; } $ret['cache_entries'] = count($info['cache_list']); $ret['deleted_entries'] = count($info['deleted_list']); return $ret; }