mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
package elasticsearch
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/grafana/grafana/pkg/components/simplejson"
 | 
						|
)
 | 
						|
 | 
						|
// Query represents the time series query model of the datasource
 | 
						|
type Query struct {
 | 
						|
	TimeField  string       `json:"timeField"`
 | 
						|
	RawQuery   string       `json:"query"`
 | 
						|
	BucketAggs []*BucketAgg `json:"bucketAggs"`
 | 
						|
	Metrics    []*MetricAgg `json:"metrics"`
 | 
						|
	Alias      string       `json:"alias"`
 | 
						|
	Interval   string
 | 
						|
	RefID      string
 | 
						|
}
 | 
						|
 | 
						|
// BucketAgg represents a bucket aggregation of the time series query model of the datasource
 | 
						|
type BucketAgg struct {
 | 
						|
	Field    string           `json:"field"`
 | 
						|
	ID       string           `json:"id"`
 | 
						|
	Settings *simplejson.Json `json:"settings"`
 | 
						|
	Type     string           `jsons:"type"`
 | 
						|
}
 | 
						|
 | 
						|
// MetricAgg represents a metric aggregation of the time series query model of the datasource
 | 
						|
type MetricAgg struct {
 | 
						|
	Field             string           `json:"field"`
 | 
						|
	Hide              bool             `json:"hide"`
 | 
						|
	ID                string           `json:"id"`
 | 
						|
	PipelineAggregate string           `json:"pipelineAgg"`
 | 
						|
	Settings          *simplejson.Json `json:"settings"`
 | 
						|
	Meta              *simplejson.Json `json:"meta"`
 | 
						|
	Type              string           `json:"type"`
 | 
						|
}
 | 
						|
 | 
						|
var metricAggType = map[string]string{
 | 
						|
	"count":          "Count",
 | 
						|
	"avg":            "Average",
 | 
						|
	"sum":            "Sum",
 | 
						|
	"max":            "Max",
 | 
						|
	"min":            "Min",
 | 
						|
	"extended_stats": "Extended Stats",
 | 
						|
	"percentiles":    "Percentiles",
 | 
						|
	"cardinality":    "Unique Count",
 | 
						|
	"moving_avg":     "Moving Average",
 | 
						|
	"derivative":     "Derivative",
 | 
						|
	"raw_document":   "Raw Document",
 | 
						|
}
 | 
						|
 | 
						|
var extendedStats = map[string]string{
 | 
						|
	"avg":                        "Avg",
 | 
						|
	"min":                        "Min",
 | 
						|
	"max":                        "Max",
 | 
						|
	"sum":                        "Sum",
 | 
						|
	"count":                      "Count",
 | 
						|
	"std_deviation":              "Std Dev",
 | 
						|
	"std_deviation_bounds_upper": "Std Dev Upper",
 | 
						|
	"std_deviation_bounds_lower": "Std Dev Lower",
 | 
						|
}
 | 
						|
 | 
						|
var pipelineAggType = map[string]string{
 | 
						|
	"moving_avg": "moving_avg",
 | 
						|
	"derivative": "derivative",
 | 
						|
}
 | 
						|
 | 
						|
func isPipelineAgg(metricType string) bool {
 | 
						|
	if _, ok := pipelineAggType[metricType]; ok {
 | 
						|
		return true
 | 
						|
	}
 | 
						|
	return false
 | 
						|
}
 | 
						|
 | 
						|
func describeMetric(metricType, field string) string {
 | 
						|
	text := metricAggType[metricType]
 | 
						|
	return text + " " + field
 | 
						|
}
 |