show worker queue size in the cluster status

This commit is contained in:
Murat Kabilov 2017-08-28 11:06:44 +02:00
parent f44c8e1206
commit 53ceede3cb
2 changed files with 11 additions and 4 deletions

View File

@ -51,9 +51,15 @@ func (c *Controller) GetStatus() *spec.ControllerStatus {
clustersCnt := len(c.clusters) clustersCnt := len(c.clusters)
c.clustersMu.RUnlock() c.clustersMu.RUnlock()
queueSizes := make(map[int]int, c.opConfig.Workers)
for workerID, queue := range c.clusterEventQueues {
queueSizes[workerID] = len(queue.ListKeys())
}
return &spec.ControllerStatus{ return &spec.ControllerStatus{
LastSyncTime: atomic.LoadInt64(&c.lastClusterSyncTime), LastSyncTime: atomic.LoadInt64(&c.lastClusterSyncTime),
Clusters: clustersCnt, Clusters: clustersCnt,
WorkerQueueSize: queueSizes,
} }
} }

View File

@ -102,8 +102,9 @@ type ClusterStatus struct {
// ControllerStatus describes status of the controller // ControllerStatus describes status of the controller
type ControllerStatus struct { type ControllerStatus struct {
LastSyncTime int64 LastSyncTime int64
Clusters int Clusters int
WorkerQueueSize map[int]int
} }
// QueueDump describes cache.FIFO queue // QueueDump describes cache.FIFO queue