Commit Graph

215 Commits

Author SHA1 Message Date
Brian Fraser
27323776a8 Applied Baron's patch, which changes how qtime and stime are calculated.
Also includes a second attempt at fixing the $Diskstats::printed_lines bug,
and fixed how the timestamp is chosen if --show-timestamps is in effect.
2012-02-03 14:00:40 -03:00
Brian Fraser
0a25bd038b Merge with Baron's branch, and changes as per the new spec/docs. 2012-02-03 12:11:14 -03:00
baron@percona.com
6770f1a9dc clarify documentation, serving as a spec for Brian 2012-02-02 23:13:38 -05:00
baron@percona.com
88fc42514f merge Brian's changes 2012-02-02 20:33:23 -05:00
Brian Fraser
d11856d48f Moved the calculation of {read,write}_ios_sec around a bit and marked it as TODO 2012-02-02 19:38:03 -03:00
Brian Fraser
2f3f75965a Fixed a 'Use of uninitialized value' error in Diskstats->print_deltas()
It's not clear to me how this can even happen, as the variable is
package-scoped and set during compilation, but this should fix it.
2012-02-02 11:14:20 -03:00
baron@percona.com
bfc61bd6b1 tweaks to docs 2012-02-02 08:45:32 -05:00
baron@percona.com
b837a0ca7e merge Brian's doc changes 2012-02-02 08:42:42 -05:00
baron@percona.com
13bf6c7f8f tweaks to docs, targeting the desired behavior that isn't there yet 2012-02-02 08:36:32 -05:00
Brian Fraser
b0f7bc4fc6 Tweaks requested by Baron, plus fixes.
Tweaks:
* --headers command line option, which can be used to
        enable/disable the automatic headers, and the
        automatic empty lines between samples.
* --show-timestamps, which changes the #ts line with
        a timestamp in the HH:MM:SS format.
* Always use ReadKeyMini, even when we have Term::ReadKey.
        In the latter case, use the Term::ReadKey functions,
        but if they fail, try again with our own versions.

Fix:
Looks like I forgot to actually enable the "save the current, first
and last" samples. This is now on. It should mean faster and better
output when changing --group-by modes.
2012-02-01 19:12:03 -03:00
baron@percona.com
e0d358fce1 documentation updates 2012-02-01 11:41:39 -05:00
baron@percona.com
f7626b29a6 merge upstream 2012-02-01 10:30:25 -05:00
Brian Fraser
7c4c186978 Change how Diskstats waits for its first handful of samples.
This fixes two bugs -- One a rounding error, one a desyncronization
between the main program and the data gathering daemon.

Additionally, it changes how the daemon prints the very first
sample. Before it would unconditionally wait until the time was
%$sample-time, which meant that in a worst case scenario,
a user could be left waiting for a while before seeing a line
of output.
This commit changes that first wait to only sleep if less
than 20% away from %$sample-time.
2012-02-01 12:14:09 -03:00
baron@percona.com
bcc514f9a9 merge upstream 2012-02-01 08:57:40 -05:00
Brian Fraser
3de8aa530b More fixes as per Baron's review. 2012-01-31 22:44:00 -03:00
baron@percona.com
d3e64ffc96 merge upstream 2012-01-31 15:24:25 -05:00
Brian Fraser
940b8d6bab Merge from Baron's doc branch 2012-01-31 13:47:09 -03:00
Brian Fraser
73c1e466d7 Several fixes & changes:
* qtime and stime computed correctly
* Interactive mode and changing groups doesn't fail
* Interactive mode no longer uses a file to gather samples.
2012-01-30 17:44:18 -03:00
baron@percona.com
5acec0d38e initial documentation 2012-01-25 16:11:09 -05:00
Brian Fraser
ad552756b2 Automatic headers & improvements. 2012-01-18 19:01:19 -03:00
Brian Fraser
5b43ed0d5e More changes as per Baron's review.
Tries to implement a facsimile to http://www.xaprb.com/blog/2011/03/18/how-to-gather-statistics-at-regular-intervals/
For both sampling and rendering.
2012-01-18 05:19:48 -03:00
Brian Fraser
3a66cf5187 Removed lib/pt_diskstats.pm, since it's no longer needed. 2012-01-17 11:41:15 -03:00
Brian Fraser
05fec15473 Fixes as per Baron's review. 2012-01-17 11:40:01 -03:00
Brian Fraser
076c0d70b1 (Whoops. Forgot to commit the changed tests) 2012-01-16 09:48:59 -03:00
Brian Fraser
d01d838b64 Several changes as per Baron & Daniel's mails.
Most importantly, it replaces --zero-rows with --show-inactive, and
changes the default logic used to decide when to print a device.
2012-01-16 09:37:53 -03:00
Daniel Nichter
87d12c9802 Don't warn about invalid lines, just debug them. Anchor TS pattern. Unset --sample-time unless --group-by sample. 2012-01-12 14:26:31 -07:00
Daniel Nichter
60e16254d3 Correction to r140: only the test marked in this diff needs to be fixed. 2012-01-12 12:09:01 -07:00
Daniel Nichter
9404ff84ef Rewrite pt-diskstats.t but all tests need to be fixed. Update modules in pt-diskstats, use PTDEBUG, check regex opts. Remove output_fh from Diskstats. Fix DiskstatsMenu header so update-modules can see it. 2012-01-12 12:06:50 -07:00
Daniel Nichter
8d70a272fe Simplify parse_diskstats_line() and _calc_delta_for(). Use UPPERCASE for constants. Don't save unused values in dev stats array. Use actual values from an OptionParser/pt-diskstats. 2012-01-12 10:09:40 -07:00
Brian Fraser
3165b3c0f8 Slew of changes from Daniel's review. 2012-01-12 10:37:49 -03:00
Brian Fraser
6d47e958c7 Change ->filter_zeroed_rows into ->zero_rows. 2012-01-10 16:28:32 -03:00
Brian Fraser
f173069109 Stop using /(?=)/ since /.+/ is good enough.
Originally, DiskstatsMenu differentiated between an empty pattern
entered by the user (which in the shell version meant "match all")
and any other valid pattern by replacing it with /(?=)/.

