// Copyright 2019 Yunion // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package monitor import "yunion.io/x/pkg/util/sets" type ReducerType string const ( REDUCER_AVG ReducerType = "avg" REDUCER_SUM ReducerType = "sum" REDUCER_MIN ReducerType = "min" REDUCER_MAX ReducerType = "max" REDUCER_COUNT ReducerType = "count" REDUCER_LAST ReducerType = "last" REDUCER_MEDIAN ReducerType = "median" REDUCER_DIFF ReducerType = "diff" REDUCER_DELTA ReducerType = "delta" REDUCER_PERCENT_DIFF ReducerType = "percent_diff" REDUCER_COUNT_NON_NULL ReducerType = "count_non_null" REDUCER_PERCENTILE ReducerType = "percentile" ) var ValidateReducerTypes = sets.NewString() func init() { for _, rt := range []ReducerType{REDUCER_AVG, REDUCER_SUM, REDUCER_MIN, REDUCER_MAX, REDUCER_COUNT, REDUCER_LAST, REDUCER_MEDIAN, REDUCER_DIFF, REDUCER_DELTA, REDUCER_PERCENT_DIFF, REDUCER_COUNT_NON_NULL, REDUCER_PERCENTILE} { ValidateReducerTypes.Insert(string(rt)) } } type ReducedResult struct { Reducer Condition `json:"reducer"` Result []float64 `json:"result"` }