pmchart - strip chart tool for Performance Co-Pilot
pmchart [-CLVWz?] [-a archive] [-A align] [-c configfile] [-f fontfamily] [-F fontsize] [-g geometry] [-h host] [-o outfile] [-O offset] [-p port] [-s samples] [-S starttime] [-t interval] [-T endtime] [-v visible] [-Z timezone] [-geometry geometry] [sources...]
pmchart is a graphical utility that plots performance metrics values available through the facilities of the Performance Co-Pilot (PCP). Multiple charts can be displayed simultaneously, either aligned on the unified time axis (X-axis), and through the use of multiple interface Tabs.
Metric values can be sourced from one or more live hosts (simultaneously). Alternatively, one or more sets of PCP archives can be used as a source of historical data. See PCPIntro(1) for an in-depth discussion of the capabilities of the PCP framework, many of which are used by pmchart.
Many aspects of the behaviour of pmchart can be customised through the interface. In particular, the use of "views" (refer to the section describing VIEWS later in this document) allows predefined sets of metrics and charting parameters like colors, scaling, titles, legends, and so on to be stored for later use, or use with different hosts and sets of archives. In addition, the Preferences dialog allows customisations to the rest of the pmchart user interface to be saved and restored between different invocations of the tool. This allows the default background color, highlight color, contents and location of the toolbar, and many other aspects to be configured.
pmchart makes extensive use of the pmtime(1) utility for time control, refer to the pmtime manual page for further details of its operation.
The available command line options are:
The -S, -T, -O and -A options may be used to define a time window to restrict the samples retrieved, set an initial origin within the time window, or specify a "natural" alignment of the sample times; refer to PCPIntro(1) for a complete description of these options.
|-a archive, --archive=archive|
|Performance metric values are retrieved from the set of Performance Co-Pilot (PCP) archive logs identified by this option, by default. The argument 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. The resulting set of archives will be the source of the performance metrics. The initial Tab created will be an archive mode Tab. Multiple -a options can be presented, and the resulting list of sets of archives is used for sourcing metric values. Any sources listed on the command line are assumed to be sets of archives if this option is used.|
|-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.|
|-c configfile, --view=configfile|
|configfile specifies an initial view to load, using the default source of metrics. Multiple -c views can be specified, and they will all be opened in the default Tab with the default source of metrics.|
|Used with -c, the view(s) are parsed, any errors are reported, and the tool exits. This is primarily intended for testing purposes. If a second -C option is presented, pmchart also connects to pmcd(1) to check the semantics of metrics.|
|-f family, --font-family=family|
|Specify the default font family to be used in several chart components, such as the chart title, legend, and Y-axis label. The default value is "Sans Serif". This setting does not affect the rest of the user interface, where the value is inherited from the environment in which pmchart operates, and differs according to the look-and-feel of each platform.|
|-F point, --font-size=point|
|Specify the default font point size to be used in several chart components, such as the chart title, legend, and Y-axis label. The default is platform dependent, but is either 7, 8 or 9. This setting does not affect the rest of the user interface.|
|-g geometry, --geometry=geometry|
|Generate image with the specified geometry (width and height). This option is only useful when used in conjunction with the -o option for generating an output image. The geometry argument takes the form "WxH" (e.g. 240x120). When NOT using the -o flag, to specify the display window geometry, use -geometry geometry where geometry specifies the desired window width, height and optional placement.|
|-h host, --host=host|
|Current performance metric values are retrieved from the nominated host machine by default. Multiple -h options can be presented, and the list of hosts is used for sourcing metric values. Any sources listed on the command line are assumed to be hosts if this option is used.|
|-H path, --hostsfile=path|
|Specify the path to a file containing a set of hostnames where pmcd(1) is running , rather than using the default localhost.|
|-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.|
|Use a local context to collect metrics from DSO PMDAs on the local host without PMCD. See also -K.|
|-o outfile, --output=outfile|
|Generate an image file named outfile, and then exit. This is most useful when run with a set of archives and one or more views. The generated image will be in the format specified as the file extension (automatically determined from outfile). If no extension can be determined, then the GIF format is used and the generated file is named with this extension. The supported image file formats include: bmp, jpeg, jpg, png, ppm, tif, tiff, xbm, and xpm.|
|-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 port, --port=port|
|port number for connection to an existing pmtime time control process.|
|-s samples, --samples=samples|
|Specifies the number of samples that will be retained before discarding old data (replaced by new values at the current time position). This value can subsequently be modified through the Edit Tab dialog.|
|-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|
|Sets the inital update 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).|
|-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.|
|-v samples, --visible=samples|
|Sets the initial visible samples that will be displayed in all charts in the default Tab. This value must be less than or equal to the total number of samples retained (the -s value).|
|Display pmchart version number and exit|
|Export images using an opaque(white) background|
|Change the reporting timezone to the local timezone at the host that is the source of the performance metrics, as identified via either the -h or -a options.|
|-Z timezone, --timezone=timezone|
|By default, pmtime reports the time of day according to the local timezone on the system where pmchart is run. The -Z option changes the timezone to timezone in the format of the environment variable TZ as described in environ(7).|
The primary pmchart configuration file is the "view", which allows the metadata associated with one or more charts to be saved in the filesystem. This metadata describes all aspects of the charts, including which PCP metrics and instances are to be used, which hosts, which colors, the chart titles, use of chart legends, and much more.
From a conceptual point of view, there are two classes of view. These views share the same configuration file format - refer to a later section for a complete description of this format. The differences lie in where they are installed and how they are manipulated.
The first class, the "system" view, is simply any view that is installed as part of the pmchart package. These are stored in $PCP_VAR_DIR/config/pmchart. When the File->Open View dialog is displayed, it is these views that are initially listed. The system views cannot be modified by a normal user, and should not be modified even by a user with suitable privileges, as they will be overwritten during an upgrade.
The second class of view is the "user" view. These views are created on-the-fly using the File->Save View dialog. This is a mechanism for individual users to save their commonly used views. Access to these views is achieved through the File->Open View dialog, as with the system views. Once the dialog is opened, the list of views can be toggled between user and system views by clicking on the two toggle buttons in the top right corner. User views are stored in $HOME/.pcp/pmchart.
pmchart provides the common user interface concept of the Tab, which is most prevalent in modern web browsers. Tabs allow pmchart to update many more charts than the available screen real estate allows, by providing a user interface mechanism to stack (and switch between) different vertical sets of charts. Switching between Tabs is achieved by clicking on the Tab labels, which are located along the top of the display beneath the Menu and Tool bars).
Each Tab has a mode of operation (either live or archive - pmchart can support both modes simultaneously), the total number of samples and currently visible points, and a label describing the Tab which is displayed at the top of the pmchart window. New Tabs can be created using the File->Add Tab dialog.
In order to save on vertical screen real estate, note that the user interface element for changing between different Tabs (and its label) are only displayed when more than one Tab exists. A Tab can be dismissed using the File->Close Tab menu, which removes the current Tab and any charts it contained.
IMAGES and PRINTING
A static copy of the currently displayed vertical series of charts can be captured in two ways.
When the intended display device is the screen, the File->Export menu option should be used. This allows exporting the charts in a variety of image formats, including PNG, JPEG, GIF, and BMP. The image size can be scaled up or down in any dimension.
Alternatively, when the intended display device is paper, the File->Print menu option can be used. This supports the usual set of printing options (choice of printer, grayscale/color, landscape/portrait, scaling to different paper sizes, etc), and in addition allows printing to the intermediate printer formats of PostScript and Portable Document Format (PDF).
It is possible to make a recording of a set of displayed charts, for later playback through pmchart or any of the other Performance Co-Pilot tools. The Record->Start functionality is simple to configure through the user interface, and allows fine-tuning of the recording process (including record frequencies that differ to the pmchart update interval, alternate file locations, etc).
pmchart produces recordings that are compatible with the PCP pmafm(1) replay mechanism, for later playback via a new instance of pmchart. In addition, when recording through pmchart one can also replay the recording immediately, as on termination of the recording (through the Record->Stop menu item), an archive mode Tab will be created with the captured view.
Once recording is active in a Live Tab, the Time Control status button in the bottom left corner of the pmchart window is displayed with a distinctive red dot. At any time during a pmchart recording session, the amount of space used in the filesystem by that recording can be displayed using the Record->Query menu item.
Finally, the Record->Detach menu option provides a mechanism whereby the recording process can be completely divorced from the running pmchart process, and allowed to continue on when pmchart exits. A dialog displaying the current size and estimated rate of growth for the recording is presented. On the other hand, if pmchart is terminated while recording is in process, then the recording process will prompt the user to choose immediate cessation of recording or for it to continue on independently.
CONFIGURATION FILE SYNTAX
pmchart loads predefined chart configurations (or "views") from external files that conform to the following rules. In the descriptions below keywords (shown in
bold) may appear in upper, lower or mixed case, elements shown in
[stuff]are optional, and user-supplied elements are shown as
<other stuff>. A vertical bar (|) is used where syntactic elements are alternatives. Quotes (") may be used to enclose lexical elements that may contain white space, such as titles, labels and instance names.
|1.||The first line defines the configuration file type and should be
although pmchart provides backwards compatibility for the older pmchart view formats with an initial line of
|2.||After the first line, lines beginning with "#" as the first non-white space character are treated as comments and skipped. Similarly blank lines are skipped.|
|3.||The next line should be
|4.||A configuration contains one or more charts defined as follows:
If specified, the title will appear centred and above the graph area of the chart. The
|5.||pmchart supports a
If specified, the title will appear in the chart legend. The
For older pmchart configuration files, the keyword
where each of
The optional instance specification,
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).
Of particular note, the $PCP_XCONFIRM_PROG setting is explicitly and unconditionally overridden by pmchart. This is set to the pmconfirm(1), utility, in order that some popup dialogs (particularly in the area of Recording) maintain a consistent look-and-feel with the rest of the pmchart application.
__pmFreeAttrsSpec(3), __pmFreeHostSpec(3), pmconfirm(1), pmdumptext(1), pmsnap(1), pmtime(1), sar2pcp(1), PCPIntro(1), ganglia2pcp(1), iostat2pcp(1), mkaf(1), mrtg2pcp(1), pcp-iostat(1), pcp-tapestat(1), pmafm(1), pmclient(1), pmdaweblog(1), pmevent(1), pminfo(1), pmlogsummary(1), pmrep(1), pmview(1), pmview(5), sheet2pcp(1), pmval(1), LOGARCHIVE(5), pcp2elasticsearch(1), pcp2graphite(1), pcp2influxdb(1), pcp2json(1), pcp2xml(1), pcp2zabbix(1), pcp2spark(1), pcp2xlsx(1), pcp-vmstat(1)