sar2pcp - import sar data and create a PCP archive
sar2pcp infile outfile
sar2pcp is intended to read a binary System Activity Reporting (sar) data
file as created by
sadc(1) (
infile) and translate this into a
Performance Co-Pilot (PCP) archive with the basename
outfile.
However, if
infile has the suffix ``.xml'', then it will be considered
already in XML format and
sar2pcp will operate directly on it.
The resultant PCP achive may be used with all the PCP client tools to graph
subsets of the data using
pmchart(1), perform data reduction and
reporting, filter with the PCP inference engine
pmie(1), etc.
A series of physical files will be created with the prefix
outfile. These
are
outfile.0 (the performance data),
outfile.meta
(the metadata that describes the performance data) and
outfile.index (a temporal index to improve efficiency of replay
operations for the archive). If any of these files exists already, then
sar2pcp will
not overwrite them and will exit with an error
message of the form
__pmLogNewFile: ``blah.0'' already exists, not over-written
sar2pcp is a Perl script that uses the PCP::LogImport Perl wrapper around
the PCP
libpcp_import library, and as such could be used as an example
to develop new tools to import other types of performance data and create PCP
archives. A Python wrapper module is also available.
As of
sysstat version 12.0.5,
sadc(1) has added functionality to
directly write PCP archive files. To produce archive files from sar run:
$ sadf -l -O pcparchive=ARCHIVE_NAME sar.dat -- -A
When not using the XML input option,
sar2pcp requires
infile to
have been created by a version of
sadc(1) from
http://sebastien.godard.pagesperso-orange.fr/ which includes the
sadf(1) utility to translate
infile into an XML stream (any
since version 6);
sar2pcp will automatically run
sadf(1) and
translate the resultant XML into a PCP archive.
When using binary
sadc files it is important to ensure the installed
sadf is compatible with the version of
sadc that originally
generated the binary files. Simply assuming a newer installed version will
work is unfortunately far too optimistic, and nor should one assume that
binary data from different platforms (e.g. different endianness) will work -
these issues are due to limitations in
sadc and
sadf, and not in
sar2pcp itself.
Fortunately, the
sadf message indicating that an incompatibility has been
detected is consistent across versions, and is always prefixed
Invalid system activity file
Using an XML
infile has the advantage that the installed version of
sadf is completely bypassed.
sar2pcp undertakes to transform any
valid XML produced by any of the different variations of
sadf into a
valid PCP archive. Any version of PCP will be able to interpret the archive
files produced by any version of
sar2pcp, and you are also free to move
the binary PCP archive between different platforms, different hardware, even
different operating systems - it Just Works (TM).
Environment variables with the prefix
PCP_ are used to parameterize the
file and directory names used by PCP. On each installation, the file
/etc/pcp.conf contains the local values for these variables. The
$PCP_CONF variable may be used to specify an alternative configuration
file, as described in
pcp.conf(5).
For environment variables affecting PCP tools, see
pmGetOptions(3).
pmie(1),
pmchart(1),
pmlogger(1),
pmlogextract(1),
pmlogsummary(1),
sadc(1),
sadf(1),
sar(1),
Date::Parse(3pm),
Date::Format(3pm),
PCP::LogImport(3pm),
XML::TokeParser(3pm) and
LOGIMPORT(3).