|
93 | 93 | sslClientCert = kingpin.Flag("nginx.ssl-client-cert", "Path to the PEM encoded client certificate file to use when connecting to the server.").Default("").Envar("SSL_CLIENT_CERT").String() |
94 | 94 | sslClientKey = kingpin.Flag("nginx.ssl-client-key", "Path to the PEM encoded client certificate key file to use when connecting to the server.").Default("").Envar("SSL_CLIENT_KEY").String() |
95 | 95 | useProxyProto = kingpin.Flag("nginx.proxy-protocol", "Pass proxy protocol payload to nginx listeners.").Default("false").Envar("PROXY_PROTOCOL").Bool() |
| 96 | + HostHeader = kingpin.Flag("nginx.hostheader", "Host header to add to HTTP request.").Default("").Envar("HOST_HEADER").String() |
96 | 97 |
|
97 | 98 | // Custom command-line flags. |
98 | 99 | timeout = createPositiveDurationFlag(kingpin.Flag("nginx.timeout", "A timeout for scraping metrics from NGINX or NGINX Plus.").Default("5s").Envar("TIMEOUT").HintOptions("5s", "10s", "30s", "1m", "5m")) |
@@ -164,14 +165,14 @@ func main() { |
164 | 165 | } |
165 | 166 |
|
166 | 167 | if len(*scrapeURIs) == 1 { |
167 | | - registerCollector(logger, transport, (*scrapeURIs)[0], constLabels) |
| 168 | + registerCollector(logger, transport, (*scrapeURIs)[0], constLabels, *HostHeader) |
168 | 169 | } else { |
169 | 170 | for _, addr := range *scrapeURIs { |
170 | 171 | // add scrape URI to const labels |
171 | 172 | labels := maps.Clone(constLabels) |
172 | 173 | labels["addr"] = addr |
173 | 174 |
|
174 | | - registerCollector(logger, transport, addr, labels) |
| 175 | + registerCollector(logger, transport, addr, labels, *HostHeader) |
175 | 176 | } |
176 | 177 | } |
177 | 178 |
|
@@ -224,8 +225,7 @@ func main() { |
224 | 225 | } |
225 | 226 |
|
226 | 227 | func registerCollector(logger *slog.Logger, transport *http.Transport, |
227 | | - addr string, labels map[string]string, |
228 | | -) { |
| 228 | + addr string, labels map[string]string, hostheader string) { |
229 | 229 | var socketPath string |
230 | 230 |
|
231 | 231 | if strings.HasPrefix(addr, "unix:") { |
@@ -309,7 +309,7 @@ func registerCollector(logger *slog.Logger, transport *http.Transport, |
309 | 309 | variableLabelNames := collector.NewVariableLabelNames(nil, nil, nil, nil, nil, nil, nil) |
310 | 310 | prometheus.MustRegister(collector.NewNginxPlusCollector(plusClient, "nginxplus", variableLabelNames, labels, logger)) |
311 | 311 | } else { |
312 | | - ossClient := client.NewNginxClient(httpClient, addr) |
| 312 | + ossClient := client.NewNginxClient(httpClient, addr, hostheader) |
313 | 313 | prometheus.MustRegister(collector.NewNginxCollector(ossClient, "nginx", labels, logger)) |
314 | 314 | } |
315 | 315 | } |
|
0 commit comments