diff --git a/qa/1653.out b/qa/1653.out index 6d56aec291..010ca99877 100644 --- a/qa/1653.out +++ b/qa/1653.out @@ -8,7 +8,7 @@ QA output created by 1653 Updating the Performance Metrics Name Space (PMNS) ... Terminate PMDA if already installed ... Updating the PMCD control file, and notifying PMCD ... -Check denki metrics have appeared ... 5 metrics and 4 values +Check denki metrics have appeared ... 4 metrics and 4 values denki.rapl Data Type: 64-bit unsigned int InDom: 156.0 0x27000000 @@ -23,26 +23,20 @@ denki.rapl inst [3 or "1-core"] value 8334 inst [0 or "0-package-1"] value 8826 -denki.bat.energy_now_raw +denki.bat.energy_now Data Type: double InDom: 156.1 0x27000001 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt hours","userid":USERID} No value(s) available! -denki.bat.energy_now_rate - Data Type: double InDom: 156.2 0x27000002 - Semantics: instant Units: none - labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} -No value(s) available! - denki.bat.power_now - Data Type: double InDom: 156.3 0x27000003 + Data Type: double InDom: 156.2 0x27000002 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} No value(s) available! denki.bat.capacity - Data Type: 32-bit int InDom: 156.4 0x27000004 + Data Type: 32-bit int InDom: 156.3 0x27000003 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"percent","userid":USERID} No value(s) available! @@ -52,7 +46,7 @@ No value(s) available! Updating the Performance Metrics Name Space (PMNS) ... Terminate PMDA if already installed ... Updating the PMCD control file, and notifying PMCD ... -Check denki metrics have appeared ... 5 metrics and 4 values +Check denki metrics have appeared ... 4 metrics and 3 values denki.rapl Data Type: 64-bit unsigned int InDom: 156.0 0x27000000 @@ -60,29 +54,22 @@ denki.rapl labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","indom_name":"rapl","machineid":"MACHINEID","userid":USERID} No value(s) available! -denki.bat.energy_now_raw +denki.bat.energy_now Data Type: double InDom: 156.1 0x27000001 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt hours","userid":USERID} inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt hours","userid":USERID} inst [N or BATTERY-N"] value 15.23 -denki.bat.energy_now_rate - Data Type: double InDom: 156.2 0x27000002 - Semantics: instant Units: none - labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} - inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} - inst [N or BATTERY-N"] value 0 - denki.bat.power_now - Data Type: double InDom: 156.3 0x27000003 + Data Type: double InDom: 156.2 0x27000002 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} - inst [N or BATTERY-N"] value 4.077 + inst [N or BATTERY-N"] value 18446744073705.47 denki.bat.capacity - Data Type: 32-bit int InDom: 156.4 0x27000004 + Data Type: 32-bit int InDom: 156.3 0x27000003 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"percent","userid":USERID} inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"percent","userid":USERID} @@ -93,7 +80,7 @@ denki.bat.capacity Updating the Performance Metrics Name Space (PMNS) ... Terminate PMDA if already installed ... Updating the PMCD control file, and notifying PMCD ... -Check denki metrics have appeared ... 5 metrics and 12 values +Check denki metrics have appeared ... 4 metrics and 10 values denki.rapl Data Type: 64-bit unsigned int InDom: 156.0 0x27000000 @@ -108,7 +95,7 @@ denki.rapl inst [3 or "dram"] value 2120 inst [0 or "package-0"] value 2977 -denki.bat.energy_now_raw +denki.bat.energy_now Data Type: double InDom: 156.1 0x27000001 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt hours","userid":USERID} @@ -117,17 +104,8 @@ denki.bat.energy_now_raw inst [N or BATTERY-N"] value 14.94 inst [N or BATTERY-N"] value 15.87 -denki.bat.energy_now_rate - Data Type: double InDom: 156.2 0x27000002 - Semantics: instant Units: none - labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} - inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} - inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} - inst [N or BATTERY-N"] value 0 - inst [N or BATTERY-N"] value 0 - denki.bat.power_now - Data Type: double InDom: 156.3 0x27000003 + Data Type: double InDom: 156.2 0x27000002 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} @@ -136,7 +114,7 @@ denki.bat.power_now inst [N or BATTERY-N"] value 1.576 denki.bat.capacity - Data Type: 32-bit int InDom: 156.4 0x27000004 + Data Type: 32-bit int InDom: 156.3 0x27000003 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"percent","userid":USERID} inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"percent","userid":USERID} @@ -149,7 +127,7 @@ denki.bat.capacity Updating the Performance Metrics Name Space (PMNS) ... Terminate PMDA if already installed ... Updating the PMCD control file, and notifying PMCD ... -Check denki metrics have appeared ... 5 metrics and 8 values +Check denki metrics have appeared ... 4 metrics and 7 values denki.rapl Data Type: 64-bit unsigned int InDom: 156.0 0x27000000 @@ -164,29 +142,22 @@ denki.rapl inst [2 or "uncore"] value 2711 inst [3 or "dram"] value 7743 -denki.bat.energy_now_raw +denki.bat.energy_now Data Type: double InDom: 156.1 0x27000001 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt hours","userid":USERID} inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt hours","userid":USERID} inst [N or BATTERY-N"] value 34.71 -denki.bat.energy_now_rate - Data Type: double InDom: 156.2 0x27000002 - Semantics: instant Units: none - labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} - inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} - inst [N or BATTERY-N"] value 0 - denki.bat.power_now - Data Type: double InDom: 156.3 0x27000003 + Data Type: double InDom: 156.2 0x27000002 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"watt","userid":USERID} inst [N or BATTERY-N"] value 26.439 denki.bat.capacity - Data Type: 32-bit int InDom: 156.4 0x27000004 + Data Type: 32-bit int InDom: 156.3 0x27000003 Semantics: instant Units: none labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"percent","userid":USERID} inst [N or BATTERY-N"] labels {"agent":"denki","domainname":"DOMAINNAME","groupid":GROUPID,"hostname":"HOSTNAME","machineid":"MACHINEID","units":"percent","userid":USERID} diff --git a/src/pmdas/denki/README b/src/pmdas/denki/README index 4f8ac59802..bcdf8e92bd 100644 --- a/src/pmdas/denki/README +++ b/src/pmdas/denki/README @@ -58,9 +58,9 @@ Troubleshooting Usage scenarios/examples ======================== - - denki.rapl.rate: + - denki.rapl: - If RAPL is available, denki.rapl.rate can give an estimation of + If RAPL is available, denki.rapl can give an estimation of the current power consumption. On laptops, typically 4 RAPL domains are available: @@ -69,9 +69,8 @@ Usage scenarios/examples inst [2 or "uncore"] - typically GPU, if on motherboard inst [3 or "dram"] - memory - When accessed with 'pmrep denki.rapl.rate', these values can - be used to compare for example power consumption of various - webbrowsers while playing a video or webgl sites. One can + These values can be used to compare for example power consumption of + various web browsers while playing a video or webgl sites. One can also verify if offloading to the GPU is working. On systems with multiple numa zones, also multiple RAPL @@ -79,21 +78,7 @@ Usage scenarios/examples with these. For these, i.e. domains 0-package-0 and 1-package-0 will become available as instances. - - denki.rapl.raw: - - If RAPL is available, this provides the raw values from the - kernel. These can be utilized for more accurate power con- - sumption comparisons. Example workflow: - - 1) query the values, i.e. using 'pminfo denki.rapl.raw' - 2) run your workload - 3) query the current values again, use the values from 1) - and the time between 1) and 3) to compute the overall - consumption. - 4) Perform 1) to 3) again, with a different software or - a different software version. - - - denki.bat.energy_now_raw: + - denki.bat.energy_now: If battery readings are available, this metric has the current reading, so the charge level of the battery. @@ -118,3 +103,7 @@ Usage scenarios/examples system consumption. This is computed by firmware/driver, and much more frequently updated than denki.bat.energy_now_rate. + + - denki.bat.capacity: + + This metric reports the fillstate of the battery in percent. diff --git a/src/pmdas/denki/denki.c b/src/pmdas/denki/denki.c index be0385f307..597708d7fd 100644 --- a/src/pmdas/denki/denki.c +++ b/src/pmdas/denki/denki.c @@ -2,7 +2,7 @@ * Denki (電気, Japanese for 'electricity'), PMDA for electricity related * metrics * - * Copyright (c) 2012-2014,2017,2021,2022 Red Hat. + * Copyright (c) 2012-2014,2017,2021-2023 Red Hat. * Copyright (c) 1995,2004 Silicon Graphics, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it @@ -31,19 +31,19 @@ #define MAX_CPUS 2147483648 #define MAX_BATTERIES 8 -static int has_rapl = 0, has_bat = 0; /* Has the system any rapl or battery? */ +static int has_rapl = 0, has_bat = 0; /* Has the system any rapl or battery? */ -static int total_cores, total_packages; /* detected cpu cores and rapl packages */ +static int total_cores, total_packages; /* detected cpu cores and rapl packages */ static int package_map[MAX_PACKAGES]; char event_names[MAX_PACKAGES][MAX_RAPL_DOMAINS][256]; /* rapl domain names */ uint64_t raplvars[MAX_PACKAGES][MAX_RAPL_DOMAINS]; /* rapl domain readings */ static int valid[MAX_PACKAGES][MAX_RAPL_DOMAINS]; /* Is this rapl domain valid? */ static char filenames[MAX_PACKAGES][MAX_RAPL_DOMAINS][256]; /* pathes to the rapl domains */ -static int detect_rapl_packages(void); /* detect RAPL packages, cpu cores */ -static int detect_rapl_domains(void); /* detect RAPL domains */ +static int detect_rapl_packages(void); /* detect RAPL packages, cpu cores */ +static int detect_rapl_domains(void); /* detect RAPL domains */ uint64_t lookup_rapl_dom(int); /* map instance to 2-dimensional domain matrix */ -static int read_rapl(void); /* read RAPL values */ +static int read_rapl(void); /* read RAPL values */ static char rootpath[MAXPATHLEN] = "/"; /* path to rootpath, gets changed for regression tests */ @@ -160,28 +160,25 @@ static int read_rapl(void) { -int batteries = 0; /* How many batteries has this system? */ -static int battery_comp_rate = 60; /* timespan in sec, after which we recompute energy_rate_d */ +int batteries = 0; /* How many batteries has this system? + Careful with battery counting! + If we have one battery (batteries==1), that battery data + is in energy_now[0], power_now[0] and so on. */ - /* Careful with battery counting! - If we have one battery (batteries==1), that battery data - is in energy_now[0], power_now[0] and so on. */ +uint64_t energy_now[MAX_BATTERIES]; /* /energy_now or /charge_now readings */ +uint64_t energy_now_old[MAX_BATTERIES]; +uint64_t power_now[MAX_BATTERIES]; /* /power_now readings, driver computed power consumption */ +int capacity[MAX_BATTERIES]; /* /capacity readings, percentage of original capacity */ -long long energy_now[MAX_BATTERIES]; /* /energy_now or /charge_now readings */ -long long energy_now_old[MAX_BATTERIES]; -long long power_now[MAX_BATTERIES]; /* /power_now readings, driver computed power consumption */ -int capacity[MAX_BATTERIES]; /* /capacity readings, percentage of original capacity */ - -time_t secondsnow, secondsold; /* time stamps, to understand if we need to recompute */ +time_t secondsnow, secondsold; /* time stamps, to understand if we need to recompute */ double energy_diff_d[MAX_BATTERIES], energy_rate_d[MAX_BATTERIES]; /* amount of used energy / computed energy consumption */ char battery_basepath[MAX_BATTERIES][512]; /* path to the batteries */ char energy_now_file[MAX_BATTERIES][512]; /* energy now file, different between models */ -double energy_convert_factor[MAX_BATTERIES]; /* factor for fixing /energy_now / charge_now to kwh */ +double energy_convert_factor[MAX_BATTERIES]; /* factor for fixing /energy_now / charge_now to kwh */ static int detect_batteries(void); /* detect batteries */ static int read_batteries(void); /* read battery values */ -static int compute_energy_rate(void); /* compute discharge rate from battery values */ /* detect batteries */ static int detect_batteries(void) { @@ -302,7 +299,7 @@ static int read_batteries(void) { pmNotifyErr(LOG_DEBUG, "battery path has no %s file.",filename); continue; } - if ( fscanf(fff,"%lld",&energy_now[bat]) != 1) + if ( fscanf(fff,"%" FMT_UINT64,&energy_now[bat]) != 1) if (pmDebugOptions.appl0) pmNotifyErr(LOG_DEBUG, "Could not read %s.",filename); fclose(fff); @@ -315,7 +312,7 @@ static int read_batteries(void) { pmNotifyErr(LOG_DEBUG, "battery path has no %s file.",filename); continue; } - if ( fscanf(fff,"%lld",&power_now[bat]) != 1) + if ( fscanf(fff,"%" FMT_UINT64,&power_now[bat]) != 1) if (pmDebugOptions.appl0) pmNotifyErr(LOG_DEBUG, "Could not read %s.",filename); fclose(fff); @@ -341,47 +338,12 @@ static int read_batteries(void) { return 0; } -/* compute energy consumption from /energy_now values */ -static int compute_energy_rate(void) { - - int i; - secondsnow = time(NULL); - - // Special handling for first call after starting pmda-denki - if ( secondsold == 0) { - secondsold = secondsnow; - for (i=0; i= battery_comp_rate ) { - for (i=0; i/energy_now raw reading, - * current battery charge in Wh - * denki.bat.energy_now_rate - , current rate of discharging if postive value, - * or current charging rate if negative value + * denki.bat.energy_now - /energy_now raw reading, + * current battery charge in Wh * denki.bat.power_now - /power_now raw reading * denki.bat.capacity - /capacity raw reading */ @@ -396,20 +358,17 @@ static int compute_energy_rate(void) { static pmdaIndom indomtab[] = { #define RAPL_INDOM 0 /* serial number for RAPL instance domain */ { RAPL_INDOM, 0, NULL }, -#define ENERGYNOWRAW_INDOM 1 /* serial number for "energy_now_raw" instance domain */ - { ENERGYNOWRAW_INDOM, 0, NULL }, -#define ENERGYNOWRATE_INDOM 2 /* serial number for "energy_now_rate" instance domain */ - { ENERGYNOWRATE_INDOM, 0, NULL }, -#define POWERNOW_INDOM 3 /* serial number for "power_now" instance domain */ +#define ENERGYNOW_INDOM 1 /* serial number for energy_now instance domain */ + { ENERGYNOW_INDOM, 0, NULL }, +#define POWERNOW_INDOM 2 /* serial number for power_now instance domain */ { POWERNOW_INDOM, 0, NULL }, -#define CAPACITY_INDOM 4 /* serial number for "capacity" instance domain */ +#define CAPACITY_INDOM 3 /* serial number for capacity instance domain */ { CAPACITY_INDOM, 0, NULL } }; /* this is merely a convenience */ static pmInDom *rapl_indom = &indomtab[RAPL_INDOM].it_indom; -static pmInDom *energynowraw_indom = &indomtab[ENERGYNOWRAW_INDOM].it_indom; -static pmInDom *energynowrate_indom = &indomtab[ENERGYNOWRATE_INDOM].it_indom; +static pmInDom *energynow_indom = &indomtab[ENERGYNOW_INDOM].it_indom; static pmInDom *powernow_indom = &indomtab[POWERNOW_INDOM].it_indom; static pmInDom *capacity_indom = &indomtab[CAPACITY_INDOM].it_indom; @@ -422,21 +381,17 @@ static pmdaMetric metrictab[] = { { NULL, { PMDA_PMID(0,0), PM_TYPE_U64, RAPL_INDOM, PM_SEM_COUNTER, PMDA_PMUNITS(0,0,0,0,0,0) }, }, -/* bat.energy_now_raw */ +/* bat.energy_now */ { NULL, - { PMDA_PMID(1,0), PM_TYPE_DOUBLE, ENERGYNOWRAW_INDOM, PM_SEM_INSTANT, - PMDA_PMUNITS(0,0,0,0,0,0) }, }, -/* bat.energy_now_rate */ - { NULL, - { PMDA_PMID(1,1), PM_TYPE_DOUBLE, ENERGYNOWRATE_INDOM, PM_SEM_INSTANT, + { PMDA_PMID(1,0), PM_TYPE_DOUBLE, ENERGYNOW_INDOM, PM_SEM_INSTANT, PMDA_PMUNITS(0,0,0,0,0,0) }, }, /* bat.power_now */ { NULL, - { PMDA_PMID(1,2), PM_TYPE_DOUBLE, POWERNOW_INDOM, PM_SEM_INSTANT, + { PMDA_PMID(1,1), PM_TYPE_DOUBLE, POWERNOW_INDOM, PM_SEM_INSTANT, PMDA_PMUNITS(0,0,0,0,0,0) }, }, /* bat.capacity */ { NULL, - { PMDA_PMID(1,3), PM_TYPE_32, CAPACITY_INDOM, PM_SEM_INSTANT, + { PMDA_PMID(1,2), PM_TYPE_32, CAPACITY_INDOM, PM_SEM_INSTANT, PMDA_PMUNITS(0,0,0,0,0,0) }, } }; @@ -520,23 +475,15 @@ denki_fetchCallBack(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom) } else if (cluster == 1) { switch (item) { - case 0: /* denki.energy_now_raw */ - if ((sts = pmdaCacheLookup(*energynowraw_indom, inst, NULL, NULL)) != PMDA_CACHE_ACTIVE) { + case 0: /* denki.energy_now */ + if ((sts = pmdaCacheLookup(*energynow_indom, inst, NULL, NULL)) != PMDA_CACHE_ACTIVE) { if (sts < 0) pmNotifyErr(LOG_ERR, "pmdaCacheLookup failed: inst=%d: %s", inst, pmErrStr(sts)); return PM_ERR_INST; } atom->d = energy_now[inst]/energy_convert_factor[inst]; break; - case 1: /* denki.energy_now_rate */ - if ((sts = pmdaCacheLookup(*energynowrate_indom, inst, NULL, NULL)) != PMDA_CACHE_ACTIVE) { - if (sts < 0) - pmNotifyErr(LOG_ERR, "pmdaCacheLookup failed: inst=%d: %s", inst, pmErrStr(sts)); - return PM_ERR_INST; - } - atom->d = energy_rate_d[inst]; - break; - case 2: /* denki.power_now */ + case 1: /* denki.power_now */ if ((sts = pmdaCacheLookup(*powernow_indom, inst, NULL, NULL)) != PMDA_CACHE_ACTIVE) { if (sts < 0) pmNotifyErr(LOG_ERR, "pmdaCacheLookup failed: inst=%d: %s", inst, pmErrStr(sts)); @@ -544,7 +491,7 @@ denki_fetchCallBack(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom) } atom->d = power_now[inst]/1000000.0; break; - case 3: /* denki.capacity */ + case 2: /* denki.capacity */ if ((sts = pmdaCacheLookup(*capacity_indom, inst, NULL, NULL)) != PMDA_CACHE_ACTIVE) { if (sts < 0) pmNotifyErr(LOG_ERR, "pmdaCacheLookup failed: inst=%d: %s", inst, pmErrStr(sts)); @@ -574,7 +521,6 @@ denki_fetch(int numpmid, pmID pmidlist[], pmResult **resp, pmdaExt *pmda) read_rapl(); if (has_bat) { read_batteries(); - compute_energy_rate(); } return pmdaFetch(numpmid, pmidlist, resp, pmda); } @@ -603,7 +549,7 @@ denki_rapl_check(void) } /* - * clear the rapl.rate and rapl.raw metric instance domains + * clear the rapl metric instance domains */ static void denki_rapl_clear(void) @@ -666,21 +612,14 @@ denki_bat_init(void) pmsprintf(tmp,sizeof(tmp),"battery-%d",battery); - /* bat.energynowraw */ - sts = pmdaCacheStore(*energynowraw_indom, PMDA_CACHE_ADD, tmp, NULL); + /* bat.energy_now */ + sts = pmdaCacheStore(*energynow_indom, PMDA_CACHE_ADD, tmp, NULL); if (sts < 0) { pmNotifyErr(LOG_ERR, "pmdaCacheStore failed: %s", pmErrStr(sts)); return; } - /* bat.energynowrate */ - sts = pmdaCacheStore(*energynowrate_indom, PMDA_CACHE_ADD, tmp, NULL); - if (sts < 0) { - pmNotifyErr(LOG_ERR, "pmdaCacheStore failed: %s", pmErrStr(sts)); - return; - } - - /* bat.powernow */ + /* bat.power_now */ sts = pmdaCacheStore(*powernow_indom, PMDA_CACHE_ADD, tmp, NULL); if (sts < 0) { pmNotifyErr(LOG_ERR, "pmdaCacheStore failed: %s", pmErrStr(sts)); @@ -709,12 +648,9 @@ denki_label(int ident, int type, pmLabelSet **lpp, pmdaExt *pmda) case RAPL_INDOM: pmdaAddLabels(lpp, "{\"indom_name\":\"rapl\"}"); break; - case ENERGYNOWRAW_INDOM: + case ENERGYNOW_INDOM: pmdaAddLabels(lpp, "{\"units\":\"watt hours\"}"); break; - case ENERGYNOWRATE_INDOM: - pmdaAddLabels(lpp, "{\"units\":\"watt\"}"); - break; case POWERNOW_INDOM: pmdaAddLabels(lpp, "{\"units\":\"watt\"}"); break; diff --git a/src/pmdas/denki/help b/src/pmdas/denki/help index 51811db2e1..2eed10ad0c 100644 --- a/src/pmdas/denki/help +++ b/src/pmdas/denki/help @@ -29,13 +29,11 @@ @ 156.0 all RAPL components -@ 156.2 set of all batteries reporting charge level +@ 156.1 set of all batteries reporting charge level -@ 156.3 set of all batteries reporting energy consumption +@ 156.2 set of all batteries reporting power -@ 156.4 set of all batteries reporting power - -@ 156.5 set of all batteries reporting capacity +@ 156.3 set of all batteries reporting capacity @ denki.rapl cummulative energy consumption of RAPL components Cummulative electrical power consumption of x86 hardware components @@ -47,16 +45,11 @@ Joules / second, or Watts. The RAPL modules offered by the system are available as metric instances. -@ denki.bat.energy_now_raw battery reported charge level +@ denki.bat.energy_now battery reported charge level The current charge level as reported by the battery. This can be used to calculate overall power consumption of longer running compute loads, with high accuracy. -@ denki.bat.energy_now_rate calculated energy consumption -Systems current energy consumption, calculated by pmda-denki -from battery charge level. Only available while discharging. -Computed every 60 seconds. - @ denki.bat.power_now system calculated energy consumption Systems current energy consumption, calculated by the system. Only available while discharging, or charging the battery. diff --git a/src/pmdas/denki/pmns b/src/pmdas/denki/pmns index 887b39ed77..ff76cd9e0c 100644 --- a/src/pmdas/denki/pmns +++ b/src/pmdas/denki/pmns @@ -20,8 +20,7 @@ denki { } denki.bat { - energy_now_raw DENKI:1:0 - energy_now_rate DENKI:1:1 - power_now DENKI:1:2 - capacity DENKI:1:3 + energy_now DENKI:1:0 + power_now DENKI:1:1 + capacity DENKI:1:2 }