Fix panic in mongodb input if ShardStats is nil (#6680)

This commit is contained in:
alan7yg 2019-11-20 02:52:48 +08:00 committed by Daniel Nelson
parent 7ff6ec1963
commit a66b6729e9
1 changed files with 16 additions and 14 deletions

View File

@ -983,21 +983,23 @@ func NewStatLine(oldMongo, newMongo MongoStatus, key string, all bool, sampleSec
} }
// Set shard stats // Set shard stats
newShardStats := *newMongo.ShardStats if newMongo.ShardStats != nil {
returnVal.TotalInUse = newShardStats.TotalInUse newShardStats := *newMongo.ShardStats
returnVal.TotalAvailable = newShardStats.TotalAvailable returnVal.TotalInUse = newShardStats.TotalInUse
returnVal.TotalCreated = newShardStats.TotalCreated returnVal.TotalAvailable = newShardStats.TotalAvailable
returnVal.TotalRefreshing = newShardStats.TotalRefreshing returnVal.TotalCreated = newShardStats.TotalCreated
returnVal.ShardHostStatsLines = map[string]ShardHostStatLine{} returnVal.TotalRefreshing = newShardStats.TotalRefreshing
for host, stats := range newShardStats.Hosts { returnVal.ShardHostStatsLines = map[string]ShardHostStatLine{}
shardStatLine := &ShardHostStatLine{ for host, stats := range newShardStats.Hosts {
InUse: stats.InUse, shardStatLine := &ShardHostStatLine{
Available: stats.Available, InUse: stats.InUse,
Created: stats.Created, Available: stats.Available,
Refreshing: stats.Refreshing, Created: stats.Created,
} Refreshing: stats.Refreshing,
}
returnVal.ShardHostStatsLines[host] = *shardStatLine returnVal.ShardHostStatsLines[host] = *shardStatLine
}
} }
return returnVal return returnVal