Changeset 579

Show
Ignore:
Timestamp:
05/13/07 19:34:22 (2 years ago)
Author:
chtekk
Message:

Integrated load information into vx.status.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/vcc/vcc/status.c

    r548 r579  
    5151        xmlrpc_value *result; 
    5252        int running, nproc, uptime; 
     53        char *loadavg1m, *loadavg5m, *loadavg15m; 
    5354 
    5455        if (argc < 1) 
     
    6162 
    6263        xmlrpc_decompose_value(env, result, 
    63                 "{s:i,s:i,s:i,*}", 
     64                "{s:i,s:i,s:i,s:s,s:s,s:s,*}", 
    6465                "running", &running, 
    6566                "nproc", &nproc, 
    66                 "uptime", &uptime); 
     67                "uptime", &uptime, 
     68                "load1m", &loadavg1m, 
     69                "load5m", &loadavg5m, 
     70                "load15m", &loadavg15m); 
    6771        return_if_fault(env); 
    6872 
     
    7680                printf("nproc: %d\n", nproc); 
    7781                printf("uptime: %s\n", pretty_uptime(uptime)); 
     82                printf("load average: %s, %s, %s\n", loadavg1m, loadavg5m, loadavg15m); 
    7883        } 
    7984} 
  • trunk/src/vcd/methods/vx/vx_status.c

    r524 r579  
    2525 
    2626#include <lucid/log.h> 
     27#include <lucid/printf.h> 
     28 
     29static 
     30char *pretty_load(int load) 
     31{ 
     32        char *buf = NULL; 
     33 
     34        asprintf(&buf, "%d.%02d", load >> 11, ((load & ((1 << 11) - 1)) * 100) >> 11); 
     35 
     36        return buf; 
     37} 
    2738 
    2839/* vx.status(string name) */ 
     
    3546        xid_t xid; 
    3647        int running = 0, nproc = 0, uptime = 0; 
     48        char *loadavg1m = NULL, *loadavg5m = NULL, *loadavg15m = NULL; 
    3749 
    3850        params = method_init(env, p, c, VCD_CAP_INFO, M_OWNER); 
     
    5264                        nproc = 0; 
    5365                        uptime = 0; 
     66                        loadavg1m = "0"; 
     67                        loadavg5m = "0"; 
     68                        loadavg15m = "0"; 
    5469                } 
    5570 
     
    7489                        nproc = (int) limnproc.value; 
    7590                        uptime = statb.uptime/1000000000; 
     91                        loadavg1m = pretty_load(statb.load[0]); 
     92                        loadavg5m = pretty_load(statb.load[1]); 
     93                        loadavg15m = pretty_load(statb.load[2]); 
    7694                } 
    7795        } 
    7896 
    79         response = xmlrpc_build_value(env, "{s:i,s:i,s:i}", 
     97        response = xmlrpc_build_value(env, "{s:i,s:i,s:i,s:s,s:s,s:s}", 
    8098                                "running", running, 
    8199                                "nproc", nproc, 
    82                                 "uptime", uptime); 
     100                                "uptime", uptime, 
     101                                "load1m", loadavg1m, 
     102                                "load5m", loadavg5m, 
     103                                "load15m", loadavg15m); 
    83104 
    84105        return response;