diff --git a/prometheus/push/http.go b/prometheus/push/http.go new file mode 100644 index 0000000..208adf3 --- /dev/null +++ b/prometheus/push/http.go @@ -0,0 +1,21 @@ +// Copyright 2019 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package push + +import "net/http" + +// HTTPClient is a interface for http client +type HTTPClient interface { + Do(*http.Request) (*http.Response, error) +} diff --git a/prometheus/push/push.go b/prometheus/push/push.go index 6636ffc..f145919 100644 --- a/prometheus/push/push.go +++ b/prometheus/push/push.go @@ -61,7 +61,7 @@ type Pusher struct { gatherers prometheus.Gatherers registerer prometheus.Registerer - client *http.Client + client HTTPClient useBasicAuth bool username, password string @@ -170,7 +170,7 @@ func (p *Pusher) Grouping(name, value string) *Pusher { // Client sets a custom HTTP client for the Pusher. For convenience, this method // returns a pointer to the Pusher itself. -func (p *Pusher) Client(c *http.Client) *Pusher { +func (p *Pusher) Client(c HTTPClient) *Pusher { p.client = c return p }