lp:~vila/bzr/transportstats

Created by Vincent Ladeuil and last modified

Provides a 'stats+' decorator collecting statistics about network-related IO on Transport methods.
Provides a ts-display command summarizing bytes read and written, number of requests issued and average latency.

Get this branch:
bzr branch lp:~vila/bzr/transportstats
Only Vincent Ladeuil can upload to this branch. If you are Vincent Ladeuil please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Vincent Ladeuil
Project:
Bazaar
Status:
Experimental

Recent revisions

31. By Vincent Ladeuil

Various cleanups left uncommitted for far too long.

30. By Vincent Ladeuil

More precision for latency.

* stats.py:
(HTTPTransportReadv): readv should not be counted as requests
since we count the _get.

* decorator.py:
(HTTPStatsCollector): readv and get should not be instrumented
since we instrument _get directly.
(HTTPStatsCollector.__init__): Rename the original and injected
_get attributes with better names.
(HTTPStatsCollector._get_nb_bytes_streamed): Take into account the
latency of the reads on the socket. Clean up dead code.

29. By Vincent Ladeuil

Implement an HTTP specific collection to get finer results.

* stats.py:
New HTTP specific statistic formats.

* decorator.py:
(StatsCollector.__new__): Create implementation specific
statistics collectors if needed.
(DefaultStatsCollector): New class implementing the default
statistic collection (formerly StatsCollecor). Some method renamed
so that daughter classes can access them.
(DefaultStatsCollector._max_latency): Now a class attribute.
(HTTPStatsCollector): HTTP specific implementation, mostly for
readv and _get.

* commands.py:
(cmd_ts_display.run): Add 'bytes requested' and 'cumulated
latency' since those are interesting data.

28. By Vincent Ladeuil

Relax the constraint on latency format, 1 minute was too restrictive
given that the actual measure is imprecise (to say the least) and that
known cases exist where it may be well above (when the latency measured
includes the download of several MB).

* statsfile.py:
(StatsFile): Bump format, latency is now a long.

* stats.py:
(StatsRegistry): latency is a long.

* decorator.py:
(StatsCollector): Limiting latency to 1 minute to be able to store
in on a short is uselss, get rid of that and use a long.

27. By Vincent Ladeuil

* TODO:
Notes about changing default mode.

26. By Vincent Ladeuil

Make verbose more detailed.

* statsfile.py:
(UniqueByteLongStringsContainer): 255 is the highest value
storable on a byte, AFAIK.
(StatsContainer): Name the serializer by what they contains not by
how they store their content.
(StatsFile): Bump the format since the previous one was bogus.

* stats.py:
(StatsPart.__init__): Create a format usable with print

* commands.py:
(cmd_ts_display.run): Display all the raw attributes when using
'-v'.

25. By Vincent Ladeuil

Get rid of struct dependancy, no need for such a hammer.

* tests/test_statsfile.py:
(TestsStatsContainer.test_write, TestsStatsContainer.test_read):
Fix typos.

* serialize.py:
Get rid of struct and convert to network byte order manually.

* TODO:
Use coherent syntax.

24. By Vincent Ladeuil

Should have been committed last monday.

* TODO:
More braindump.

23. By Vincent Ladeuil

Reuse existing methods for testing presence or absence of files.

* tests/blackbox.py:
Simplified.

22. By Vincent Ladeuil

Braindump before percolation.

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar-NG Knit Repository Format 1
This branch contains Public information 
Everyone can see this information.

Subscribers