|
|
@@ -2,10 +2,14 @@ package opentsdb
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
+ "crypto/tls"
|
|
|
"fmt"
|
|
|
"path"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
+ "time"
|
|
|
+
|
|
|
+ "golang.org/x/net/context/ctxhttp"
|
|
|
|
|
|
"io/ioutil"
|
|
|
"net/http"
|
|
|
@@ -30,12 +34,21 @@ func NewOpenTsdbExecutor(dsInfo *tsdb.DataSourceInfo) tsdb.Executor {
|
|
|
|
|
|
var (
|
|
|
plog log.Logger
|
|
|
- HttpClient http.Client
|
|
|
+ HttpClient *http.Client
|
|
|
)
|
|
|
|
|
|
func init() {
|
|
|
plog = log.New("tsdb.opentsdb")
|
|
|
tsdb.RegisterExecutor("opentsdb", NewOpenTsdbExecutor)
|
|
|
+
|
|
|
+ tr := &http.Transport{
|
|
|
+ TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
|
+ }
|
|
|
+
|
|
|
+ HttpClient = &http.Client{
|
|
|
+ Timeout: time.Duration(15 * time.Second),
|
|
|
+ Transport: tr,
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
func (e *OpenTsdbExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice, queryContext *tsdb.QueryContext) *tsdb.BatchResult {
|
|
|
@@ -65,7 +78,7 @@ func (e *OpenTsdbExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice,
|
|
|
return result
|
|
|
}
|
|
|
|
|
|
- res, err := HttpClient.Do(req)
|
|
|
+ res, err := ctxhttp.Do(ctx, HttpClient, req)
|
|
|
if err != nil {
|
|
|
result.Error = err
|
|
|
return result
|