munin-contrib/plugins/php/php_apc.php

61 lines
1.5 KiB
PHP
Executable File

<?php
$ret = array();
// Detect APC functions to call.
$apc_fn_name = "";
if(function_exists("apcu_cache_info") && function_exists("apcu_sma_info"))
{
$apc_fn_name = "apcu";
} elseif (function_exists("apc_cache_info") && function_exists("apc_sma_info"))
{
$apc_fn_name = "apc";
}
if(!empty($apc_fn_name))
{
switch ($_GET["act"])
{
case "memory":
$tmp = call_user_func($apc_fn_name . "_sma_info");
$ret["mem_used"] = $tmp["seg_size"]-$tmp["avail_mem"];
$ret["mem_avail"] = $tmp["avail_mem"];
break;
case "hits":
$tmp = call_user_func($apc_fn_name . "_cache_info");
$ret["num_hits"] = $tmp["num_hits"];
$ret["num_misses"] = $tmp["num_misses"];
break;
case "percents":
$tmp = call_user_func($apc_fn_name . "_sma_info");
$ret["memory"] = 100-(($tmp["avail_mem"] / $tmp["seg_size"])*100);
$tmp = apcu_cache_info();
$ret["hits"] = ($tmp["num_hits"] / ( $tmp["num_hits"]+$tmp["num_misses"]) ) * 100;
$ret["misses"] = ($tmp["num_misses"] / ( $tmp["num_hits"]+$tmp["num_misses"]) ) * 100;
break;
}
} else {
switch ($_GET["act"])
{
case "memory":
$ret["mem_size"] = 0;
$ret["mem_used"] = 0;
break;
case "hits":
$ret["num_hits"] = 0;
$ret["num_misses"] = 0;
break;
case "percents":
$ret["memory"] = 0;
$ret["hits"] = 0;
$ret["misses"] = 0;
break;
}
}
foreach($ret as $key => $val) echo "$key.value $val\n";
?>