[tor-dev] Twisted-based Tor client performance measurement tool

Rob van der Hoeven robvanderhoeven at ziggo.nl
Mon Jan 21 21:28:59 UTC 2013

Hi Karsten,

Over a year ago I wrote a small measuring proxy called Monitor In The
Middle. This proxy sits between the browser and Tor and examines all
HTTP traffic. Results of the measurements like response times, timeouts
etc can be viewed using an internal webserver (at http://mitm.proxy).

My code uses Twisted, but does not use the Tor control interface. Wrote
an article about it at:


You can download the source-code at:


Maybe this can be adapted to your needs? 


On Mon, 2013-01-21 at 21:06 +0100, Karsten Loesing wrote:
> Hi everyone,
> you probably heard of Torperf [0], the tool that produces our Tor client
> performance graphs [1].  Torperf is mostly a bunch of scripts and
> lengthy HOWTOs, so setting it up and keeping it happy is not exactly
> trivial.  The same applies to extending it, e.g., to make downloads
> using Selenium/Firefox rather than using its own C SOCKS client.
> I'm pondering a rewrite of Torperf in Twisted.  The idea is to have a
> single Twisted application that is trivial to install and that does the
> following things:
> 1) set up local Tor clients, configure them, and register for events;
> 2) run a local web server to download files from or upload files to;
> 3) periodically run one or more tests which can be:
> 3.1) an HTTP GET request over Tor to its own web server,
> 3.2) an HTTP POST request to measure upload speed,
> 3.3) a GET or POST request to a locally running hidden service,
> 3.4) a series of fetches of top 50 Alexa domains using Selenium/Firefox;
> 3.5) a series of requests to track stream/circ allocations for #5830;
> 4) store request timestamps and Tor controller events to SQLite;
> 5) provide results via a RESTful API over its web server.
> That's a lot, and to make things even more fun, there's a sponsor
> deadline to have more realistic Torperf measurements by February 28.
> So, I want to start with 3.4 and minimal versions of 4 and 5.  But I
> want to make sure that the remaining parts can be added later without
> redesigning everything again.
> My questions:
> - Is Twisted the right framework for this?  What are the alternatives?
> - Is there existing code that I should look at before writing new code?
> - Does anybody want to help out? :)
> Thanks!
> Karsten
> [0] https://gitweb.torproject.org/torperf.git
> [1] https://metrics.torproject.org/performance.html
> _______________________________________________
> tor-dev mailing list
> tor-dev at lists.torproject.org
> https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev

More information about the tor-dev mailing list