فهرست منبع

feat(opentsdb): context aware http requests

bergquist 9 سال پیش
والد
کامیت
5e0fa0f0ad
1فایلهای تغییر یافته به همراه15 افزوده شده و 2 حذف شده
  1. 15 2
      pkg/tsdb/opentsdb/opentsdb.go

+ 15 - 2
pkg/tsdb/opentsdb/opentsdb.go

@@ -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