<?php // 所有running & readable 的instance $base = dirname(__FILE__); $solr_root = substr($base, 0, strrpos($base, 'scripts')); $script_root = $solr_root . "/scripts"; include_once $script_root . "/common.php"; /*running的readable的instance的命中率*/ $instance_list_running = get_instance_list_complex($link, array()); if ($instance_list_running) { foreach ($instance_list_running as $instance) { $url = "http://" . $instance['host_ip'] . ":" . $instance['port_num'] . "/solr/admin/mbeans?stats=true&wt=json"; $result = curl_get_content($url); $result = json_decode($result, true); $cache = isset($result['solr-mbeans'][7]) ? $result['solr-mbeans'][7] : null; if ($cache) { foreach ($cache as $k => $c) { if (isset($c['stats']['hitratio'])) { $hitratio = $c['stats']['hitratio']; add_status_log($link_log, $cfg['idc'], $cfg['default_host'], 'instance', $k, $instance['instance_id'], $hitratio, date('Y-m-d H:i:00'), 'status_log_instance_hits'); } } } } }
public function insert_log($chart, $chart_logs) { switch ($chart['log_name']) { case 'select': switch ($chart['target_type']) { case 'service': $table = 'status_log_service_access'; $log_name = 'select'; break; case 'instance': $table = 'status_log_instance_access'; $log_name = 'select'; break; } break; case 'update': switch ($chart['target_type']) { case 'service': $table = 'status_log_service_access'; $log_name = 'update'; break; } break; case '90': switch ($chart['target_type']) { case 'service': $table = 'status_log_service_calculate'; $log_name = 'millisecond_90'; break; case 'instance': $table = 'status_log_instance_access'; $log_name = 'millisecond_90'; break; } break; case '100ms': switch ($chart['target_type']) { case 'service': $table = 'status_log_service_calculate'; $log_name = 'percent_100'; break; } break; } if ($table && $log_name) { foreach ($chart_logs as $chart_log) { add_status_log($this->link_log, 'office', '-1', $chart['target_type'], $log_name, $chart['target_id'], $chart_log['f_data'], $chart_log['f_time'], $table); } } }
<?php $base = dirname(__FILE__); $solr_root = substr($base, 0, strrpos($base, 'scripts')); $script_root = $solr_root . "/scripts"; include_once $script_root . "/common.php"; $instance_list_running = get_instance_list_complex($link, array()); if ($instance_list_running) { foreach ($instance_list_running as $instance) { $url = "http://" . $instance['host_ip'] . ":" . $instance['port_num'] . "/solr/replication?command=details&wt=json"; $result = curl_get_content($url); $result = json_decode($result, true); $indexSize = isset($result['details']['indexSize']) ? $result['details']['indexSize'] : null; if ($indexSize) { add_status_log($link_log, $cfg['idc'], $cfg['default_host'], 'instance', 'indexsize', $instance['instance_id'], to_m($indexSize), date('Y-m-d H:i:00'), 'status_log_service_indexsize'); } } } /*单位换算*/ function to_m($str) { preg_match("/[0-9.]+/", $str, $i); if (!$i) { return false; } $i = array_pop($i); if (strpos($str, 'M') !== false) { return $i; } if (strpos($str, 'G') !== false) { return $i * 1024;
<?php $base = dirname(__FILE__); $solr_root = substr($base, 0, strrpos($base, 'scripts')); $script_root = $solr_root . "/scripts"; include_once $script_root . "/common.php"; delete_status_current($link_log, 'service', 'docnumber'); $service_list = get_service_list_running($link); foreach ($service_list as $service) { $service_url = $cfg['search_url'] . '/' . $service['service_name'] . '/select/?q=*:*&rows=0&wt=json'; $result = curl_get_content($service_url); $result = @json_decode($result, true); $docnumber = @intval($result['response']['numFound']); add_status_log($link_log, $cfg['idc'], $cfg['default_host'], 'service', 'docnumber', $service['service_id'], $docnumber, date('Y-m-d H:i:00'), 'status_log_service_docnumber'); add_status_current($link_log, 'service', 'docnumber', $service['service_id'], $docnumber, date('Y-m-d H:i:00')); }
<?php $base = dirname(__FILE__); $solr_root = substr($base, 0, strrpos($base, 'scripts')); $script_root = $solr_root . "/scripts"; include_once $script_root . "/common.php"; /*从status.current获得global数据,放到表status_global*/ $global = array('service-docnumber', 'service-select', 'service-update'); $hour = date('Y-m-d H:i:00'); foreach ($global as $g) { $g = explode('-', $g); $log_type = $g[0]; $log_name = $g[1]; if ($log_type && $log_name) { $sql = "select sum(log_value) from status_current where log_type='{$log_type}' and log_name='{$log_name}'"; $log_val = pdo_fetch_column($link_log, $sql); add_status_log($link_log, $cfg['idc'], $cfg['default_host'], 'global', $log_name, 0, $log_val, $hour, 'status_log_global'); } }
<?php $base = dirname(__FILE__); $solr_root = substr($base, 0, strrpos($base, 'scripts')); $script_root = $solr_root . "/scripts"; include_once $script_root . "/common.php"; delete_status_current($link_log, 'instance', 'jvmmem'); /*所有instance的jvmmem*/ $instance_list_running = get_instance_list_complex($link, array()); if ($instance_list_running) { foreach ($instance_list_running as $instance) { $url = "http://" . $instance['host_ip'] . ":" . $instance['port_num'] . "/solr/admin/system?wt=json"; $result = curl_get_content($url); $result = json_decode($result, true); $memory = isset($result['jvm']['memory']) ? $result['jvm']['memory'] : null; if ($memory) { $usedarray = explode(')', array_pop(explode('%', $memory['used']))); $percent = $usedarray[0]; $total = $instance['use_memory']; $used = intval($total * $percent / 100); //echo $percent.' '.$used.'/'.$total."\n"; add_status_log($link_log, $cfg['idc'], $cfg['default_host'], 'instance', 'jvmmem', $instance['instance_id'], $used . '/' . $total, date('Y-m-d H:i:00'), 'status_log_instance_jvmmemory'); //MB add_status_current($link_log, 'instance', 'jvmmem', $instance['instance_id'], $used . '/' . $total, date('Y-m-d H:i:00')); //MB } } }