Documentation
¶
Index ¶
Constants ¶
View Source
const ( AGGREGATION_METHOD_MEDIAN = "median" AGGREGATION_METHOD_MODE = "mode" // DEVIATION_TYPE_NONE is no deviation check DEVIATION_TYPE_NONE = "none" // DEVIATION_TYPE_ANY is any difference from the previous value to the next value DEVIATION_TYPE_ANY = "any" // DEVIATION_TYPE_PERCENT is a numeric percentage difference DEVIATION_TYPE_PERCENT = "percent" // DEVIATION_TYPE_ABSOLUTE is a numeric unsigned difference DEVIATION_TYPE_ABSOLUTE = "absolute" REPORT_FORMAT_MAP = "map" REPORT_FORMAT_ARRAY = "array" REPORT_FORMAT_VALUE = "value" MODE_QUORUM_OCR = "ocr" MODE_QUORUM_ANY = "any" DEFAULT_REPORT_FORMAT = REPORT_FORMAT_MAP DEFAULT_OUTPUT_FIELD_NAME = "Reports" DEFAULT_MODE_QUORUM = MODE_QUORUM_ANY )
Variables ¶
This section is empty.
Functions ¶
func NewIdenticalAggregator ¶
func NewReduceAggregator ¶
func NewReduceAggregator(config values.Map) (types.Aggregator, error)
Types ¶
type AggregationField ¶
type AggregationField struct {
// An optional check to only report when the difference from the previous report exceeds a certain threshold.
// Can only be used when the field is of a numeric type: string, decimal, int64, big.Int, time.Time, float64
// If no deviation is provided on any field, there will always be a report once minimum observations are reached.
Deviation decimal.Decimal `mapstructure:"-" json:"-"`
DeviationString string `mapstructure:"deviation" json:"deviation,omitempty"`
// The format of the deviation being provided
// * percent - a percentage deviation
// * absolute - an unsigned numeric difference
// * none - no deviation check
// * any - any difference from the previous value to the next value
DeviationType string `mapstructure:"deviationType" json:"deviationType,omitempty" jsonschema:"enum=percent,enum=absolute,enum=none,enum=any"`
// The key to find a data point within the input data
// If omitted, the entire input will be used
InputKey string `mapstructure:"inputKey" json:"inputKey"`
// How the data set should be aggregated to a single value
// * median - take the centermost value of the sorted data set of observations. can only be used on numeric types. not a true median, because no average if two middle values.
// * mode - take the most frequent value. if tied, use the "first". use "ModeQuorom" to configure the minimum number of seen values.
Method string `mapstructure:"method" json:"method" jsonschema:"enum=median,enum=mode" required:"true"`
// When using Method=mode, this will configure the minimum number of values that must be seen
// * ocr - (default) enforces that the number of matching values must be at least f+1, otherwise consensus fails
// * any - do not enforce any limit on the minimum viable count. this may result in unexpected answers if every observation is unique.
ModeQuorum string `mapstructure:"modeQuorum" json:"modeQuorum,omitempty" jsonschema:"enum=ocr,enum=any" default:"ocr"`
// The key that the aggregated data is put under
// If omitted, the InputKey will be used
OutputKey string `mapstructure:"outputKey" json:"outputKey"`
// If enabled, this field will be moved from the top level map
// into a nested map on the key defined by "SubMapKey"
SubMapField bool `mapstructure:"subMapField" json:"subMapField,omitempty"`
}
type IdenticalAggConfig ¶ added in v0.4.1
type IdenticalAggConfig struct {
// Length of the list of observations that each node is expected to provide.
// Aggregator's output (i.e. EncodableOutcome) will be a values.Map with the same
// number of elements and keyed by indices 0,1,2,... (unless KeyOverrides are provided).
// Defaults to 1.
ExpectedObservationsLen int
// If non-empty, the keys in the outcome map will be replaced with these values.
// If non-empty, must be of length ExpectedObservationsLen.
KeyOverrides []string
}
func ParseConfigIdenticalAggregator ¶
func ParseConfigIdenticalAggregator(config values.Map) (IdenticalAggConfig, error)
type ReduceAggConfig ¶
type ReduceAggConfig struct {
// Configuration on how to aggregate one or more data points
Fields []AggregationField `mapstructure:"fields" required:"true"`
// The top level field name that report data is put into
OutputFieldName string `mapstructure:"outputFieldName" json:"outputFieldName" default:"Reports"`
// The structure surrounding the report data that is put on to "OutputFieldName"
ReportFormat string `mapstructure:"reportFormat" json:"reportFormat" default:"map" jsonschema:"enum=map,enum=array,enum=value"`
// Optional key name, that when given will contain a nested map with designated Fields moved into it
// If given, one or more fields must be given SubMapField: true
SubMapKey string `mapstructure:"subMapKey" json:"subMapKey" default:""`
}
func ParseConfigReduceAggregator ¶
func ParseConfigReduceAggregator(config values.Map) (ReduceAggConfig, error)
Click to show internal directories.
Click to hide internal directories.