c中的mmv_stats_interval_start用法示例

时间:2014-11-19 07:37:21

标签: performance frameworks

我正在使用Performance Co-Pilot(PCP)框架提供的MMV库。我需要定期重置MMV实例中的值。我遇到了PCP的mmv_stats_interval_start()api。请解释这个API如何工作以及如何在间隔过去时收到通知。

mmv_stats_interval_start(void *addr, pmAtomValue *value,
    const char *metric, const char *instance)
{
 if (addr) {
    if (value == NULL)
        value = mmv_lookup_value_desc(addr, metric, instance);
    if (value) {
        struct timeval tv; 
        __pmtimevalNow(&tv);
        mmv_inc_value(addr, value, -(tv.tv_sec*1e6 + tv.tv_usec));
    }   
 }   
 return value;
}

PCP的github页面中的一个例子是mmv_genstats.c

1 个答案:

答案 0 :(得分:1)

mmv_stats_interval_start函数与mmv_stats_interval_end配对,以累积这些调用的匹配对之间的时间间隔(微秒)。请参阅示例http://git.pcp.io/cgi-bin/gitweb.cgi?p=pcp.git;a=blob;f=qa/src/mmv_genstats.c;hb=HEAD

MMV与通知无关,仅与有效公开使用-lpcp_mmv的程序的内部统计数据有关。通知必须来自另一个PCP客户端,例如pmie