mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Make HTTP basic auth configurable for scrape targets.
This commit is contained in:
parent
92493603c4
commit
d5aa012fd0
|
@ -182,6 +182,8 @@ type DefaultedScrapeConfig struct {
|
||||||
MetricsPath string `yaml:"metrics_path,omitempty"`
|
MetricsPath string `yaml:"metrics_path,omitempty"`
|
||||||
// The URL scheme with which to fetch metrics from targets.
|
// The URL scheme with which to fetch metrics from targets.
|
||||||
Scheme string `yaml:"scheme,omitempty"`
|
Scheme string `yaml:"scheme,omitempty"`
|
||||||
|
// The HTTP basic authentication credentials for the targets.
|
||||||
|
BasicAuth *BasicAuth `yaml:"basic_auth"`
|
||||||
|
|
||||||
// List of labeled target groups for this job.
|
// List of labeled target groups for this job.
|
||||||
TargetGroups []*TargetGroup `yaml:"target_groups,omitempty"`
|
TargetGroups []*TargetGroup `yaml:"target_groups,omitempty"`
|
||||||
|
@ -191,7 +193,13 @@ type DefaultedScrapeConfig struct {
|
||||||
RelabelConfigs []*RelabelConfig `yaml:"relabel_configs,omitempty"`
|
RelabelConfigs []*RelabelConfig `yaml:"relabel_configs,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// A labeled group of targets to scrape for a job.
|
// BasicAuth contains basic HTTP authentication credentials.
|
||||||
|
type BasicAuth struct {
|
||||||
|
Username string `yaml:"username"`
|
||||||
|
Password string `yaml:"password"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// TargetGroup is a set of targets with a common label set.
|
||||||
type TargetGroup struct {
|
type TargetGroup struct {
|
||||||
// Targets is a list of targets identified by a label set. Each target is
|
// Targets is a list of targets identified by a label set. Each target is
|
||||||
// uniquely identifiable in the group by its address label.
|
// uniquely identifiable in the group by its address label.
|
||||||
|
|
|
@ -69,8 +69,12 @@ var expectedConf = &Config{DefaultedConfig{
|
||||||
ScrapeInterval: Duration(50 * time.Second),
|
ScrapeInterval: Duration(50 * time.Second),
|
||||||
ScrapeTimeout: Duration(5 * time.Second),
|
ScrapeTimeout: Duration(5 * time.Second),
|
||||||
|
|
||||||
|
BasicAuth: &BasicAuth{
|
||||||
|
Username: "admin",
|
||||||
|
Password: "password",
|
||||||
|
},
|
||||||
MetricsPath: "/my_path",
|
MetricsPath: "/my_path",
|
||||||
Scheme: "http",
|
Scheme: "https",
|
||||||
|
|
||||||
DNSSDConfigs: []*DNSSDConfig{
|
DNSSDConfigs: []*DNSSDConfig{
|
||||||
{DefaultedDNSSDConfig{
|
{DefaultedDNSSDConfig{
|
||||||
|
|
6
config/testdata/conf.good.yml
vendored
6
config/testdata/conf.good.yml
vendored
|
@ -40,11 +40,15 @@ scrape_configs:
|
||||||
|
|
||||||
- job_name: service-x
|
- job_name: service-x
|
||||||
|
|
||||||
|
basic_auth:
|
||||||
|
username: admin
|
||||||
|
password: password
|
||||||
|
|
||||||
scrape_interval: 50s
|
scrape_interval: 50s
|
||||||
scrape_timeout: 5s
|
scrape_timeout: 5s
|
||||||
|
|
||||||
metrics_path: /my_path
|
metrics_path: /my_path
|
||||||
# scheme defaults to 'http'.
|
scheme: https
|
||||||
|
|
||||||
dns_sd_configs:
|
dns_sd_configs:
|
||||||
- refresh_interval: 15s
|
- refresh_interval: 15s
|
||||||
|
|
|
@ -192,6 +192,9 @@ func (t *target) Update(cfg *config.ScrapeConfig, baseLabels clientmodel.LabelSe
|
||||||
|
|
||||||
t.url.Scheme = cfg.Scheme
|
t.url.Scheme = cfg.Scheme
|
||||||
t.url.Path = string(baseLabels[clientmodel.MetricsPathLabel])
|
t.url.Path = string(baseLabels[clientmodel.MetricsPathLabel])
|
||||||
|
if cfg.BasicAuth != nil {
|
||||||
|
t.url.User = url.UserPassword(cfg.BasicAuth.Username, cfg.BasicAuth.Password)
|
||||||
|
}
|
||||||
|
|
||||||
t.scrapeInterval = time.Duration(cfg.ScrapeInterval)
|
t.scrapeInterval = time.Duration(cfg.ScrapeInterval)
|
||||||
t.deadline = time.Duration(cfg.ScrapeTimeout)
|
t.deadline = time.Duration(cfg.ScrapeTimeout)
|
||||||
|
|
Loading…
Reference in a new issue