code: func (s *service) snapshot() *seesaw.Service {
  	ss := &seesaw.Service{
  		ServiceKey: seesaw.ServiceKey{
  			AF:    s.af,
  			Proto: s.proto,
  			Port:  s.port,
  		},
  		Mode:          s.ventry.Mode,
  		Scheduler:     s.ventry.Scheduler,
  		OnePacket:     s.ventry.OnePacket,
  		Persistence:   s.ventry.Persistence,
  		IP:            s.ip.IP(),
  		Healthy:       s.healthy,
  		Enabled:       s.vserver.enabled,
  		Active:        s.active,
  		Stats:         s.stats,
  		Destinations:  make(map[string]*seesaw.Destination),
  		LowWatermark:  s.ventry.LowWatermark,
  		HighWatermark: s.ventry.HighWatermark,
  	}
  	for _, d := range s.dests {
  		sd := d.snapshot()
  		ss.Destinations[sd.Backend.Hostname] = sd
  	}
  
  	numBackends := 0
  	numHealthyDests := 0
  	for _, d := range s.dests {
  		if d.backend.InService {
  			numBackends++
  		}
  		if d.healthy {
  			numHealthyDests++
  		}
  	}
  	if numBackends > 0 {
  		ss.CurrentWatermark = float32(numHealthyDests) / float32(numBackends)
  	}
  
  	return ss
  }
docs: // snapshot exports the current running state of a service.