PMISTART(3) | Library Functions Manual | PMISTART(3) |
pmiStart - establish a new LOGIMPORT context
#include <pcp/pmapi.h>
#include <pcp/import.h>
int pmiStart(const char *archive, int inherit);
cc ... -lpcp_import -lpcp
use PCP::LogImport;
pmiStart($archive, $inherit);
As part of the Performance Co-Pilot Log Import API (see LOGIMPORT(3)), pmiStart creates a new context. Each context maintains the following state and metadata:
If inherit is true, then the new context will inherit any and all metadata (metrics, instance domains, instances and handles) from the current context, otherwise the new context is created with no metadata. The basename for the output PCP archive, the source hostname, the source timezone and any data values from the current context are not inherited. If this is the first call to pmiStart the metadata will be empty independent of the value of inherit.
Since no physical files for the output PCP archive will be created until the first call to pmiWrite(3) or pmiPutRecord(3), archive could be NULL to create a convenience context that is populated with metadata to be inherited by subsequent contexts.
The return value is a context identifier that could be used in a subsequent call to pmUseContext(3) and the new context becomes the current context which persists for all subsequent calls up to either another pmiStart call or a call to pmiUseContext(3) or a call to pmiEnd(3).
It is an error if the physical files archive.0 and/or archive.index and/or archive.meta already exist, but this is not discovered until the first attempt is made to output some data by calling pmiWrite(3) or pmiPutRecord(3), so pmiStart always returns a positive context identifier.
LOGIMPORT(3), pmiAddInstance(3), pmiAddMetric(3), pmiEnd(3), pmiErrStr(3), pmiGetHandle(3), pmiPutResult(3), pmiPutValue(3), pmiPutValueHandle(3), pmiPutText(3), pmiPutLabel(3), pmiSetHostname(3), pmiSetTimezone(3), pmiUseContext(3) and pmiWrite(3).
Performance Co-Pilot |