From aa80b52c073530347003589a342648d355f2cf92 Mon Sep 17 00:00:00 2001 From: bergquist Date: Thu, 8 Sep 2016 16:29:31 +0200 Subject: [PATCH] feat(alerting): make it possible to skip ssl verification for alerting https requests --- conf/defaults.ini | 3 +++ conf/sample.ini | 3 +++ pkg/setting/setting.go | 4 +++- pkg/tsdb/graphite/graphite.go | 19 ++++++++++++++----- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/conf/defaults.ini b/conf/defaults.ini index 53a034bfeaa..685699b19db 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -387,6 +387,9 @@ global_session = -1 [alerting] enabled = true +# Skip ssl validation for queries sent to the timeserie database. +skip_ssl_validation = false + #################################### Internal Grafana Metrics ########################## # Metrics available at HTTP API Url /api/metrics [metrics] diff --git a/conf/sample.ini b/conf/sample.ini index 2c428ea775f..d72e63db508 100644 --- a/conf/sample.ini +++ b/conf/sample.ini @@ -333,6 +333,9 @@ check_for_updates = true [alerting] ;enabled = false +# Skip ssl validation for queries sent to the timeserie database. +;skip_ssl_validation = false + #################################### Internal Grafana Metrics ########################## # Metrics available at HTTP API Url /api/metrics [metrics] diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index fd010c42ca2..376e1c1408a 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -141,7 +141,8 @@ var ( Quota QuotaSettings // Alerting - AlertingEnabled bool + AlertingEnabled bool + AlertingSkipSSLValidation bool // logger logger log.Logger @@ -546,6 +547,7 @@ func NewConfigContext(args *CommandLineArgs) error { alerting := Cfg.Section("alerting") AlertingEnabled = alerting.Key("enabled").MustBool(false) + AlertingSkipSSLValidation = alerting.Key("skip_ssl_validation").MustBool(false) readSessionConfig() readSmtpSettings() diff --git a/pkg/tsdb/graphite/graphite.go b/pkg/tsdb/graphite/graphite.go index 6e554dbe810..ec1e454e6e9 100644 --- a/pkg/tsdb/graphite/graphite.go +++ b/pkg/tsdb/graphite/graphite.go @@ -1,6 +1,7 @@ package graphite import ( + "crypto/tls" "encoding/json" "fmt" "io/ioutil" @@ -15,10 +16,6 @@ import ( "github.com/grafana/grafana/pkg/tsdb" ) -var ( - HttpClient = http.Client{Timeout: time.Duration(10 * time.Second)} -) - type GraphiteExecutor struct { *tsdb.DataSourceInfo } @@ -27,11 +24,23 @@ func NewGraphiteExecutor(dsInfo *tsdb.DataSourceInfo) tsdb.Executor { return &GraphiteExecutor{dsInfo} } -var glog log.Logger +var ( + glog log.Logger + HttpClient http.Client +) func init() { glog = log.New("tsdb.graphite") tsdb.RegisterExecutor("graphite", NewGraphiteExecutor) + + tr := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: setting.AlertingSkipSSLValidation}, + } + + HttpClient = http.Client{ + Timeout: time.Duration(10 * time.Second), + Transport: tr, + } } func (e *GraphiteExecutor) Execute(queries tsdb.QuerySlice, context *tsdb.QueryContext) *tsdb.BatchResult {