Added downsampling params to alerting

pull/6290/head
utkarshcmu 9 years ago
parent 5e0fa0f0ad
commit cc0a39f816
  1. 33
      pkg/tsdb/opentsdb/opentsdb.go
  2. 11
      pkg/tsdb/opentsdb/types.go

@ -14,7 +14,7 @@ import (
"io/ioutil"
"net/http"
"net/url"
//"net/http/httputil"
"net/http/httputil"
"encoding/json"
"gopkg.in/guregu/null.v3"
@ -58,14 +58,29 @@ func (e *OpenTsdbExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice,
tsdbQuery.Start = queryContext.TimeRange.GetFromAsMsEpoch()
tsdbQuery.End = queryContext.TimeRange.GetToAsMsEpoch()
tsdbQuery.Queries = make([]map[string]interface{}, len(queries))
for _, query := range queries {
tsdbQuery.Queries = []OpenTsdbMetric{
OpenTsdbMetric{
Metric: query.Model.Get("metric").MustString(),
Aggregator: query.Model.Get("aggregator").MustString(),
},
for i := 0; i < len(queries); i++ {
metric := make(map[string]interface{})
metric["metric"] = queries[i].Model.Get("metric").MustString()
metric["aggregator"] = queries[i].Model.Get("aggregator").MustString()
disableDownsampling := queries[i].Model.Get("disableDownsampling").MustBool()
if !disableDownsampling {
downsampleInterval := queries[i].Model.Get("downsampleInterval").MustString()
if downsampleInterval == "" {
downsampleInterval = "1m" //default value for blank
}
downsample := downsampleInterval + "-" + queries[i].Model.Get("downsampleAggregator").MustString()
if queries[i].Model.Get("downsampleFillPolicy").MustString() != "none" {
metric["downsample"] = downsample + "-" + queries[i].Model.Get("downsampleFillPolicy").MustString()
}
}
tsdbQuery.Queries[i] = metric
}
if setting.Env == setting.DEV {
@ -110,13 +125,13 @@ func (e *OpenTsdbExecutor) createRequest(data OpenTsdbQuery) (*http.Request, err
req.SetBasicAuth(e.BasicAuthUser, e.BasicAuthPassword)
}
/*
requestDump, err := httputil.DumpRequest(req, true)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(requestDump))
*/
return req, err
}

@ -1,14 +1,9 @@
package opentsdb
type OpenTsdbQuery struct {
Start int64 `json:"start"`
End int64 `json:"end"`
Queries []OpenTsdbMetric `json:"queries"`
}
type OpenTsdbMetric struct {
Metric string `json:"metric"`
Aggregator string `json:"aggregator"`
Start int64 `json:"start"`
End int64 `json:"end"`
Queries []map[string]interface{} `json:"queries"`
}
type OpenTsdbResponse struct {

Loading…
Cancel
Save