Commit Graph

59 Commits

Author SHA1 Message Date
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
01042d0fda Use waitpid($pid, WNOHANG) instead of kill(0, $pid). 2012-01-10 11:25:18 -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
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
Brian Fraser
7b12dbec64 Work in progress v3: Working interactive mode, initial documentation.
With this most of the interactive mode should be working.

pt_diskstats.pm has the documentation and can be used for testing,
which should be in the next commit.

This commit also includes the revamped command line options.
2011-12-15 20:26:55 -03:00
Brian Fraser
0fd09e8f6e Work in progress v2: Redesign pt-diskstats in Perl. 2011-12-13 14:53:05 -03:00
Brian Fraser
43b29d6374 Work in progress: Redesign pt-diskstats in Perl.
Mostly bits and pieces at the moments. ReadKeyMini is a portable-ish
Term::ReadKey. Used here by DiskstatsMenu, which is currently only
for show.

Diskstats has most of the logic of the old pt-diskstats, with parts
now implemented by the DiskstatsGroupBy* classes; The latter subclass
the former.

As mentioned at the start, this is a work in progress. In addition to to
not having all the parts attached, also missing are the data-gathering mode,
the command-line argument parsing, and a large amount of tests.
2011-12-08 19:26:04 -03:00
Daniel Nichter
2f9ab4081a Fix prepared report for statements without corresponding prep or exec. 2011-11-08 12:53:50 -07:00
Daniel Nichter
792c3a6638 Use Data::Dumper so debug statement works. 2011-09-12 10:53:53 -06:00
Daniel Nichter
e2282b0f9e Add RowChecksum::get_crc_args(). 2011-09-12 10:29:26 -06:00
Daniel Nichter
0f05ca9b94 Fix multi-column index nibbling. Remove extra spaces in generated statements. 2011-09-12 08:14:57 -06:00
Daniel Nichter
3ed822e8e6 Implement dynamic chunk size, set_chunk_size(). 2011-09-12 07:32:19 -06:00
Daniel Nichter
0bb4497fbe Avoid recursion in main NibbleIterator loop. 2011-09-11 12:32:26 -06:00
Daniel Nichter
69cee0d26e Close all sths when obj is destroyed. 2011-09-11 11:41:59 -06:00
Daniel Nichter
985ee65928 Pass EXPLAIN sths to callbacks. 2011-09-11 11:10:11 -06:00
Daniel Nichter
f19472b471 Pass nibbleno to callbacks. 2011-09-11 10:48:53 -06:00
Daniel Nichter
8ce093655f Add dms arg, remove before_row callback, pass some args to callbacks, get next boundary if no rows (so exec_nibble callback can skip nibbles). 2011-09-11 10:22:40 -06:00
Daniel Nichter
84f7c47ff4 Rename new TableChecksum to RowChecksum and revert TableChecksum to r108. This will avoid completely break TableSync*.pm and pt-table-sync. 2011-09-10 13:46:55 -06:00
Daniel Nichter
968d10ac37 Refactor TableChecksum for NibbleIterator (use only BIT_XOR, return just column list, etc.). 2011-09-10 12:21:00 -06:00
Daniel Nichter
c989bd29dd First working NibbleIterator. 2011-09-09 17:29:28 -06:00
Daniel Nichter
7fde36a65b Create NibbleIterator. Cleanup TableNibbler. Fix bug in SchemaIterator. 2011-09-09 11:50:19 -06:00
Daniel Nichter
1373f69361 Fix OptionParser to parse new version format. 2011-09-01 09:01:34 -06:00
Daniel Nichter
a7ab27bb54 Don't get min/max a 2nd time in _chunk_char(). Use where in _chunk_char(). Test char chunking world_city.name with real range stats. Add failing pt-table-checksum char chunk --where test. 2011-08-27 11:17:28 -06:00
Daniel Nichter
2c7257caff More stabilizing Daemon.t. 2011-08-24 11:20:27 -06:00
Daniel Nichter
ff59f479e6 Add parentheses to avoid ambiguity. 2011-08-23 08:29:47 -06:00
Daniel Nichter
f23ca1af89 Fix and test --version. Add CHECK to update-modules. 2011-08-12 09:03:56 -06:00
Daniel Nichter
1a720f7c67 Removed unused modules. 2011-08-02 17:32:12 -06:00
Daniel Nichter
1e6c4daf23 Fix debug statement. 2011-08-02 16:24:59 -06:00
Daniel Nichter
743f29155b Rewrite pt-log-player player.t. 2011-07-14 11:52:13 -06:00
Daniel Nichter
31398457f4 Fix pt-log-player tests. 2011-07-14 11:37:49 -06:00
Daniel Nichter
7526f97224 Fix and make tests more reliable. 2011-07-14 11:05:05 -06:00
Daniel Nichter
db76b3ca30 Make pt-archiver tests more reliable on weird, slow boxes like my vbox. 2011-07-14 09:57:16 -06:00
Daniel Nichter
ea0b8c3d5a Remove unused modules and their tests. 2011-07-13 16:55:38 -06:00
Daniel Nichter
1480606bb2 Fix MasterSlave::get_slave_lag(). Revert pt-table-checksum to use old SchemaIterator. Remove pt-table-usage tests. Fix use of var from another package in pt-query-digest. Remove reference to $VERSION from pt-show-grants. Change mk- to pt- in pt-variable-advisor sample. 2011-07-13 16:36:14 -06:00