diff --git a/pkg/datasource/response_handler.go b/pkg/datasource/response_handler.go index e1f3a57..b6bbdaa 100644 --- a/pkg/datasource/response_handler.go +++ b/pkg/datasource/response_handler.go @@ -15,6 +15,7 @@ import ( func convertHistoryToTimeSeries(history zabbix.History, items []*zabbix.Item) []*timeseries.TimeSeriesData { seriesMap := make(map[string]*timeseries.TimeSeriesData, len(items)) + hostsCount := getHostsCount(items) itemsMap := make(map[string]*zabbix.Item, len(items)) for _, item := range items { @@ -32,7 +33,7 @@ func convertHistoryToTimeSeries(history zabbix.History, items []*zabbix.Item) [] pointSeries.Meta.Item = pointItem pointSeries.Meta.Item.Name = itemName pointSeries.Meta.Name = itemName - if len(pointItem.Hosts) > 0 { + if hostsCount > 1 { pointSeries.Meta.Name = fmt.Sprintf("%s: %s", pointItem.Hosts[0].Name, itemName) } pointSeries.Meta.Interval = parseItemUpdateInterval(pointItem.Delay) @@ -215,3 +216,14 @@ func getValueMapping(item zabbix.Item, valueMaps []zabbix.ValueMap) data.ValueMa } return mappings } + +// Returns number of uniq hosts for given items +func getHostsCount(items []*zabbix.Item) int { + hostsMap := make(map[string]bool, 0) + for _, item := range items { + for _, host := range item.Hosts { + hostsMap[host.ID] = true + } + } + return len(hostsMap) +}