| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package datasources
- // import (
- // "bytes"
- // "encoding/json"
- // "fmt"
- // "io/ioutil"
- // "net/http"
- // "net/url"
- // "strconv"
- // "time"
- //
- // "github.com/grafana/grafana/pkg/components/simplejson"
- // "github.com/grafana/grafana/pkg/log"
- // m "github.com/grafana/grafana/pkg/models"
- // "github.com/grafana/grafana/pkg/util"
- // )
- //
- // type GraphiteClient struct{}
- //
- // type GraphiteSerie struct {
- // Datapoints [][2]float64
- // Target string
- // }
- //
- // var DefaultClient = &http.Client{
- // Timeout: time.Minute,
- // }
- //
- // type GraphiteResponse []GraphiteSerie
- //
- // func (client GraphiteClient) GetSeries(rule m.AlertJob, datasource m.DataSource) (m.TimeSeriesSlice, error) {
- // v := url.Values{
- // "format": []string{"json"},
- // "target": []string{getTargetFromRule(rule.Rule)},
- // "until": []string{"now"},
- // "from": []string{"-" + strconv.Itoa(rule.Rule.QueryRange) + "s"},
- // }
- //
- // log.Trace("Graphite: sending request with querystring: ", v.Encode())
- //
- // req, err := http.NewRequest("POST", datasource.Url+"/render", nil)
- //
- // if err != nil {
- // return nil, fmt.Errorf("Could not create request")
- // }
- //
- // req.Body = ioutil.NopCloser(bytes.NewReader([]byte(v.Encode())))
- //
- // if datasource.BasicAuth {
- // req.Header.Add("Authorization", util.GetBasicAuthHeader(datasource.User, datasource.Password))
- // }
- //
- // res, err := DefaultClient.Do(req)
- //
- // if err != nil {
- // return nil, err
- // }
- //
- // if res.StatusCode != http.StatusOK {
- // return nil, fmt.Errorf("expected httpstatus 200, found %d", res.StatusCode)
- // }
- //
- // response := GraphiteResponse{}
- //
- // json.NewDecoder(res.Body).Decode(&response)
- //
- // var timeSeries []*m.TimeSeries
- // for _, v := range response {
- // timeSeries = append(timeSeries, m.NewTimeSeries(v.Target, v.Datapoints))
- // }
- //
- // return timeSeries, nil
- // }
- //
- // func getTargetFromRule(rule m.AlertRule) string {
- // json, _ := simplejson.NewJson([]byte(rule.Query))
- //
- // return json.Get("target").MustString()
- // }
|