Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pmconvscale(3) [centos man page]

PMCONVSCALE(3)						     Library Functions Manual						    PMCONVSCALE(3)

NAME
pmConvScale - rescale a performance metric value C SYNOPSIS
#include <pcp/pmapi.h> int pmConvScale(int type, const pmAtomValue *ival, const pmUnits *iunit, pmAtomValue *oval, const pmUnits *ounit); cc ... -lpcp DESCRIPTION
All performance metric values may be encoded in a pmAtomValue union, defined as follows; typedef union { __int32_t l; /* 32-bit signed */ __uint32_t ul; /* 32-bit unsigned */ __int64_t ll; /* 64-bit signed */ __uint64_t ull; /* 64-bit unsigned */ float f; /* 32-bit floating point */ double d; /* 64-bit floating point */ char *cp; /* char ptr */ pmValueBlock *vbp; /* pmValueBlock ptr */ } pmAtomValue; The encoding of a performance metric's dimensionality and scale uses a pmUnits structure; see pmLookupDesc(3). Given a performance metric value pointed to by ival multiply it by a scale factor and return the value in oval. The scaling takes place from the units defined by iunit into the units defined by ounit. Both input and output units must have the same dimensionality. The performance metric type for both input and output values is determined by type, the value for which is typically extracted from a pmDe- sc structure, following a call to pmLookupDesc(3) for a particular performance metric. pmConvScale is most useful when values returned via pmFetch(3), (and possibly extracted using pmExtractValue(3)) need to be normalized into some canonical scale and units for the purposes of computation. As a special case, if all components of the dimension are zero, then this is treated as synonymous with a ``count'' dimension of one, and so the ``count'' scale components determine the relative scaling. This accommodates the case where performance metrics are dimensionless, without special case handling on the part of the caller. SEE ALSO
PMAPI(3), pmAtomStr(3), pmExtractValue(3), pmFetch(3), pmLookupDesc(3), pmPrintValue(3), pmTypeStr(3) and pmUnitsStr(3). DIAGNOSTICS
PM_ERR_CONV iunit and ounit have different dimensionality, or have inappropriate type PM_ERR_UNIT Inappropriate iunit or ounit parameter Performance Co-Pilot PCP PMCONVSCALE(3)

Check Out this Related Man Page

PMATOMSTR(3)						     Library Functions Manual						      PMATOMSTR(3)

NAME
pmAtomStr, pmAtomStr_r - convert a performance metric value into a string C SYNOPSIS
#include <pcp/pmapi.h> const char *pmAtomStr(const pmAtomValue *avp, int type); char *pmAtomStr_r(const pmAtomValue *avp, int type, char *buf, int buflen); cc ... -lpcp DESCRIPTION
All performance metric values may be encoded in a pmAtomValue union, defined as follows; typedef union { __int32_t l; /* 32-bit signed */ __uint32_t ul; /* 32-bit unsigned */ __int64_t ll; /* 64-bit signed */ __uint64_t ull; /* 64-bit unsigned */ float f; /* 32-bit floating point */ double d; /* 64-bit floating point */ char *cp; /* char ptr */ pmValueBlock *vbp; /* pmValueBlock ptr */ } pmAtomValue; Given the performance metric value pointed to by avp, and a performance metric type defined by type, pmAtomStr will generate the corre- sponding metric value as a string, suitable for diagnostic or report output. The pmAtomStr_r function does the same, but stores the result in a user-supplied buffer buf of length buflen, which should have room for at least 80 bytes. The value for type is typically extracted from a pmDesc structure, following a call to pmLookupDesc(3) for a particular performance metric. If the type is PM_TYPE_STRING values longer than 38 characters will be truncated after 34 characters, and truncation shown with ellipsis ``...'' at the end of the value. If the type is PM_TYPE_AGGREGATE then up to the first three 32-bit words are displayed as hexadecimal values. If the type is PM_TYPE_EVENT then a summary of the number of event records found in the value is generated. The return value from pmAtomStr is held in a single static buffer, so the returned value is only valid until the next call to pmAtomStr. NOTES
pmAtomStr returns a pointer to a static buffer and hence is not thread-safe. Multi-threaded applications should use pmAtomStr_r instead. SEE ALSO
PMAPI(3), pmConvScale(3), pmExtractValue(3), pmLookupDesc(3), pmPrintValue(3), pmTypeStr(3) and pmUnitsStr(3). Performance Co-Pilot PCP PMATOMSTR(3)
Man Page