pcp
[Top] [All Lists]

Multi-Archive Contexts: Tools Audit and Testing

To: PCP Mailing List <pcp@xxxxxxxxxxx>
Subject: Multi-Archive Contexts: Tools Audit and Testing
From: Dave Brolley <brolley@xxxxxxxxxx>
Date: Thu, 25 Feb 2016 18:13:49 -0500
Delivered-to: pcp@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
Hi All,

I have completed an audit of the PCP tools with respect to how they interact with the multi-archive context support, which included testing of each tool. The scripts I used for testing will eventually become the qa tests for these tools. Here is a summary:

The following tools Just Work(tm), which is to say that using them against sets of archives produces the same output as if the archives were combined using pmlogextract and the tools were run against the resulting archive:
pmcollectl, pmevent, pmval, pmstat, pmchart, pmatop, pminfo, pmlogsummary, pmclient, pmclient_fg, pmdiff, pmiostat, pmprobe, pmrep, pmlogrewrite, pmlogreduce, pmlogextract (yes, even pmlogextract correctly hands a set of archives among its arguments as if it were a single archive).
pmie and pmdumptext both do their own parsing of comma-separated lists of archives (I knew there were more precedents for this!), which is good, because for those tools, each comma-separated archive must be from a different host. As expected and desired, however, specifying a directory as one of the comma-separated items works for both tools.

pmwebd's -I option accepts directory names and correctly serves the archives within.

pmloglabel, pmlogcheck and pmlogmv do their own checking for valid archive names and, as such, will only work against single archives. It is my opinion that pmloglabel and pmlogcheck can, and should, be enhanced to work against multi-archive contexts in the near future.

That leaves one last tool which we have already talked about; namely pmdumplog. This tool works correctly against multi-archive contexts in all respects except when dumping the temporal indices. It even dumps the virtual <mark> records when the -M option is specified. However, it will dump only the time indices from the first archive in the set. With a little work and the implementation of some kind of __pmGetFirstTimeIndex(), __pmGetNextTimeIndex() API, this tool could also be made fully compatible with multi-archive contexts.

All the tools continue to work as before for single archive contexts.

If no one feels that any of the above is a show stopper, I would like to merge my branch in the next day or so. Decisions on how to handle the few stray tools can still be finalized before the release (scheduled March 18) and I will also have enough time to add the qa and man/book updates.

Dave
<Prev in Thread] Current Thread [Next in Thread>