Merge pull request #7466 from hagen1778/prometheus-basicauth-query

allow setting basic auth headers for prometheus datasource
This commit is contained in:
Carl Bergquist 2017-02-07 11:18:17 +01:00 committed by GitHub
commit 7d205ae2b8

View File

@ -22,6 +22,18 @@ type PrometheusExecutor struct {
Transport *http.Transport
}
type basicAuthTransport struct {
*http.Transport
username string
password string
}
func (bat basicAuthTransport) RoundTrip(req *http.Request) (*http.Response, error) {
req.SetBasicAuth(bat.username, bat.password)
return bat.Transport.RoundTrip(req)
}
func NewPrometheusExecutor(dsInfo *models.DataSource) (tsdb.Executor, error) {
transport, err := dsInfo.GetHttpTransport()
if err != nil {
@ -51,6 +63,14 @@ func (e *PrometheusExecutor) getClient() (prometheus.QueryAPI, error) {
Transport: e.Transport,
}
if e.BasicAuth {
cfg.Transport = basicAuthTransport{
Transport: e.Transport,
username: e.BasicAuthUser,
password: e.BasicAuthPassword,
}
}
client, err := prometheus.New(cfg)
if err != nil {
return nil, err