# sar2pcp

## NAME



           **sar2pcp** - import sar data and create a PCP archive
    


## SYNOPSIS



           **sar2pcp** _infile outfile_
    


## DESCRIPTION



           **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.
    


## NOTES



           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
    


## CAVEATS



           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).
    


## PCP ENVIRONMENT



           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).
    


* * *