упрощенная выборка и преобразование значений показателей производительности (simplified performance metrics value fetch and conversion)
Необычные ситуации (Unusual situations)
The fetchgroup API supports only the numeric, string and event
metric types. Aggregates are rejected during
pmExtendFetchGroup_*
.
Any strings supplied by the fetchgroup API to the application are
"owned" by the API. The application should consider them read-
only, so it should not modify them nor free
them.
Error codes are always negative integers, whether returned from
fetchgroup functions as return value, or stored in out_sts type
variables. Normal result codes are always zero.
Because of the unique ways in which extracted data is shared
between the application and a fetchgroup, the functions in this
API are not protected by the multi-threading mutexes conventional
in other parts of PMAPI. Specifically, for any given pmFG
, it is
not safe to concurrently call two or more fetchgroup API
functions, nor to traverse the registered output variables while
calling one of the functions. Instead, the calling application
must ensure that only one thread at a time uses these calls and
the registered output variables. On the other hand, concurrency
between different pmFG
instances is unrestricted, because they
share no global data.
Any pointers passed to a successful pmFetchGroupExtent_*
call
must stay valid throughout the lifetime of the fetchgroup, since
future pmFetchGroup
calls may write into them.