func apiGetServerGroupList() (int, string) { groups, err := models.ServerGroups(safeZkConn, globalEnv.ProductName()) if err != nil { log.Warning(err) return 500, err.Error() } b, err := json.MarshalIndent(groups, " ", " ") return 200, string(b) }
func runListServerGroup() error { groups, err := models.ServerGroups(zkConn, productName) if err != nil { log.Warning(err) return err } b, _ := json.MarshalIndent(groups, " ", " ") fmt.Println(string(b)) return nil }
func apiGetServerGroupList() (int, string) { conn := CreateZkConn() defer conn.Close() groups, err := models.ServerGroups(conn, productName) if err != nil { log.Warning(err) return 500, err.Error() } b, err := json.MarshalIndent(groups, " ", " ") return 200, string(b) }
func getLivingNodeInfos(zkConn zkhelper.Conn) ([]*NodeInfo, error) { groups, err := models.ServerGroups(zkConn, globalEnv.ProductName()) if err != nil { return nil, errors.Trace(err) } slots, err := models.Slots(zkConn, globalEnv.ProductName()) slotMap := make(map[int][]int) for _, slot := range slots { if slot.State.Status == models.SLOT_STATUS_ONLINE { slotMap[slot.GroupId] = append(slotMap[slot.GroupId], slot.Id) } } var ret []*NodeInfo for _, g := range groups { master, err := g.Master(zkConn) if err != nil { return nil, errors.Trace(err) } if master == nil { return nil, errors.Errorf("group %d has no master", g.Id) } out, err := utils.GetRedisConfig(master.Addr, "maxmemory") if err != nil { return nil, errors.Trace(err) } maxMem, err := strconv.ParseInt(out, 10, 64) if err != nil { return nil, errors.Trace(err) } if maxMem <= 0 { return nil, errors.Errorf("redis %s should set maxmemory", master.Addr) } node := &NodeInfo{ GroupId: g.Id, CurSlots: slotMap[g.Id], MaxMemory: maxMem, } ret = append(ret, node) } cnt := 0 for _, info := range ret { cnt += len(info.CurSlots) } if cnt != models.DEFAULT_SLOT_NUM { return nil, errors.New("not all slots are online") } return ret, nil }
func apiOverview() (int, string) { conn := CreateZkConn() defer conn.Close() // get all server groups groups, err := models.ServerGroups(conn, productName) if err != nil { log.Warning("get server groups error, maybe there is no any server groups? err:", err) return 500, err.Error() } var instances []string for _, group := range groups { for _, srv := range group.Servers { if srv.Type == "master" { instances = append(instances, srv.Addr) } } } var info map[string]interface{} = make(map[string]interface{}) info["product"] = productName info["ops"] = proxiesSpeed var redisInfos []map[string]string = make([]map[string]string, 0) if len(instances) > 0 { for _, instance := range instances { info, err := utils.GetRedisStat(instance) if err != nil { log.Error(err) } redisInfos = append(redisInfos, info) } } info["redis_infos"] = redisInfos b, err := json.MarshalIndent(info, " ", " ") return 200, string(b) }
func apiOverview() (int, string) { conn := CreateZkConn() defer conn.Close() // get all server groups groups, err := models.ServerGroups(conn, globalEnv.ProductName()) if err != nil && !zkhelper.ZkErrorEqual(err, zk.ErrNoNode) { return 500, err.Error() } var instances []string for _, group := range groups { for _, srv := range group.Servers { if srv.Type == "master" { instances = append(instances, srv.Addr) } } } info := make(map[string]interface{}) info["product"] = globalEnv.ProductName() info["ops"] = proxiesSpeed redisInfos := make([]map[string]string, 0) if len(instances) > 0 { for _, instance := range instances { info, err := utils.GetRedisStat(instance) if err != nil { log.Error(err) } redisInfos = append(redisInfos, info) } } info["redis_infos"] = redisInfos b, err := json.MarshalIndent(info, " ", " ") return 200, string(b) }