コード例 #1
0
ファイル: nc_stats.c プロジェクト: danchaofan/bilitw
static rstatus_t
stats_add_header(struct stats *st)
{
    rstatus_t status;
    struct stats_buffer *buf;
    int64_t cur_ts, uptime;

    buf = &st->buf;
    buf->data[0] = '{';
    buf->len = 1;

    cur_ts = (int64_t)time(NULL);
    uptime = cur_ts - st->start_ts;

    status = stats_add_string(st, &st->service_str, &st->service);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_string(st, &st->source_str, &st->source);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_string(st, &st->version_str, &st->version);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_num(st, &st->uptime_str, uptime);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_num(st, &st->timestamp_str, cur_ts);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_num(st, &st->ntotal_conn_str, conn_ntotal_conn());
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_num(st, &st->ncurr_conn_str, conn_ncurr_conn());
    if (status != NC_OK) {
        return status;
    }

    return NC_OK;
}
コード例 #2
0
ファイル: dyn_stats.c プロジェクト: logikal/dynomite
static rstatus_t
stats_add_header(struct stats *st)
{
    rstatus_t status;
    struct stats_buffer *buf;
    int64_t cur_ts, uptime;

    buf = &st->buf;
    buf->data[0] = '{';
    buf->len = 1;

    cur_ts = (int64_t)time(NULL);
    uptime = cur_ts - st->start_ts;

    status = stats_add_string(st, &st->service_str, &st->service);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_string(st, &st->source_str, &st->source);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_string(st, &st->version_str, &st->version);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->uptime_str, uptime);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->timestamp_str, cur_ts);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_string(st, &st->rack_str, &st->rack);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_string(st, &st->dc_str, &st->dc);
    if (status != DN_OK) {
        return status;
    }

    //latency histogram
    status = stats_add_num(st, &st->latency_max_str, st->latency_histo.val_max);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->latency_999th_str, st->latency_histo.val_999th);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->latency_99th_str, st->latency_histo.val_99th);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->latency_95th_str, st->latency_histo.val_95th);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->latency_mean_str, st->latency_histo.mean);
    if (status != DN_OK) {
        return status;
    }

    //payload size histogram
    status = stats_add_num(st, &st->payload_size_max_str, st->payload_size_histo.val_max);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->payload_size_999th_str, st->payload_size_histo.val_999th);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->payload_size_99th_str, st->payload_size_histo.val_99th);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->payload_size_95th_str, st->payload_size_histo.val_95th);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->payload_size_mean_str, st->payload_size_histo.mean);
    if (status != DN_OK) {
        return status;
    }

    status = stats_add_num(st, &st->alloc_msgs_str, st->alloc_msgs);
    if (status != DN_OK) {
        return status;
    }

    return DN_OK;
}
コード例 #3
0
ファイル: nc_stats.c プロジェクト: dzch/twemproxy
static rstatus_t
stats_add_header(struct stats *st)
{
    rstatus_t status;
    struct stats_buffer *buf;
    int64_t cur_ts, uptime;
    struct rusage ru;

    buf = &st->buf;
    buf->data[0] = '{';
    buf->len = 1;

    cur_ts = (int64_t)time(NULL);
    uptime = cur_ts - st->start_ts;

    getrusage(RUSAGE_SELF, &ru);

    status = stats_add_string(st, &st->service_str, &st->service);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_string(st, &st->source_str, &st->source);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_string(st, &st->version_str, &st->version);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_num(st, &st->uptime_str, uptime);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_num(st, &st->timestamp_str, cur_ts);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_float(st, &st->used_cpu_user_str, (float)ru.ru_utime.tv_sec + (float)ru.ru_utime.tv_usec/100000);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_float(st, &st->used_cpu_sys_str, (float)ru.ru_stime.tv_sec + (float)ru.ru_stime.tv_usec/1000000);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_num(st, &st->voluntary_switches_str, ru.ru_nvcsw);
    if (status != NC_OK) {
        return status;
    }

    status = stats_add_num(st, &st->involuntary_switches_str, ru.ru_nivcsw);
    if (status != NC_OK) {
        return status;
    }
    
    return NC_OK;
}