mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package influxdb
|
|
|
|
import (
|
|
"context"
|
|
"crypto/tls"
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/grafana/grafana/pkg/log"
|
|
"github.com/grafana/grafana/pkg/tsdb"
|
|
)
|
|
|
|
type InfluxDBExecutor struct {
|
|
*tsdb.DataSourceInfo
|
|
QueryParser *InfluxdbQueryParser
|
|
}
|
|
|
|
func NewInfluxDBExecutor(dsInfo *tsdb.DataSourceInfo) tsdb.Executor {
|
|
return &InfluxDBExecutor{
|
|
DataSourceInfo: dsInfo,
|
|
QueryParser: &InfluxdbQueryParser{},
|
|
}
|
|
}
|
|
|
|
var (
|
|
glog log.Logger
|
|
HttpClient *http.Client
|
|
)
|
|
|
|
func init() {
|
|
glog = log.New("tsdb.influxdb")
|
|
tsdb.RegisterExecutor("influxdb", NewInfluxDBExecutor)
|
|
|
|
tr := &http.Transport{
|
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
}
|
|
|
|
HttpClient = &http.Client{
|
|
Timeout: time.Duration(15 * time.Second),
|
|
Transport: tr,
|
|
}
|
|
}
|
|
|
|
func (e *InfluxDBExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice, context *tsdb.QueryContext) *tsdb.BatchResult {
|
|
result := &tsdb.BatchResult{}
|
|
for _, v := range queries {
|
|
|
|
query, err := e.QueryParser.Parse(v.Model)
|
|
|
|
if err != nil {
|
|
result.Error = err
|
|
return result
|
|
}
|
|
glog.Info("Influxdb executor", "query", query)
|
|
}
|
|
|
|
return result
|
|
}
|