diff --git a/partition/debug.go b/partition/debug.go index ac487760bdcf0f7f11d8236251166fcb0b0fc07d..339c611947f08ffc23f9dd90ab6822631f38a138 100644 --- a/partition/debug.go +++ b/partition/debug.go @@ -59,12 +59,12 @@ Versions: </tr> </thead> <tbody> - {{range .GlobalStatus.Sort}} + {{range $s := .GlobalStatus.Sort}} <tr> - <td>{{.Name}}</td> - <td>{{.Version}}</td> - <td>{{.Stamp}}</td> - <td>{{.Total}}</td> + <td><a href="{{$s.Target | httpize}}/debug/part/{{.Name}}">{{$s.Target}}</a></td> + <td>{{$s.Version}}</td> + <td>{{$s.Stamp}}</td> + <td>{{$s.Total}}</td> </tr> {{end}} </tbody> diff --git a/partition/status.go b/partition/status.go index b5e52d2065d84d19e1f4c92c97aba2c83a58d9a9..6bc7ba541ec848be7bcc241a5adb03b8ca063cb6 100644 --- a/partition/status.go +++ b/partition/status.go @@ -10,6 +10,7 @@ import ( type PartitionStatus struct { Name string + Target string Version string Stamp time.Time Counters map[string]int @@ -75,23 +76,24 @@ func target2addr(target string) string { func getPartitionStatus(name, target string) *PartitionStatus { client, err := rpc.DialHTTP("tcp", target2addr(target)) if err != nil { - return &PartitionStatus{Name: name, Err: err} + return &PartitionStatus{Name: name, Target: target, Err: err} } defer client.Close() req := &GetVersionRequest{Name: name} var resp GetVersionResponse if err := client.Call("Partition.GetVersion", req, &resp); err != nil { - return &PartitionStatus{Name: name, Err: err} + return &PartitionStatus{Name: name, Target: target, Err: err} } var sreq struct{} var sresp PartitionStatsResponse if err := client.Call("PartitionedService.GetStats", &sreq, &sresp); err != nil { - return &PartitionStatus{Name: name, Err: err} + return &PartitionStatus{Name: name, Target: target, Err: err} } return &PartitionStatus{ Name: name, + Target: target, Version: resp.Version, Stamp: resp.Stamp, Counters: sresp.Counters, @@ -112,7 +114,7 @@ func getGlobalPartitionStatus(pmap *PartitionMap, name string) statusMap { status := make(statusMap) for i := 0; i < len(targets); i++ { result := <-c - status[result.Name] = result + status[result.Target] = result } return status }