我正在使用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
答案 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
。