LOGIMPORT(3)
π LOGIMPORT π
okay bestie, welcome to LOGIMPORT(3) β a Library Functions Manual situation, and no it's not about logging into anything, it's about building logs. sit with me π«Ά
β¨ NAME β¨
LOGIMPORT β literally the intro to the library that imports data and creates a PCP archive. that's the whole vibe. π
β¨ C SYNOPSIS β¨
so if you're a C girlie:
#include <pcp/pmapi.h>
#include <pcp/import.h>
cc ... -lpcp_import -lpcp
link it and slay. π₯
β¨ Perl SYNOPSIS β¨
Perl besties:
use PCP::LogImport;
β¨ Python SYNOPSIS β¨
Python girlies:
from pcp import pmi
πΈ DESCRIPTION πΈ
The Performance Co-Pilot Log Import (LOGIMPORT) API is a library β and yes it comes with Perl and Python wrappers, we love a multilingual icon π β that supports the creation of PCP archives from external sources of performance data. and what counts as "external"? either historical logs and spreadsheets, OR real-time sources that are not integrated as a Performance Metrics Domain Agent (PMDA) under the control of pmcd(1). so like, the data's out there living its life and you're bringing it home. π β¨
the typical usage for LOGIMPORT goes a lil something like this:
- An initial call to
pmiStart(3). - Optional calls to
pmiSetHostname(3)and/orpmiSetTimezone(3)to set the hostname and timezone for the source of the performance data. - One or more calls to
pmiAddMetric(3)to define performance metrics. - One or more calls to
pmiAddInstance(3)to define instances associated with the metrics. - Optional calls to
pmiGetHandle(3)to defined convenience handles for metric-instance pairs. - A main loop in which performance data is ingested and for each sample time interval, the PCP archive record is constructed by calls to
pmiPutValue(3),pmiPutValueHandle(3),pmiPutText(3), and/orpmiPutLabel(3), followed by a call topmiWrite(3)to flush all data and any associated new metadata to the PCP archive. Alternatively,pmiPutResult(3)could be used to package and process all the data for one sample time interval. - Once the input source of data has been consumed, calling
pmiEnd(3)to complete the PCP archive creation and close all open files.
and here's the plot twist that makes it spicy πΆοΈ β if new metrics and/or instances are discovered during the data ingestion, these can be added by subsequent calls to pmiAddMetric(3) and/or pmiAddInstance(3), provided all the metrics and instances have been defined before a call to pmiGetHandle(3), pmiPutValue(3) or pmiPutResult(3) that references those metrics and instances.
β οΈ not me stressing the ORDER of this. define first, reference after. the way that rule is non-negotiable fr fr. π€
π¦ SEE ALSO π¦
go read these next, they're all part of the family:
pmcd(1)pmlogger(1)PMAPI(3)pmiAddInstance(3)pmiAddMetric(3)pmiEnd(3)pmiErrStr(3)pmiGetHandle(3)pmiPutLabel(3)pmiPutMark(3)pmiPutResult(3)pmiPutText(3)pmiPutValue(3)pmiPutValueHandle(3)pmiSetHostname(3)pmiSetTimezone(3)pmiStart(3)pmiWrite(3)
and that's the whole page bestie, you ate it up. π
signing off from Performance Co-Pilot β this was LOGIMPORT(3), mwah πβ¨
π¦ where this page comes from
- arch rolling: pcp 7.2.2-2 Β· GPL-2.0-or-later AND LGPL-2.1-or-later AND CC-BY-3.0
- centos-stream 10: pcp-doc 7.1.5-6.el10 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 43: pcp-doc 7.0.1-1.fc43 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 43: pcp-doc 7.2.1-1.fc43
- fedora 43: pcp-doc 7.2.2-1.fc43
- fedora 43: pcp-doc 7.2.2-2.fc43 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 44: pcp-doc 7.1.0-6.fc44 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 44: pcp-doc 7.2.1-1.fc44
- fedora 44: pcp-doc 7.2.2-1.fc44
- fedora 44: pcp-doc 7.2.2-2.fc44 Β· GPL-2.0-or-later AND CC-BY-3.0
- ubuntu resolute: libpcp4-dev 7.1.1-1
- ubuntu stonking: libpcp4-dev 7.2.1-2build1
- Copyright (c) 2010 Ken McDonell. All Rights Reserved
- Copyright (c) 2018 Red Hat
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms