Scroll to navigation

PMIWRITE(3) Library Functions Manual 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).

Performance Co-Pilot