code: func mergeStats(new stats, old stats) stats {
  	new.UptimeSeconds = mergeValue(new.UptimeSeconds, old.UptimeSeconds)
  	new.PendingSessionKeys = mergeValue(new.PendingSessionKeys, old.PendingSessionKeys)
  	new.ActiveSessions = mergeValue(new.ActiveSessions, old.ActiveSessions)
  	new.Connections = mergeValue(new.Connections, old.Connections)
  	new.Proxies = mergeValue(new.Proxies, old.Proxies)
  	new.BytesProxied = mergeValue(new.BytesProxied, old.BytesProxied)
  	new.GoRoutines = mergeValue(new.GoRoutines, old.GoRoutines)
  	new.Options.SessionRate = mergeValue(new.Options.SessionRate, old.Options.SessionRate)
  	new.Options.GlobalRate = mergeValue(new.Options.GlobalRate, old.Options.GlobalRate)
  	return new
  }
docs: // Due to some unexplainable behaviour, some of the numbers sometimes travel slightly backwards (by less than 1%)
  // This happens between scrapes, which is 30s, so this can't be a race.
  // This causes prometheus to assume a "rate reset", hence causes phenomenal spikes.
  // One of the number that moves backwards is BytesProxied, which atomically increments a counter with numeric value
  // returned by net.Conn.Read(). I don't think that can return a negative value, so I have no idea what's going on.