return a string instead of Stat struct
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/7adadd54 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/7adadd54 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/7adadd54 Branch: refs/heads/master Commit: 7adadd5468f157adcc07320581171c00d8b5e847 Parents: 86c1166 Author: David Neuman <david.neuma...@gmail.com> Authored: Tue Jan 17 14:08:22 2017 -0700 Committer: Jeff Elsloo <jeffrey_els...@cable.comcast.com> Committed: Tue Jan 24 08:38:45 2017 -0700 ---------------------------------------------------------------------- .../traffic_monitor/deliveryservice/stat.go | 23 +++++++++++--------- 1 file changed, 13 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/7adadd54/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go ---------------------------------------------------------------------- diff --git a/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go b/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go index d93fb7e..6000012 100644 --- a/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go +++ b/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go @@ -106,7 +106,14 @@ func addAvailableData(dsStats Stats, crStates peer.Crstates, serverCachegroups m } if available.IsAvailable { - setDsState(deliveryService, &stat, mc) + stat.CommonStats.IsAvailable.Value = true + stat.CommonStats.IsHealthy.Value = true + errStr := getDsErrString(deliveryService, stat, mc) + if errStr != "" { + stat.CommonStats.IsAvailable.Value = false + stat.CommonStats.IsHealthy.Value = false + stat.CommonStats.ErrorStr.Value = errStr + } stat.CommonStats.CachesAvailableNum.Value++ cacheGroupStats := stat.CacheGroups[cacheGroup] cacheGroupStats.IsAvailable.Value = true @@ -506,19 +513,15 @@ func (s Stats) JSON(filter dsdata.Filter, params url.Values) dsdata.StatsOld { return *jsonObj } -func setDsState(dsName enum.DeliveryServiceName, dsStats *dsdata.Stat, monitorConfig to.TrafficMonitorConfigMap) { +func getDsErrString(dsName enum.DeliveryServiceName, dsStats dsdata.Stat, monitorConfig to.TrafficMonitorConfigMap) string { dsNameString := fmt.Sprintf("%s", dsName) - dsStats.CommonStats.IsAvailable.Value = true - dsStats.CommonStats.IsHealthy.Value = true if dsStats.Total().TpsTotal.Value > monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold { - dsStats.CommonStats.ErrorStr.Value = fmt.Sprintf("TPSTotal too high (%v > %v)", dsStats.Total().TpsTotal.Value, monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold) - dsStats.CommonStats.IsAvailable.Value = false - dsStats.CommonStats.IsHealthy.Value = false + return fmt.Sprintf("TPSTotal too high (%v > %v)", dsStats.Total().TpsTotal.Value, monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold) + } if dsStats.Total().Kbps.Value > float64(monitorConfig.DeliveryService[dsNameString].TotalKbpsThreshold) { - dsStats.CommonStats.ErrorStr.Value = fmt.Sprintf("TotalKbps too high (%v > %v)", dsStats.Total().Kbps.Value, monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold) - dsStats.CommonStats.IsAvailable.Value = false - dsStats.CommonStats.IsHealthy.Value = false + return fmt.Sprintf("TotalKbps too high (%v > %v)", dsStats.Total().Kbps.Value, monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold) } + return "" }