@ -120,7 +120,13 @@ type PrometheusWriter struct {
metrics * metrics . RemoteWriter
}
func NewPrometheusWriter (
type PrometheusWriterConfig struct {
URL string
HTTPOptions httpclient . Options
Timeout time . Duration
}
func NewPrometheusWriterWithSettings (
settings setting . RecordingRuleSettings ,
httpClientProvider HttpClientProvider ,
clock clock . Clock ,
@ -136,18 +142,34 @@ func NewPrometheusWriter(
headers . Add ( k , v )
}
cl , err := httpClientProvider . New ( httpclient . Options {
BasicAuth : createAuthOpts ( settings . BasicAuthUsername , settings . BasicAuthPassword ) ,
Header : headers ,
} )
cfg := PrometheusWriterConfig {
URL : settings . URL ,
HTTPOptions : httpclient . Options {
BasicAuth : createAuthOpts ( settings . BasicAuthUsername , settings . BasicAuthPassword ) ,
Header : headers ,
} ,
Timeout : settings . Timeout ,
}
return NewPrometheusWriter ( cfg , httpClientProvider , clock , l , metrics )
}
func NewPrometheusWriter (
cfg PrometheusWriterConfig ,
httpClientProvider HttpClientProvider ,
clock clock . Clock ,
l log . Logger ,
metrics * metrics . RemoteWriter ,
) ( * PrometheusWriter , error ) {
cl , err := httpClientProvider . New ( cfg . HTTPOptions )
if err != nil {
return nil , err
}
clientCfg := promremote . NewConfig (
promremote . UserAgent ( "grafana-recording-rule" ) ,
promremote . WriteURLOption ( settings . URL ) ,
promremote . HTTPClientTimeoutOption ( settings . Timeout ) ,
promremote . WriteURLOption ( cfg . URL ) ,
promremote . HTTPClientTimeoutOption ( cfg . Timeout ) ,
promremote . HTTPClientOption ( cl ) ,
)