Update prometheus/common
authorJulien Pivotto <roidelapluie@o11y.eu>
Thu, 9 Mar 2023 22:47:53 +0000 (23:47 +0100)
committerJulien Pivotto <roidelapluie@o11y.eu>
Mon, 15 May 2023 16:30:08 +0000 (18:30 +0200)
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
CONFIGURATION.md
blackbox.yml
prober/http.go

index 604ee890d098f7b169603ddca81e58c70fd05e87..7eb36984f409c76c3472754c0fe6b82eebeac1f0 100644 (file)
@@ -109,25 +109,37 @@ modules:
   tls_config:
     [ <tls_config> ]
 
-  # The HTTP basic authentication credentials for the targets.
+  # The HTTP basic authentication credentials.
   basic_auth:
     [ username: <string> ]
     [ password: <secret> ]
     [ password_file: <filename> ]
 
-  # The bearer token for the targets.
-  [ bearer_token: <secret> ]
-
-  # The bearer token file for the targets.
-  [ bearer_token_file: <filename> ]
+  # Sets the `Authorization` header on every request with
+  # the configured credentials.
+  authorization:
+    # Sets the authentication type of the request.
+    [ type: <string> | default: Bearer ]
+    # Sets the credentials of the request. It is mutually exclusive with
+    # `credentials_file`.
+    [ credentials: <secret> ]
+    # Sets the credentials of the request with the credentials read from the
+    # configured file. It is mutually exclusive with `credentials`.
+    [ credentials_file: <filename> ]
 
   # HTTP proxy server to use to connect to the targets.
   [ proxy_url: <string> ]
+  # Comma-separated string that can contain IPs, CIDR notation, domain names
+  # that should be excluded from proxying. IP and domain names can
+  # contain port numbers.
+  [ no_proxy: <string> ]
+  # Use proxy URL indicated by environment variables (HTTP_PROXY, https_proxy, HTTPs_PROXY, https_proxy, and no_proxy)
+  [ proxy_from_environment: <bool> | default: false ]
   # Specifies headers to send to proxies during CONNECT requests.
   [ proxy_connect_headers:
     [ <string>: [<secret>, ...] ] ]
 
-  # Skip DNS resolution and URL change when an HTTP proxy (proxy_url) is set.
+  # Skip DNS resolution and URL change when an HTTP proxy (proxy_url or proxy_from_environment) is set.
   [ skip_resolve_phase_with_proxy: <boolean> | default = false ]
 
   # OAuth 2.0 configuration to use to connect to the targets.
index 62884bcb63bd36dd4b3035522347aeba07f84fb3..1ad0c81a714a85212885b41fc077f33f73bea1bf 100644 (file)
@@ -1,6 +1,8 @@
 modules:
   http_2xx:
     prober: http
+    http:
+      preferred_ip_protocol: "ip4"
   http_post_2xx:
     prober: http
     http:
@@ -46,4 +48,4 @@ modules:
     prober: icmp
     timeout: 5s
     icmp:
-      ttl: 5
\ No newline at end of file
+      ttl: 5
index 5e452cd94313367bf7fffdbfb65fa906a2a40306..441edc47d895baa3cf7ebb37a0902ec98d41b41b 100644 (file)
@@ -323,7 +323,7 @@ func ProbeHTTP(ctx context.Context, target string, module config.Module, registr
        targetPort := targetURL.Port()
 
        var ip *net.IPAddr
-       if !module.HTTP.SkipResolvePhaseWithProxy || module.HTTP.HTTPClientConfig.ProxyURL.URL == nil {
+       if !module.HTTP.SkipResolvePhaseWithProxy || module.HTTP.HTTPClientConfig.ProxyConfig.ProxyURL.URL == nil || module.HTTP.HTTPClientConfig.ProxyConfig.ProxyFromEnvironment {
                var lookupTime float64
                ip, lookupTime, err = chooseProtocol(ctx, module.HTTP.IPProtocol, module.HTTP.IPProtocolFallback, targetHost, registry, logger)
                durationGaugeVec.WithLabelValues("resolve").Add(lookupTime)