Running Snowflake with MoaV (~260 GB relayed), a new Grafana dashboard, and a few questions

Hi all,

I maintain MoaV (Mother of all VPNs), an open-source, self-hosted, multi-protocol censorship-circumvention stack (Reality/VLESS/xray, Hysteria2, WireGuard/AmneziaWG, DNS tunnels, and more). One opt-in feature runs the official snowflake-proxy as a bundled donation service, so anyone who brings up a MoaV server for their own circumvention will also donate capacity to Snowflake from the same box with a single toggle. I also built a Grafana dashboard for snowflake so operators can see their contribution.

Some data from our test servers

  • Proxy A: ~46,000 completed connections, ~236 GB relayed (running ~3 months)
  • Proxy B: ~1,500 completed connections, ~24 GB relayed (~few weeks)
    Together: ~47,500 connections and ~260 GB relayed to Snowflake clients.

Snowflake Grafana dashboard

For most services running in MoaV, we created a specialized Grafana dashboard, same goes for Snowflake.

Panels: connection rate, up/down throughput, cumulative bytes relayed, client countries, and uptime. It reads the proxy’s periodic status line, so it works with a stock `snowflake-proxy`.

Questions

1. Traffic dropped to almost 0

Both proxies were genuinely busy for a couple of weeks (peaks around **12–13 GB/day each**), and then **both dropped to almost zero at essentially the same time**, around mid-month:

Proxy A — daily relayed (MB)
  07/30  6752
  08/05  8171
  08/06 10446
  08/08  5337
  08/10  4204
  08/11 12895
  ...then near-zero

Proxy B — daily relayed (MB)
  08/10   804
  08/11  1475
  08/12 13168
  08/13  7363
  08/14   155   <-- drops here
  ...then near-zero

The only thing that changed on our side is that both containers were recreated/updated to 2.14.1 on the same day the traffic died. We’re on the latest proxy (2.14.1), NAT is unrestricted, nothing errors in the logs, and a fresh restart re-registers fine.

what would cause two independent, unrestricted proxies to go from ~12 GB/day to near-zero right after a restart/update, and stay there? Is this expected broker behaviour (client assignment moving elsewhere, a reputation/warm-up effect after re-registration), or is there something a proxy operator commonly gets wrong on an update? What should we check first?

2. client-country counting.

For the grafana dashboard, I’ve implemented a geoip analytics, which works for other proxies like sing-box, xray, conduit, etc. However for Snowflake, after some initial head-banging-to-the-wall, I found out that tor-geoip-db has special format, and it “started to work”. Although as you can see in the screenshot, it shows 1 connection per country and usually never changes. This is probably an issue in the integration but how should the country data be interpreted: per completed connection, per unique client, or sampled? We want the panel to represent reach honestly. Any canonical reference is welcome.


I’m still tweaking the code to figure out many parts, and I would really appreciate any pointers or contributions to make the dashboards work properly.

Thanks for building Snowflake.