# pmrep

## NAME



           **pmrep** , **pcp2csv** - performance metrics reporter
    


## SYNOPSIS



           **pmrep**[**-12357CdgGHIjkLmnprRuUvVxz?**]  [**-4** _action_] [**-6** _sort-metric_]
           [**-8** |**-9** _limit_] [**-a** _archive_] [**-A** _align_] [**--archive-folio** _folio_]
           [**-b** |**-B** _space-scale_] [**-c** _config_] [**--container** _container_] [**-D** _debug_]
           [**--daemonize**] [**-e** _derived_] [**-E** _lines_] [**-f** _format_] [**-F** _outfile_] [**-h**
           _host_] [**-i** _instances_] [**--include-texts**] [**-J** _rank_] [**-K** _spec_] [**-l**
           _delimiter_] [**-N** _predicate_] [**--no-inst-info**] [**-o** _output_] [**-O** _origin_]
           [**-P** |**-0** _precision_] [**-q** |**-Q** _count-scale_] [**-s** _samples_] [**-S** _starttime_]
           [**-t** _interval_] [**-T** _endtime_] [**-w** |**-W** _width_] [**-X** _label_] [**-y** |**-Y** _time-_
           _scale_] [**-Z** _timezone_] _metricspec_ [...]
    


## DESCRIPTION



           **pmrep** is a customizable performance metrics reporting tool.  Any
           available performance metric, live or archived, system and/or
           application, can be selected for reporting using one of the output
           alternatives listed below together with applicable formatting
           options.
    
           **pmrep** collects selected metric values through the facilities of
           the Performance Co-Pilot (PCP), see PCPIntro(1).  The metrics to
           be reported are specified on the command line, in configuration
           files, or both.  Metrics can be automatically converted and scaled
           using the PCP facilities, either by default or by per-metric
           scaling specifications.  In addition to the existing metrics,
           derived metrics can be defined using the arithmetic expressions
           described in pmRegisterDerived(3).
    
           A wide range of metricsets (see below) is included by default,
           providing reports on per-process details, NUMA performance,
           mimicking other tools like sar(1) and more, see the **pmrep**
           configuration files in _$PCP_SYSCONF_DIR/pmrep_ (typically
           _/etc/pcp/pmrep_) for details.  Tab completion for options, metrics,
           and metricsets is available for bash and zsh.
    
           Unless directed to another host by the **-h** option, **pmrep** will
           contact the Performance Metrics Collector Daemon (PMCD, see
           pmcd(1)) on the local host.
    
           The **-a** option causes **pmrep** to use the specified set of archives
           rather than connecting to a PMCD.  The **-a** and **-h** options are
           mutually exclusive.
    
           The **-L** option causes **pmrep** to use a local context to collect
           metrics from DSO PMDAs (Performance Metrics Domain Agents,
           ``plugins'') on the local host without PMCD.  Only some metrics
           are available in this mode.  The **-a** , **-h** , and **-L** options are
           mutually exclusive.
    
           The metrics of interest are named in the _metricspec_ argument(s).
           If a metricspec specifies a non-leaf node in the Performance
           Metrics Name Space (PMNS), then **pmrep** will recursively descend the
           PMNS and report on all leaf nodes (i.e. metrics) for that
           metricspec.  Use pminfo(1) to list all the metrics (PMNS lead
           nodes) and their descriptions.
    
           A _metricspec_ has three different forms.  First, on the command
           line it can start with a colon (``:'') to indicate a _metricset_ to
           be read from **pmrep** configuration files (see **-c** and pmrep.conf(5)),
           which may then consist of any number of metrics.  Second, a
           _metricspec_ starting with non-colon specifies a PMNS node as
           described above, optionally followed by metric output formatting
           definitions.  This so-called _compact form_ of a metricspec is
           defined as follows:
    
         metric[,label[,instances[,unit/scale[,type[,width[,precision[,limit]]]]]]]
    
           A valid PMNS node (_metric_) is mandatory.  It may be followed by a
           text _label_ used with _stdout_ output.  The optional _instances_
           definition restricts _csv_ and _stdout_ reporting to the specified
           instances of the metric so non-matching instances will be filtered
           out (see **-i**).  An optional _unit/scale_ is applicable for dimension-
           compatible, non-string metrics.  See below for supported
           _unit/scale_ specifications.  By default, cumulative counter metrics
           are converted to rates, an optional _type_ can be set to **raw** to
           disable this rate conversion.  For _stdout_ output a numeric _width_
           can be used to set the width of the output column for this metric.
           Too wide strings in the output will be truncated to fit the
           column.  A metric-specific _precision_ can be provided for numeric
           non-integer output values.  Lastly, a metric-specific _limit_ can be
           set for filtering out numeric values per the limit.
    
           As a special case for metrics that are counters with time units
           (nanoseconds to hours), the _unit/scale_ can be used to change the
           default reporting (for example, milliseconds / second) to
           normalize to the range zero to one by setting this to **sec**(see
           also **-y** and **-Y**).
    
           The following _metricspec_ requests the metric **kernel.all.sysfork** to
           be reported under the text label **forks** , converting to the metric
           default rate count/s in an **8** wide column.  Although the
           definitions in this _compact form_ are optional, they must always be
           provided in the order specified above, thus the commas.
    
                   kernel.all.sysfork,forks,,,,8
    
           The third form of a metricspec, _verbose form_ , is described and
           valid only in pmrep.conf(5).
    
           Derived metrics are specified like regular PMNS leaf node metrics.
    
           Options via environment values (see pmGetOptions(3)) override the
           corresponding built-in default values (if any).  Configuration
           file options override the corresponding environment variables (if
           any).  Command line options override the corresponding
           configuration file options (if any).
    
           **pcp2csv** is an alias for **pmrep**.
    


