func (s *ProxySuite) SetUpTest(c *C) { s.conf = config.DefaultConfig() s.conf.TraceKey = "my_trace_key" s.conf.EndpointTimeout = 500 * time.Millisecond mbus := fakeyagnats.New() s.r = registry.NewCFRegistry(s.conf, mbus) fmt.Printf("Config: %#v", s.conf) s.accessLogFile = new(test_util.FakeFile) accessLog := access_log.NewFileAndLoggregatorAccessLogger(s.accessLogFile, "localhost:9843", "secret", 42) go accessLog.Run() s.p = NewProxy(ProxyArgs{ EndpointTimeout: s.conf.EndpointTimeout, Ip: s.conf.Ip, TraceKey: s.conf.TraceKey, Registry: s.r, Reporter: nullVarz{}, Logger: accessLog, }) ln, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { panic(err) } server := server.Server{Handler: s.p} go server.Serve(ln) s.proxyServer = ln }
func BenchmarkRegister(b *testing.B) { c := config.DefaultConfig() mbus := fakeyagnats.New() r := registry.NewCFRegistry(c, mbus) proxy.NewProxy(proxy.ProxyArgs{ EndpointTimeout: c.EndpointTimeout, Ip: c.Ip, TraceKey: c.TraceKey, Registry: r, Reporter: varz.NewVarz(r), Logger: access_log.CreateRunningAccessLogger(c), }) for i := 0; i < b.N; i++ { str := strconv.Itoa(i) r.Register( route.Uri("bench.vcap.me."+str), &route.Endpoint{ Host: "localhost", Port: uint16(i), }, ) } }
func NewRouter(c *config.Config) *Router { router := &Router{ config: c, } // setup number of procs if router.config.GoMaxProcs != 0 { runtime.GOMAXPROCS(router.config.GoMaxProcs) } router.mbusClient = yagnats.NewClient() router.registry = registry.NewCFRegistry(router.config, router.mbusClient) router.registry.StartPruningCycle() router.varz = varz.NewVarz(router.registry) args := proxy.ProxyArgs{ EndpointTimeout: router.config.EndpointTimeout, Ip: router.config.Ip, TraceKey: router.config.TraceKey, Registry: router.registry, Reporter: router.varz, Logger: access_log.CreateRunningAccessLogger(router.config), } router.proxy = proxy.NewProxy(args) var host string if router.config.Status.Port != 0 { host = fmt.Sprintf("%s:%d", router.config.Ip, router.config.Status.Port) } varz := &vcap.Varz{ UniqueVarz: router.varz, } varz.LogCounts = log.Counter healthz := &vcap.Healthz{ LockableObject: router.registry, } router.component = &vcap.VcapComponent{ Type: "Router", Index: router.config.Index, Host: host, Credentials: []string{router.config.Status.User, router.config.Status.Pass}, Config: router.config, Varz: varz, Healthz: healthz, InfoRoutes: map[string]json.Marshaler{ "/routes": router.registry, }, } vcap.StartComponent(router.component) return router }
func (s *VarzSuite) SetUpTest(c *C) { r := registry.NewCFRegistry(config.DefaultConfig(), fakeyagnats.New()) s.Registry = r s.Varz = NewVarz(r) }