[metrics-bugs] #29787 [Metrics/Onionperf]: Enumerate possible failure cases and include failure information in .tpf output
Tor Bug Tracker & Wiki
blackhole at torproject.org
Mon Apr 8 14:24:36 UTC 2019
#29787: Enumerate possible failure cases and include failure information in .tpf
output
-------------------------------+------------------------------
Reporter: karsten | Owner: metrics-team
Type: enhancement | Status: new
Priority: Medium | Milestone:
Component: Metrics/Onionperf | Version:
Severity: Normal | Resolution:
Keywords: | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
-------------------------------+------------------------------
Comment (by acute):
It appears the tgen states are recorded by onionperf in the json output:
{{{
RESPONSEA;RESPONSEA>RESPONSEB;RESPONSEB>RESPONSEC;RESPONSEC>SUCCESS;COMMAND>RESPONSE;RESPONSE>PAYLOAD;PAYLOAD>CHECKSUM;CHECKSUM>SUCCESS;
}}}
...corresponds to:
{{{
"proxy_choice": 0.003267, //CHOICE
"proxy_init": 0.000639, //INIT
"proxy_request": 0.007366, //REQUEST
"proxy_response": 1.042777, //RESPONSE A/B/C
"response": 1.246581, //RESPONSE
"payload_progress" //PAYLOAD
"socket_connect": 0.000555, //CONNECT
"checksum": 13.956267, //CHECKSUM
"command": 10.765423, //COMMAND
[...]
}}}
Where there is an error that stops the flow of state changes, the json
will only contain the states that succeeded. My theory is that we can
infer the phase where a transfer failed directly from the json output of
OnionPerf. I've been working on a script that produces a *.csv output with
all the information from the json for all onionperf errors. You can see a
sample *csv file [https://erg.abdn.ac.uk/~ana/errors_a.csv here] (can't
attach as trac thinks it's spam):
To test the theory above, I suggest we compare your results with the
results of my python script over the same data.
[https://erg.abdn.ac.uk/~ana/op_errors.py Here is the python script] you
can run over the same data you analyzed to see if we can get the same
results (i.e same phase where the transfer errored). The *csv records
other information also. You need python3 and python3-pandas installed for
the script to run.
{{{
python3 op_errors.py --path folder-with-json-files
}}}
[ Also the script matches whether there was an error recorded in tor
stream for each transfer. Matching is done on the port+timestamp. So far I
can see only onionperf 'proxy' errors are directly linked to tor
errors...let me know if you need more info on what the columns in the csv
are]
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29787#comment:6>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the metrics-bugs
mailing list