However, Diskstats now carries the original string, inside the
OptionParser object, so the above was redundant.
2012-01-10 16:10:50 -03:00
Brian Fraser
eaae370f81 Removed the handling of the partition format.
/proc/diskstats actually has two formats, one for devices, one for
partitions. The latter wasn't handled by the original pt-diskstats,
but one of the previous commits introducing some minimal handling
for that. This commit removes that, since the partition format
doesn't have enough information to be useful.
2012-01-10 14:28:24 -03:00
Brian Fraser
13210d1978 Explicit setter for filename. 2012-01-10 14:16:44 -03:00
Brian Fraser
5ad1bc4fbb Explicit setter for device_regex and column_regex. 2012-01-10 14:14:32 -03:00
Brian Fraser
93279a03da Explicit setter for out_fh. 2012-01-10 14:05:02 -03:00
Brian Fraser
ae76c73395 Explicit setter for interactive. 2012-01-10 14:01:11 -03:00
Brian Fraser
79bdf3f1d3 Explicit setter for sample_time 2012-01-10 13:52:43 -03:00
Brian Fraser
187d921069 Explicit setter for filter_zeroed_rows 2012-01-10 13:46:05 -03:00
Brian Fraser
25909caa4e Explicit setters for (curr|prev|first)_ts. 2012-01-10 13:40:51 -03:00
Brian Fraser
9fd8e8d61d Make a test clean up after itself. 2012-01-10 11:26:11 -03:00
Brian Fraser
01042d0fda Use waitpid($pid, WNOHANG) instead of kill(0, $pid). 2012-01-10 11:25:18 -03:00
Brian Fraser
5098d33372 Updated tool based on the previous commits. 2012-01-10 10:55:16 -03:00
Brian Fraser
038dfeba59 Useless local pointed out by Daniel. 2012-01-10 10:53:28 -03:00
Brian Fraser
b4289010b1 Several fixes. --save-samples and --help should work now. 2012-01-10 10:47:50 -03:00
Brian Fraser
93271379d8 Tool updated based on the previous commit. 2011-12-22 19:32:51 -03:00
Brian Fraser
d3ef9edaaa Several corrections as per Daniel and Baron's feedback.
Still TODO: Attributes still have a single method that doubles
as a getter and setter. The constructor for Diskstats is still
weird -- A tad more stricter than it should be, if anything.
->print_rest is still rest, even though that's hardly
memorable, mostly because of a lack of ideas on what to
rename it. The main loop in the Menu is still a while (1).

As a nice perk, it's nearly twice as fast now! It also adds a
_very_ experimental --memory-for-speed argument, which
turns on memoization for the current biggest bottleneck.
2011-12-22 19:24:56 -03:00
Brian Fraser
467254aca3 Fixes to the Menu; additionally, changed the accepted format for samples.
Also made it hide rows that are all zeroes by default, as per the
blueprint.
2011-12-20 12:53:35 -03:00
Brian Fraser
8da8d1ff61 Diskstats.pm: Wrong math for millisecond to second.
Sorry about that. Mind bug on my side.
2011-12-16 13:55:31 -03:00
Brian Fraser
13c9c5b0bb Added the actual pt-diskstats tool.
Missing a doc overhaul and tests, but this deals with most of the
feature upgrades in the blueprint.

The shell version of pt-diskstats is now in bin has pt-diskstats-shell,
in case that's needed.
2011-12-16 13:40:22 -03:00