Impossible metric for Snowflake proxy

I’m running one of my Snowflake proxies from an ISP that only has like about 10Mbps upload speed, now I discovered the following metric that seems quite impossible:

2023/10/27 10:08:30 In the last 1h0m0s, there were 4 connections. Traffic Relayed ↓ 24784414 KB, ↑ 1207934 KB.

In my calculations having 10Mbps available (and note everything that comes down must go up) means at most around 4.5 GB (10x3600/8=4500MB) should have been able to get transferred during that hour, not 24+ GB. So what’s going on? I think I know the reason and this is that the amount of traffic send / received is only determined at the end of a session, so what we are seeing is the aggregated result of one (or more) sessions that have been active for like 6 hours. Perhaps this can be looked into and it would be possible to confirm by code inspection, the amount of data send received should perhaps be updated during a session too.

I think I know the reason and this is that the amount of traffic send / received is only determined at the end of a session, so what we are seeing is the aggregated result of one (or more) sessions that have been active for like 6 hours.

The relevant code is here, and it looks like your intuition is right, it only adds to the count when a connection is over.

Agreed, I ran into this issue today too, and MarkC from irc pointed me to this forum thread.

I opened this snowflake gitlab ticket for the issue: Proxy hourly stats did not actually happen during that hour (#40302) · Issues · The Tor Project / Anti-censorship / Pluggable Transports / Snowflake · GitLab

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.

We just merged a fix for this: Proxy stats log only what occurred that time interval (!202) · Merge requests · The Tor Project / Anti-censorship / Pluggable Transports / Snowflake · GitLab

Feel free to reopen the issue if it does not work for you.

4 Likes