Documentation
¶
Overview ¶
Package httpconfig is a wrapper around github.com/prometheus/common/config.
Index ¶
- Variables
- func NewHTTPClient(cfg ClientConfig, name string) (*http.Client, error)
- func NewRoundTripperFromConfig(cfg config_util.HTTPClientConfig, transportConfig TransportConfig, name string) (http.RoundTripper, error)
- type AddressProvider
- type BasicAuth
- type Client
- type ClientConfig
- type Config
- type EndpointsConfig
- type FileSDConfig
- type TLSConfig
- type TransportConfig
Constants ¶
This section is empty.
Variables ¶
var ThanosUserAgent = fmt.Sprintf("Thanos/%s", version.Version)
Functions ¶
func NewHTTPClient ¶
func NewHTTPClient(cfg ClientConfig, name string) (*http.Client, error)
NewHTTPClient returns a new HTTP client.
func NewRoundTripperFromConfig ¶
func NewRoundTripperFromConfig(cfg config_util.HTTPClientConfig, transportConfig TransportConfig, name string) (http.RoundTripper, error)
NewRoundTripperFromConfig returns a new HTTP RoundTripper configured for the given http.HTTPClientConfig and http.HTTPClientOption.
Types ¶
type AddressProvider ¶
type BasicAuth ¶
type BasicAuth struct {
Username string `yaml:"username"`
Password string `yaml:"password"`
PasswordFile string `yaml:"password_file"`
}
BasicAuth configures basic authentication for HTTP clients.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents a client that can send requests to a cluster of HTTP-based endpoints.
func NewClient ¶
func NewClient(logger log.Logger, cfg EndpointsConfig, client *http.Client, provider AddressProvider) (*Client, error)
NewClient returns a new Client.
func (*Client) Discover ¶
Discover runs the service to discover endpoints until the given context is done.
type ClientConfig ¶
type ClientConfig struct {
// The HTTP basic authentication credentials for the targets.
BasicAuth BasicAuth `yaml:"basic_auth"`
// The bearer token for the targets.
BearerToken string `yaml:"bearer_token"`
// The bearer token file for the targets.
BearerTokenFile string `yaml:"bearer_token_file"`
// HTTP proxy server to use to connect to the targets.
ProxyURL string `yaml:"proxy_url"`
// TLSConfig to use to connect to the targets.
TLSConfig TLSConfig `yaml:"tls_config"`
// TransportConfig for Client transport properties
TransportConfig TransportConfig `yaml:"transport_config"`
// ClientMetrics contains metrics that will be used to instrument
// the client that will be created with this config.
ClientMetrics *extpromhttp.ClientMetrics `yaml:"-"`
}
ClientConfig configures an HTTP client.
func NewClientConfigFromYAML ¶
func NewClientConfigFromYAML(cfg []byte) (*ClientConfig, error)
type Config ¶
type Config struct {
HTTPClientConfig ClientConfig `yaml:"http_config"`
EndpointsConfig EndpointsConfig `yaml:",inline"`
}
Config is a structure that allows pointing to various HTTP endpoint, e.g ruler connecting to queriers.
func BuildConfig ¶
BuildConfig returns a configuration from a static addresses.
func DefaultConfig ¶
func DefaultConfig() Config
func LoadConfigs ¶
LoadConfigs loads a list of Config from YAML data.
func (*Config) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type EndpointsConfig ¶
type EndpointsConfig struct {
// List of addresses with DNS prefixes.
StaticAddresses []string `yaml:"static_configs"`
// List of file configurations (our FileSD supports different DNS lookups).
FileSDConfigs []FileSDConfig `yaml:"file_sd_configs"`
// The URL scheme to use when talking to targets.
Scheme string `yaml:"scheme"`
// Path prefix to add in front of the endpoint path.
PathPrefix string `yaml:"path_prefix"`
}
EndpointsConfig configures a cluster of HTTP endpoints from static addresses and file service discovery.
type FileSDConfig ¶
type FileSDConfig struct {
Files []string `yaml:"files"`
RefreshInterval model.Duration `yaml:"refresh_interval"`
}
FileSDConfig represents a file service discovery configuration.
type TLSConfig ¶
type TLSConfig struct {
// The CA cert to use for the targets.
CAFile string `yaml:"ca_file"`
// The client cert file for the targets.
CertFile string `yaml:"cert_file"`
// The client key file for the targets.
KeyFile string `yaml:"key_file"`
// Used to verify the hostname for the targets. See https://tools.ietf.org/html/rfc4366#section-3.1
ServerName string `yaml:"server_name"`
// Disable target certificate validation.
InsecureSkipVerify bool `yaml:"insecure_skip_verify"`
}
TLSConfig configures TLS connections.
type TransportConfig ¶
type TransportConfig struct {
MaxIdleConns int `yaml:"max_idle_conns"`
MaxIdleConnsPerHost int `yaml:"max_idle_conns_per_host"`
IdleConnTimeout int64 `yaml:"idle_conn_timeout"`
ResponseHeaderTimeout int64 `yaml:"response_header_timeout"`
ExpectContinueTimeout int64 `yaml:"expect_continue_timeout"`
MaxConnsPerHost int `yaml:"max_conns_per_host"`
DisableCompression bool `yaml:"disable_compression"`
TLSHandshakeTimeout int64 `yaml:"tls_handshake_timeout"`
}
Transport configures client's transport properties.