PMIWRITE(3)

NAME
pmiWrite, pmiWriteNow - flush data to a LOGIMPORT archive

C SYNOPSIS
#include <pcp/pmapi.h>
#include <pcp/import.h>

int pmiWrite(unsigned long long sec, unsigned int nsec);
int pmiWriteNow(void);

cc ... -lpcp_import -lpcp

Perl SYNOPSIS
use PCP::LogImport;

pmiWrite($sec, $nsec);
pmiWriteNow();

Python SYNOPSIS
from pcp import pmi

log.pmiWrite(sec, nsec)

DESCRIPTION
As part of the Performance Co-Pilot Log Import API (see LOGIMPORT(3)), these routines flush accumulated data values out to the PCP archive.

The data values and associated metadata have previously been built up using calls to pmiAddMetric(3), pmiAddInstance(3), pmiPutValue(3) and pmiPutValueHandle(3).

The current set of data values and any new metadata is written to the archive with the specified timestamp in the source timezone of the archive (see pmiSetTimezone(3)).

pmiWrite accepts a nanosecond-resolution timestamp: seconds since the Unix epoch as a 64-bit unsigned integer (sec) and nanoseconds within that second (nsec). A sec value of zero writes a record with a Unix epoch timestamp (1970-01-01 00:00:00 UTC).

pmiWriteNow writes a record timestamped with the current wall-clock time. In Python, log.pmiWrite(0) (integer zero with no nsec argument) is equivalent to calling pmiWriteNow.

DIAGNOSTICS
Returns zero on success, else a negative value that can be turned into an error message by calling pmiErrStr(3).

SEE ALSO
LOGIMPORT(3), pmiAddInstance(3), pmiAddMetric(3), pmiErrStr(3), pmiPutValue(3), pmiPutValueHandle(3), pmiPutText(3), pmiPutLabel(3) and pmiSetTimezone(3).