From a9a7667024806c1f8c7491fa75ce0f46aa895723 Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Thu, 8 Apr 2021 13:39:44 +1000 Subject: [PATCH] Fix PCP issues found by Sebastien during code review - Resolve duplication of kernel.all.nprocs by switching one over to kernel.all.sysfork to match Linux PCP - Add total physical memory metrics - Fix units metadata for the kernel.all.nptys metric - Drop not-yet-used network interface metric defitions (speed, baudrate, duplex) - Correct the spelling of "celsius" - Resolve confusion with rq_ticks/rd_ticks disk fields Relates to https://github.com/sysstat/sysstat/pull/287 --- pcp_def_metrics.c | 30 +++++++++++++----------------- pcp_stats.c | 14 ++++++++++---- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/pcp_def_metrics.c b/pcp_def_metrics.c index ec7a6d3..1bd51ec 100644 --- a/pcp_def_metrics.c +++ b/pcp_def_metrics.c @@ -233,9 +233,9 @@ void pcp_def_pcsw_metrics(void) pmiID(60, 0, 13), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER, pmiUnits(0, 0, 1, 0, 0, PM_COUNT_ONE)); - pmiAddMetric("kernel.all.nprocs", - pmiID(60, 2, 3), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT, - pmiUnits(0, 0, 0, 0, 0, 0)); + pmiAddMetric("kernel.all.sysfork", + pmiID(60, 0, 14), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER, + pmiUnits(0, 0, 1, 0, 0, PM_COUNT_ONE)); #endif /* HAVE_PCP */ } @@ -391,6 +391,14 @@ void pcp_def_memory_metrics(struct activity *a) #ifdef HAVE_PCP if (DISPLAY_MEMORY(a->opt_flags)) { + pmiAddMetric("hinv.physmem", + pmiID(60, 1, 9), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE, + pmiUnits(1, 0, 0, PM_SPACE_MBYTE, 0, 0)); + + pmiAddMetric("mem.physmem", + pmiID(60, 1, 0), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE, + pmiUnits(1, 0, 0, PM_SPACE_KBYTE, 0, 0)); + pmiAddMetric("mem.util.free", pmiID(60, 1, 2), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(1, 0, 0, PM_SPACE_KBYTE, 0, 0)); @@ -490,7 +498,7 @@ void pcp_def_ktables_metrics(void) pmiAddMetric("kernel.all.nptys", pmiID(60, 72, 3), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT, - pmiUnits(0, 0, 1, 0, 0, PM_COUNT_ONE)); + pmiUnits(0, 0, 0, 0, 0, 0)); #endif /* HAVE_PCP */ } @@ -657,18 +665,6 @@ void pcp_def_net_dev_metrics(struct activity *a) pmiAddMetric("network.interface.in.mcasts", pmiID(60, 3, 7), PM_TYPE_U64, indom, PM_SEM_COUNTER, pmiUnits(0, 0, 1, 0, 0, PM_COUNT_ONE)); - - pmiAddMetric("network.interface.speed", - pmiID(60, 3, 22), PM_TYPE_FLOAT, indom, PM_SEM_DISCRETE, - pmiUnits(1, -1, 0, PM_SPACE_MBYTE, PM_TIME_SEC, 0)); - - pmiAddMetric("network.interface.baudrate", - pmiID(60, 3, 23), PM_TYPE_U64, indom, PM_SEM_DISCRETE, - pmiUnits(1, -1, 0, PM_SPACE_BYTE, PM_TIME_SEC, 0)); - - pmiAddMetric("network.interface.duplex", - pmiID(60, 3, 24), PM_TYPE_U32, indom, PM_SEM_DISCRETE, - pmiUnits(0, 0, 0, 0, 0, 0)); } else { /* Create metrics for A_NET_EDEV */ @@ -1544,7 +1540,7 @@ void pcp_def_pwr_temp_metrics(struct activity *a) } } - pmiAddMetric("power.temp.celcius", + pmiAddMetric("power.temp.celsius", pmiID(34, 1, 0), PM_TYPE_FLOAT, indom, PM_SEM_INSTANT, pmiUnits(0, 0, 0, 0, 0, 0)); diff --git a/pcp_stats.c b/pcp_stats.c index 2d84a73..bcc1ed4 100644 --- a/pcp_stats.c +++ b/pcp_stats.c @@ -185,7 +185,7 @@ __print_funct_t pcp_print_pcsw_stats(struct activity *a, int curr) pmiPutValue("kernel.all.pswitch", NULL, buf); snprintf(buf, sizeof(buf), "%lu", spc->processes); - pmiPutValue("kernel.all.nprocs", NULL, buf); + pmiPutValue("kernel.all.sysfork", NULL, buf); #endif /* HAVE_PCP */ } @@ -352,6 +352,12 @@ __print_funct_t pcp_print_memory_stats(struct activity *a, int curr) if (DISPLAY_MEMORY(a->opt_flags)) { + snprintf(buf, sizeof(buf), "%lu", (unsigned long)(smc->tlmkb >> 10)); + pmiPutValue("hinv.physmem", NULL, buf); + + snprintf(buf, sizeof(buf), "%llu", smc->tlmkb); + pmiPutValue("mem.physmem", NULL, buf); + snprintf(buf, sizeof(buf), "%llu", smc->frmkb); pmiPutValue("mem.util.free", NULL, buf); @@ -526,10 +532,10 @@ __print_funct_t pcp_print_disk_stats(struct activity *a, int curr) snprintf(buf, sizeof(buf), "%llu", (unsigned long long) sdc->dc_sect / 2); pmiPutValue("disk.dev.discard_bytes", dev_name, buf); - snprintf(buf, sizeof(buf), "%lu", (unsigned long) sdc->rq_ticks + sdc->wr_ticks); + snprintf(buf, sizeof(buf), "%lu", (unsigned long) sdc->rd_ticks + sdc->wr_ticks); pmiPutValue("disk.dev.total_rawactive", dev_name, buf); - snprintf(buf, sizeof(buf), "%lu", (unsigned long) sdc->rq_ticks); + snprintf(buf, sizeof(buf), "%lu", (unsigned long) sdc->rd_ticks); pmiPutValue("disk.dev.read_rawactive", dev_name, buf); snprintf(buf, sizeof(buf), "%lu", (unsigned long) sdc->wr_ticks); @@ -1502,7 +1508,7 @@ __print_funct_t pcp_print_pwr_temp_stats(struct activity *a, int curr) sprintf(instance, "temp%d", i + 1); snprintf(buf, sizeof(buf), "%f", spc->temp); - pmiPutValue("power.temp.celcius", instance, buf); + pmiPutValue("power.temp.celsius", instance, buf); snprintf(buf, sizeof(buf), "%f", (spc->temp_max - spc->temp_min) ? -- 2.40.0