Exemple #1
0
<?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');
                }
            }
        }
    }
}
Exemple #2
0
 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'));
}
Exemple #5
0
<?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
        }
    }
}