func statCallback(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) fmt.Fprintf(w, "Version: %s\n", local.Version) fmt.Fprintf(w, "NumSession: %d\n", getProxySessionSize()) if nil != dnsCache { fmt.Fprintf(w, "DNSCacheSize: %d\n", dnsCache.Len()) } ots.Handle("stat", w) for _, p := range proxyTable { p.PrintStat(w) } dumpProxySessions(w) }
func (proc *processorEventHander) OnEvent(event *Event, conn io.ReadWriteCloser) { procQPSTrack.IncMsgCount(1) if procGORoutinesCounter.Add(1) > int64(procConfig.MaxGORoutine) { procGORoutinesCounter.Add(-1) glog.Warningf("Too many[%d] goroutines in processor, discard incoming event.", procGORoutinesCounter.Get()) return } go func() { start := time.Now().UnixNano() if event.GetType() == EventType_NOTIFY { procConfig.Proc.OnMessage(event.Msg, event.GetHashCode()) } else { if event.GetTo() != getProcessorName() { fmt.Errorf("Recv msg %T to %s, but current processor is %s", event.Msg, event.GetTo(), getProcessorName()) return } if event.GetType() == EventType_RESPONSE { triggerClientSessionRes(event.Msg, event.GetHashCode()) } else { var res proto.Message if admin, ok := event.Msg.(*AdminRequest); ok { err := ots.Handle(admin.GetLine(), &adminEventWriter{event.GetHashCode()}) res = &AdminResponse{} if err == io.EOF { res.(*AdminResponse).Close = proto.Bool(true) } } else { res = procConfig.Proc.OnRPC(event.Msg) } response(res, event, procipc) } } end := time.Now().UnixNano() cost := (end - start) / 1000000 //millsecs procLatencyTrack.AddCost(cost) procGORoutinesCounter.Add(-1) }() }
func stackdumpCallback(w http.ResponseWriter, req *http.Request) { w.WriteHeader(200) ots.Handle("stackdump", w) }
func statCallback(w http.ResponseWriter, req *http.Request) { w.WriteHeader(200) fmt.Fprintf(w, "Version: %s\n", remote.Version) fmt.Fprintf(w, "NumSession: %d\n", remote.GetSessionTableSize()) ots.Handle("stat", w) }
func gcCallback(w http.ResponseWriter, req *http.Request) { w.WriteHeader(200) ots.Handle("gc", w) }
func memdumpCallback(w http.ResponseWriter, req *http.Request) { w.WriteHeader(200) ots.Handle("MemProfile", w) }