Make Torperf log circuit failures
Mike, Rob, and I briefly discussed at the dev meeting that we could make Torperf log circuit failures by adding REASON and REMOTE_REASON from CIRC events to Torperf's output whenever a request fails.
I can see how Torperf learns about circuit failures, but I'm yet unsure how to include this information in its output. Torperf outputs exactly one line per measurement. But if a circuit fails before attaching Torperf's measurement stream to it, we'll never learn about that circuit in the context of this measurement. And I assume this isn't just about circuits failing after they got a stream attached, right?
Here are a few options:
-
We don't include circuit failure information in Torperf's results, but log CIRC events locally to a separate file. These CIRC event log files won't be archived or made publicly available. This may work if we're only looking for changes in CIRC failures within the next few weeks or so.
-
We add a new field to Torperf's output collecting all CIRC failures since the last measurement. This is somewhat similar to the QUANTILE and TIMEOUT fields that contain values from the last received BUILDTIMEOUT_SET event.
-
We give up the one-output-line-per-measurement format and add further information to Torperf's output. This is a rather big data format change though. If we were to do this, we should also move QUANTILE and TIMEOUT to their own lines.
Thoughts?