NewAPI instantiates a prometheus api
(backend Backend)
| 10 | |
| 11 | // NewAPI instantiates a prometheus api |
| 12 | func NewAPI(backend Backend) (v1.API, error) { |
| 13 | config := api.Config{ |
| 14 | Address: backend.Host, |
| 15 | } |
| 16 | |
| 17 | if len(backend.Headers) > 0 { |
| 18 | config.RoundTripper = promhttp.RoundTripperFunc(func(req *http.Request) (*http.Response, error) { |
| 19 | for key, value := range backend.Headers { |
| 20 | req.Header.Add(key, value) |
| 21 | } |
| 22 | return http.DefaultTransport.RoundTrip(req) |
| 23 | }) |
| 24 | } |
| 25 | |
| 26 | c, err := api.NewClient(config) |
| 27 | if err != nil { |
| 28 | return nil, err |
| 29 | } |
| 30 | |
| 31 | return v1.NewAPI(c), nil |
| 32 | } |