lp:~vila/bzr/transportstats
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
Branch merges
Branch information
Recent revisions
- 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. - 26. By Vincent Ladeuil
-
Make verbose more detailed.
* statsfile.py:
(UniqueByteLongStringsContaine r): 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, TestsStatsConta iner.test_ read):
Fix typos.* serialize.py:
Get rid of struct and convert to network byte order manually.* TODO:
Use coherent syntax. - 23. By Vincent Ladeuil
-
Reuse existing methods for testing presence or absence of files.
* tests/blackbox.py:
Simplified.
Branch metadata
- Branch format:
- Branch format 6
- Repository format:
- Bazaar-NG Knit Repository Format 1