mirror of
https://github.com/grafana/grafana.git
synced 2024-11-25 18:30:41 -06:00
4840adff00
Removes moment dependency. Adds response parser tests (based on frontend tests). Adds time series query tests (based on frontend tests). Fixes various issues related to response parsing and building search request queries. Added support for extended stats metrics and geo hash grid aggregations.
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
|
|
}
|