## OPTIONS



           The available command line options are:
    
           **-0** _precision_ , **--precision-force** =_precision_
                Like **-P** but this option _will_ override per-metric
                specifications.
    
           **-1** , **--dynamic-header**
                Print a new dynamically adjusted header every time changes in
                the availability of metric and instance values occur.  By
                default a static header that never changes is printed once.
                See also **-4** , **-7** , and **-E**.
    
           **-2** , **--overall-rank**
                Perform overall ranking of instances in archive.  By default
                ranking (see **-J**) and reporting happens on each interval.
                With this option all instances and values are ranked before a
                summary is reported.  See pmlogsummary(1) for further archive
                summary reporting alternatives, including averages and peak
                times for values.
    
           **-3** , **--overall-rank-alt**
                Like **-2** but print metric instances in **pmrep** _metricspec_
                format, to allow easily selecting the instances for further
                investigation.
    
           **-4** _action_ , **--names-change** =_action_
                Specify which _action_ to take on receiving a metric names
                change event during sampling.  These events occur when a PMDA
                discovers new metrics sometime after starting up, and informs
                running client tools like **pmrep**.  Valid values for _action_ are
                **update**(refresh metrics being sampled), **ignore**(do nothing -
                the default behaviour) and **abort**(exit the program if such an
                event occurs).  _update_ implies **--dynamic-header**.
    
           **-5** , **--ignore-unknown**
                Silently ignore any metric name that cannot be resolved.  At
                least one metric must be found for the tool to start.
    
           **-6** , **--sort-metric** =_sort-metric_
                Specify a sort reference metric to sort output by values with
                **-X**.  By default sorting order is descending, prepending the
                metric name with the minus sign (``-'') will change the order
                to be ascending.  See also **-J** and **-N**.
    
           **-7** , **--fixed-header**
                With **-X** print a fixed header once (unless using **-E**) including
                all metrics being reported.  Unlike with the default (static)
                header, only instances with values available are reported.
                Unlike with the dynamic header, the header is not updated
                even if values for some metrics later become (un)available.
                See also **-1** and **-E**.
    
           **-8** _limit_ , **--limit-filter** =_limit_
                Limit results to instances with values above/below _limit_.  A
                positive integer will include instances with values at or
                above the limit in reporting.  A negative integer will
                include instances with values at or below the limit in
                reporting.  A value of zero performs no limit filtering.
                This option will _not_ override possible per-metric
                specifications.  See also **-J** and **-N**.
    
           **-9** _limit_ , **--limit-filter-force** =_limit_
                Like **-8** but this option _will_ override per-metric
                specifications.
    
           **-a** _archive_ , **--archive** =_archive_
                Performance metric values are retrieved from the set of
                Performance Co-Pilot (PCP) archive files identified by the
                _archive_ argument, which is a comma-separated list of names,
                each of which may be the base name of an archive or the name
                of a directory containing one or more archives.  See also **-u**.
    
           **-A** _align_ , **--align** =_align_
                Force the initial sample to be aligned on the boundary of a
                natural time unit _align_.  Refer to PCPIntro(1) for a complete
                description of the syntax for _align_.
    
           **--archive-folio** =_folio_
                Read metric source archives from the PCP archive _folio_
                created by tools like pmchart(1) or, less often, manually
                with mkaf(1).
    
           **-b** _scale_ , **--space-scale** =_scale_
                _Unit/scale_ for space (byte) metrics, possible values include
                **bytes** , **Kbytes** , **KB** , **Mbytes** , **MB** , and so forth.  This option
                will _not_ override possible per-metric specifications.  See
                also pmParseUnitsStr(3).
    
           **-B** _scale_ , **--space-scale-force** =_scale_
                Like **-b** but this option _will_ override per-metric
                specifications.
    
           **-c** _config_ , **--config** =_config_
                Specify the _config_ file or directory to use.  In case _config_
                is a directory all files in it ending **.conf** will be included.
                The default is the first found of: _./pmrep.conf_ ,
                _$HOME/.pmrep.conf_ , _$HOME/pcp/pmrep.conf_ ,
                _$PCP_SYSCONF_DIR/pmrep/pmrep.conf_ , and
                _$PCP_SYSCONF_DIR/pmrep_.  See pmrep.conf(5).
    
           **--container** =_container_
                Fetch performance metrics from the specified _container_ ,
                either local or remote (see **-h**).
    
           **-C** , **--check**
                Exit before reporting any values, but after parsing the
                configuration and metrics and printing possible headers.
    
           **-d** , **--delay**
                When replaying from an archive, this option requests that the
                prevailing real-time delay be applied between samples (see
                **-t**) to effect a pause, rather than the default behaviour of
                replaying at full speed.
    
           **--daemonize**
                Daemonise on startup.
    
           **-e** _derived_ , **--derived** =_derived_
                Specify _derived_ performance metrics.  If _derived_ starts with
                a slash (``/'') or with a dot (``.'') it will be interpreted
                as a PCP derived metrics configuration file, otherwise it
                will be interpreted as comma- or semicolon-separated derived
                metric expressions.  For complete description of derived
                metrics and PCP derived metrics configuration files see
                pmLoadDerivedConfig(3) and pmRegisterDerived(3).
                Alternatively, using pmrep.conf(5) configuration syntax
                allows defining derived metrics as part of metricsets.
    
                In case of issues with derived metrics, review the
                aforementioned manual pages in detail and ensure all the
                required metrics are available, especially when using
                archives.  Use **-Dderive** to see additional debug information
                about parsing derived metrics.
    
           **-E** _lines_ , **--repeat-header** =_lines_
                Repeat the header every _lines_ of output.  When not using **-1**
                or **-7** use **auto** to repeat the header based on terminal height.
                See also **-1** and **-7**.
    
           **-f** _format_ , **--timestamp-format** =_format_
                Use the _format_ string for formatting the timestamp.  The
                format will be used with Python's **datetime.strftime** method
                which is mostly the same as that described in strftime(3).
                An empty _format_ string (i.e. "") will remove the timestamps
                from the output.  Defaults to **%H:%M:%S** when using the _stdout_
                output target.  Defaults to **%Y-%m-%d %H:%M:%S** when using the
                _csv_ output target.
    
           **-F** _outfile_ , **--output-file** =_outfile_
                Specify the output file _outfile_.  See **-o**.
    
           **-g** , **--separate-header**
                Output the column number and complete metric information,
                one-per-line, before printing the metric values.
    
           **-G** , **--no-globals**
                Do not include global metrics in reporting (see
                pmrep.conf(5)).
    
           **-h** _host_ , **--host** =_host_
                Fetch performance metrics from pmcd(1) on _host_ , rather than
                from the default localhost.
    
           **-H** , **--no-header**
                Do not print any headers.
    
           **-i** _instances_ , **--instances** =_instances_
                Retrieve and report only the specified metric _instances_.  By
                default all initially present instances are reported, except
                when writing an archive (see **-o**), where also all future
                instances will be reported.
    
                The specified _instances_ are filtered from the initially
                present instances when the tool is starting up.  Thus
                instances which would match the filter appearing after the
                tool has started up will not be reported, use **-j** to change
                this.
    
                This is a global option that is used for all set-valued
                metrics unless a metric-specific instance filter is provided
                as part of a _metricspec_.  By default single-valued ``flat''
                metrics without instances are still reported as usual, use **-v**
                to change this.
    
                _instances_ is a comma-separated list of one or more instance
                filter specifications.  Filters containing commas or
                whitespace must be quoted with single (') or double (")
                quotes.  Note that as part of a _metricspec_ on command line a
                list with more than one filter both the list and each filter
                must be quoted as shown below.  It is also possible to define
                a single filter with bars (|) as instance separating regex in
                order to make quoting easier, see below.
    
                Multiple **-i** options are allowed as an alternative way of
                specifying more than one non-metric-specific instance
                filters.
    
                An individual instance filter can be one of the following:
    
                _name_   Full instance name.  For example, **sda** for _disk.dev_
                       instances or **eth0** for _network.interface_ instances.
    
                _PID_    Process ID for _proc_ instances.
    
                _command_
                       Base name of a process for _proc_ instances.  For
                       example, **pmcd** would match all pmcd(1) processes
                       regardless of their path or PID.
    
                _regex_  Regular expression.  For example, **.*python.*** would
                       match all instances having the string **python** as part
                       of their instance name, meaning that this would match
                       all Python processes regardless of their path, PID, or
                       version.
    
                As an example, the following would report the same instances:
    
                     **$ pmrep -i '. minute' kernel.all.load**
                     **$ pmrep -i '1 minute','5 minute' kernel.all.load**
                     **$ pmrep -i "'1 minute','5 minute'" kernel.all.load**
                     **$ pmrep -i '1 minute' -i '5 minute' kernel.all.load**
                     **$ pmrep kernel.all.load,,"'1 minute','5 minute'"**
                     **$ pmrep kernel.all.load,,'1 minute|5 minute'**
    
                However, this would report only the 1-minute instance:
    
                     **$ pmrep -i '1 minute','5 minute' kernel.all.load,,'1 minute'**
    
                And this would report all instances (due to per-metric
                regex):
    
                     **$ pmrep -i '1 minute','5 minute' 'kernel.all.load,,.*'**
    
           **-I** , **--ignore-incompat**
                Ignore incompatible metrics.  By default incompatible metrics
                (that is, their type is unsupported or they cannot be scaled
                as requested) will cause **pmrep** to terminate with an error
                message.  With this option all incompatible metrics are
                silently omitted from reporting.  This may be especially
                useful when requesting non-leaf nodes of the PMNS tree for
                reporting.
    
           **--include-texts**
                When writing a PCP archive, include PCP metric help texts in
                the created archive.
    
           **-j** , **--live-filter**
                Perform instance live filtering.  This allows capturing all
                named instances even if processes are restarted at some point
                (unlike without live filtering).  Performing live filtering
                over a huge number of instances will add some internal
                overhead so a bit of user caution is advised.  See also **-1**
                and **-n**.
    
           **-J** _rank_ , **--rank** =_rank_
                Limit results to highest/lowest _rank_ ed instances of set-
                valued metrics.  A positive integer will include highest
                valued instances in reporting.  A negative integer will
                include lowest valued instances in reporting.  A value of
                zero performs no ranking.  Ranking does not imply sorting,
                see **-6**.  See also **-2** and **-8**.
    
           **-k** , **--extended-csv**
                Write extended CSV output, similar to sadf(1).
    
           **-K** _spec_ , **--spec-local** =_spec_
                When fetching metrics from a local context (see **-L**), the **-K**
                option may be used to control the DSO PMDAs that should be
                made accessible.  The _spec_ argument conforms to the syntax
                described in pmSpecLocalPMDA(3).  More than one **-K** option may
                be used.
    
           **-l** _delimiter_ , **--delimiter** =_delimiter_
                Specify the _delimiter_ that separates each column of _csv_ or
                _stdout_ output.  The default for _stdout_ is two spaces (``  '')
                and comma (``,'') for _csv_.  When using a non-whitespace
                delimiter, all instances of the delimiter in string values
                will be replaced by the underscore (``_'') character.  Note
                that many default metricsets specify a delimiter (that may
                not be a comma) so it might be necessary to use this option
                with metricsets to explicitly set the delimiter as comma for
                CSV output, i.e. **--delimiter=,**
    
           **-L** , **--local-PMDA**
                Use a local context to collect metrics from DSO PMDAs on the
                local host without PMCD.  See also **-K**.
    
           **-m** , **--include-labels**
                Include PCP metric labels in the output.
    
           **-n** , **--invert-filter**
                Perform ranking before live filtering.  By default instance
                live filtering (when requested, see **-j**) happens before
                instance ranking (when requested, see **-J**).  With this option
                the logic is inverted and ranking happens before live
                filtering.
    
           **-N** _predicate_ , **--predicate** =_predicate_
                Specify a comma-separated list of _predicate_ filter reference
                metrics.  By default ranking (see **-J**) happens for each metric
                individually.  With predicates, ranking is done only for the
                specified predicate metrics.  When reporting, rest of the
                metrics sharing the same _instance domain_ (see PCPIntro(1)) as
                the predicate will include only the highest/lowest ranking
                instances of the corresponding predicate.  Ranking does not
                imply sorting, see **-6**.
    
                So for example, using **proc.memory.rss**(resident memory size
                of process) as the _predicate_ metric together with
                **proc.io.total_bytes** and **mem.util.used** as metrics to be
                reported, only the processes using most/least (as per **-J**)
                memory will be included when reporting total bytes written by
                processes.  Since **mem.util.used** is a single-valued metric
                (thus not sharing the same instance domain as the process
                related metrics), it will be reported as usual.
    
           **--no-inst-info**
                Omit instance information from headers.  Not applicable with
                separate header (see **-g**).
    
           **-o** _output_ , **--output** =_output_
                Use _output_ target for reporting.  The default target is
                _stdout_.  The available output target alternatives are:
    
                _archive_
                  Record metrics into a PCP archive which can later be
                  replayed with PCP tools, including **pmrep** itself.  See
                  LOGARCHIVE(5) and PCPIntro(1) for details about PCP archive
                  files.  Requires **-F**.
    
                _csv_
                  Print metrics in CSV format (subject to formatting
                  options).
    
                _stdout_
                  Print metrics to stdout (format subject to formatting
                  options).
    
           **-O** _origin_ , **--origin** =_origin_
                When reporting archived metrics, start reporting at _origin_
                within the time window (see **-S** and **-T**).  Refer to PCPIntro(1)
                for a complete description of the syntax for _origin_.
    
           **-p** , **--timestamps**
                Print timestamps.  By default no timestamps are printed.
    
           **-P** _precision_ , **--precision** =_precision_
                Use _precision_ for numeric non-integer output values.  If the
                value is too wide for its column width, _precision_ is reduced
                one by one until the value fits, or not printed at all if it
                does not.  The default is to use 3 decimal places (when
                applicable).  This option will _not_ override possible per-
                metric specifications.
    
           **-q** _scale_ , **--count-scale** =_scale_
                _Unit/scale_ for count metrics, possible values include **count x**
                **10^-1** , **count** , **count x 10** , **count x 10^2** , and so forth from
                **10^-8** to **10^7**.  (These values are currently space-sensitive.)
                This option will _not_ override possible per-metric
                specifications.  See also pmParseUnitsStr(3).
    
           **-Q** _scale_ , **--count-scale-force** =_scale_
                Like **-q** but this option _will_ override per-metric
                specifications.
    
           **-r** , **--raw**
                Output raw metric values, do not convert cumulative counters
                to rates.  When writing archives, raw values are always used.
                This option _will_ override possible per-metric specifications.
    
           **-R** , **--raw-prefer**
                Like **-r** but this option will _not_ override per-metric
                specifications.
    
           **-s** _samples_ , **--samples** =_samples_
                The _samples_ argument defines the number of samples to be
                retrieved and reported.  If _samples_ is 0 or **-s** is not
                specified, **pmrep** will sample and report continuously (in real
                time mode) or until the end of the set of PCP archives (in
                archive mode).  See also **-T**.
    
           **-S** _starttime_ , **--start** =_starttime_
                When reporting archived metrics, the report will be
                restricted to those records logged at or after _starttime_.
                Refer to PCPIntro(1) for a complete description of the syntax
                for _starttime_.
    
           **-t** _interval_ , **--interval** =_interval_
                Set the reporting _interval_ to something other than the
                default 1 second.  The _interval_ argument follows the syntax
                described in PCPIntro(1), and in the simplest form may be an
                unsigned integer (the implied units in this case are
                seconds).  See also the **-T** and **-u** options.
    
           **-T** _endtime_ , **--finish** =_endtime_
                When reporting archived metrics, the report will be
                restricted to those records logged before or at _endtime_.
                Refer to PCPIntro(1) for a complete description of the syntax
                for _endtime_.
    
                When used to define the runtime before **pmrep** will exit, if no
                _samples_ is given (see **-s**) then the number of reported samples
                depends on _interval_ (see **-t**).  If _samples_ is given then
                _interval_ will be adjusted to allow reporting of _samples_
                during runtime.  In case all of **-T** , **-s** , and **-t** are given,
                _endtime_ determines the actual time **pmrep** will run.
    
           **-u** , **--no-interpol**
                When reporting archived metrics, by default values are
                reported according to the selected sample interval (**-t**
                option), not according to the actual record interval in an
                archive.  To this effect PCP interpolates the values to be
                reported based on the records in the archive.  With the **-u**
                option uninterpolated reporting is enabled, every recorded
                value for the selected metrics is reported and the requested
                sample interval (**-t**) is ignored.
    
                So for example, if a PCP archive contains recorded values for
                every 10 seconds and the requested sample interval is 1 hour,
                by default **pmrep** will use an interpolation scheme to compute
                the values of the requested metrics from the values recorded
                in the proximity of these requested metrics and values for
                every 1 hour are reported.  With **-u** every record every 10
                seconds are reported as such (the reported values are still
                subject to rate conversion, use **-r** or **-R** to disable).
    
           **-U** , **--no-unit-info**
                Omit unit information from headers.
    
           **-v** , **--omit-flat**
                Report only set-valued metrics with instances (e.g.
                disk.dev.read) and omit single-valued ``flat'' metrics
                without instances (e.g.  kernel.all.sysfork).  See **-i** and **-I**.
    
           **-V** , **--version**
                Display version number and exit.
    
           **-w** _width_ , **--width** =_width_
                Set the _stdout_ output column _width_.  Strings will be
                truncated to this width.  The default _width_ is the shortest
                that can fit the metric text label, the forced minimum is 3.
                This option will _not_ override possible per-metric
                specifications.
    
           **-W** _width_ , **--width-force** =_width_
                Like **-w** but this option _will_ override per-metric
                specifications.
    
           **-x** , **--extended-header**
                Print extended header.
    
           **-X** _label_ , **--colxrow** =_label_
                Swap columns and rows in _stdout_ output, reporting one
                instance per line, using _label_ as the text label for the
                instance column.  Use an empty string ("") to enable swapping
                without a specific column label.  This change in output
                allows using grep(1) to filter results or to more closely
                mimic other tools.  See also **-i** and **-6**.
    
           **-y** _scale_ , **--time-scale** =_scale_
                _Unit/scale_ for time metrics, possible values include **nanosec** ,
                **ns** , **microsec** , **us** , **millisec** , **ms** , and so forth up to **hour** , **hr**.
                This option will _not_ override possible per-metric
                specifications.  See also pmParseUnitsStr(3).
    
           **-Y** _scale_ , **--time-scale-force** =_scale_
                Like **-y** but this option _will_ override per-metric
                specifications.
    
           **-z** , **--hostzone**
                Use the local timezone of the host that is the source of the
                performance metrics, as identified by either the **-h** or the **-a**
                options.  The default is to use the timezone of the local
                host.
    
           **-Z** _timezone_ , **--timezone** =_timezone_
                Use _timezone_ for the date and time.  _Timezone_ is in the
                format of the environment variable **TZ** as described in
                environ(7).  Note that when including a timezone string in
                output, ISO 8601 -style UTC offsets are used (so something
                like -Z EST+5 will become UTC-5).
    
           **-?** , **--help**
                Display usage message and exit.
    


## EXAMPLES



           The following examples use the standard PCP facilities for
           collecting the metric values, no external utilities are needed.
           The referenced colon-starting _metricsets_ are part of the default
           **pmrep** configuration.  With bash and zsh tab completes available
           options, metrics, and after a colon metricsets.
    
           Display network interface metrics on the local host:
               **$ pmrep network.interface.total.bytes**
    
           Display all outgoing network metrics for the _wlan0_ interface:
               **$ pmrep -i wlan0 -v network.interface.out**
    
           Display the slab total usage (in MB) of two specific slab
           instances:
               **$ pmrep mem.slabinfo.slabs.total_size,,'kmalloc-4k|xfs_inode',MB**
    
           Display timestamped vmstat(8) like information using megabytes
           instead of kilobytes and also include the number of inodes used:
               **$ pmrep -p -B MB :vmstat vfs.inodes.count**
    
           Display per-device disk reads and writes from the host _server1_
           using two seconds interval and sadf(1) like CSV output format:
               **$ pmrep -h server1 -t 2s -o csv -k disk.dev.read disk.dev.write**
    
           Display processes using at least 100MB of memory using dynamic
           headers, additionally use **-g** to display instance (process) names
           in full:
               **$ pmrep -b MB --limit-filter 100 --dynamic-header proc.memory.rss**
    
           Display the predefined set of metrics from the default
           pmrep.conf(5) containing details about I/O requests by current
           _pmlogger_ process(es):
               **$ pmrep -gp -i pmlogger :proc-io**
    
           Display the three most CPU-using processes:
               **$ pmrep -1gUJ 3 proc.hog.cpu**
    
           Display **sar -w** and **sar -W** like information at the same time from
           the PCP archive _./20150921.09.13_ showing values recorded between 3
           - 5 PM:
               **$ pmrep -a ./20150921.09.13 -S @15:00 -T @17:00 :sar-w :sar-W**
    
           Record most relevant CPU, memory, and I/O related information
           about every Java process on the system, present and future, to an
           archive _./a_ on one minute interval at every full minute in a
           background process:
               **$ pmrep --daemonize -A 1m -t 1m -i '.*java.*' -j -o archive -F ./a \**
                   **:proc-info :proc-cpu :proc-mem :proc-io**
    
           Record all 389 Directory Server, XFS file system, and
           CPU/memory/disk metrics every five seconds for five minutes to a
           PCP archive _./a_ :
            **$ pmrep -t 5s -T 5m -o archive -F ./a ds389 xfs kernel.all.cpu mem disk**
    
           Record process memory and I/O information for those processes
           which are the three most memory-consuming processes:
            **$ pmrep -o archive -F ./a -J 3 -N proc.memory.rss proc.memory proc.io**
    


## FILES



           _pmrep.conf_
                **pmrep** configuration file (see **-c**)
    
           $PCP_SYSCONF_DIR _/pmrep/*.conf_
                system provided default **pmrep** configuration files
    


## 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).
    
           Of particular note, **PCP_DISCRETE_ONCE** can be set to ensure that
           discrete metric values are reported only once, unless they change
           at some point.
    


## DEBUGGING OPTIONS



           The **-D** or **--debug** option enables the output of additional
           diagnostics on _stderr_ to help triage problems, although the
           information is sometimes cryptic and primarily intended to provide
           guidance for developers rather end-users.  _debug_ is a comma
           separated list of debugging options; use pmdbg(1) with the **-l**
           option to obtain a list of the available debugging options and
           their meaning.
    
           Debugging options specific to **pmrep** are as follows:
           ┌────────┬───────────────────────────────────────────────────────┐
           │ **Option** │ **Description** │
           ├────────┼───────────────────────────────────────────────────────┤
           │ **appl1** │ dump keywords for configs and specs                   │
           ├────────┼───────────────────────────────────────────────────────┤
           │ **derive** │ dump details as each derived metric is parsed         │
           └────────┴───────────────────────────────────────────────────────┘
    


* * *