Skip frontend functions
This commit is contained in:
@@ -18,8 +18,14 @@ var errParsingFunctionParam = func(err error) error {
|
|||||||
|
|
||||||
type DataProcessingFunc = func(series timeseries.TimeSeries, params ...string) (timeseries.TimeSeries, error)
|
type DataProcessingFunc = func(series timeseries.TimeSeries, params ...string) (timeseries.TimeSeries, error)
|
||||||
|
|
||||||
|
type MetaDataProcessingFunc = func(series *timeseries.TimeSeriesData, params ...string) (*timeseries.TimeSeriesData, error)
|
||||||
|
|
||||||
var funcMap map[string]DataProcessingFunc
|
var funcMap map[string]DataProcessingFunc
|
||||||
|
|
||||||
|
var metaFuncMap map[string]MetaDataProcessingFunc
|
||||||
|
|
||||||
|
var frontendFuncMap map[string]bool
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
funcMap = map[string]DataProcessingFunc{
|
funcMap = map[string]DataProcessingFunc{
|
||||||
"groupBy": applyGroupBy,
|
"groupBy": applyGroupBy,
|
||||||
@@ -27,6 +33,12 @@ func init() {
|
|||||||
"offset": applyOffset,
|
"offset": applyOffset,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Functions processing on the frontend
|
||||||
|
frontendFuncMap = map[string]bool{
|
||||||
|
"setAlias": true,
|
||||||
|
"replaceAlias": true,
|
||||||
|
"setAliasByRegex": true,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func applyFunctions(series []*timeseries.TimeSeriesData, functions []QueryFunction) ([]*timeseries.TimeSeriesData, error) {
|
func applyFunctions(series []*timeseries.TimeSeriesData, functions []QueryFunction) ([]*timeseries.TimeSeriesData, error) {
|
||||||
@@ -39,6 +51,8 @@ func applyFunctions(series []*timeseries.TimeSeriesData, functions []QueryFuncti
|
|||||||
}
|
}
|
||||||
s.TS = result
|
s.TS = result
|
||||||
}
|
}
|
||||||
|
} else if _, ok := frontendFuncMap[f.Def.Name]; ok {
|
||||||
|
continue
|
||||||
} else {
|
} else {
|
||||||
err := errFunctionNotSupported(f.Def.Name)
|
err := errFunctionNotSupported(f.Def.Name)
|
||||||
return series, err
|
return series, err
|
||||||
|
|||||||
@@ -26,7 +26,13 @@ func convertHistoryToTimeSeries(history zabbix.History, items []*zabbix.Item) []
|
|||||||
}
|
}
|
||||||
pointSeries := seriesMap[point.ItemID]
|
pointSeries := seriesMap[point.ItemID]
|
||||||
if pointSeries.Meta.Item == nil {
|
if pointSeries.Meta.Item == nil {
|
||||||
|
itemName := pointItem.ExpandItemName()
|
||||||
pointSeries.Meta.Item = pointItem
|
pointSeries.Meta.Item = pointItem
|
||||||
|
pointSeries.Meta.Item.Name = itemName
|
||||||
|
pointSeries.Meta.Name = itemName
|
||||||
|
if len(pointItem.Hosts) > 0 {
|
||||||
|
pointSeries.Meta.Name = fmt.Sprintf("%s: %s", pointItem.Hosts[0].Name, itemName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
value := point.Value
|
value := point.Value
|
||||||
@@ -51,12 +57,7 @@ func convertTimeSeriesToDataFrame(series []*timeseries.TimeSeriesData) *data.Fra
|
|||||||
|
|
||||||
for _, s := range series {
|
for _, s := range series {
|
||||||
field := data.NewFieldFromFieldType(data.FieldTypeNullableFloat64, 0)
|
field := data.NewFieldFromFieldType(data.FieldTypeNullableFloat64, 0)
|
||||||
item := s.Meta.Item
|
field.Name = s.Meta.Name
|
||||||
if len(item.Hosts) > 0 {
|
|
||||||
field.Name = fmt.Sprintf("%s: %s", item.Hosts[0].Name, item.ExpandItemName())
|
|
||||||
} else {
|
|
||||||
field.Name = item.ExpandItemName()
|
|
||||||
}
|
|
||||||
|
|
||||||
frame.Fields = append(frame.Fields, field)
|
frame.Fields = append(frame.Fields, field)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ type TimeSeriesData struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type TimeSeriesMeta struct {
|
type TimeSeriesMeta struct {
|
||||||
|
Name string
|
||||||
Item *zabbix.Item
|
Item *zabbix.Item
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user