VictoriaMetrics/lib/promscrape/discovery
Zakhar Bessarab 06947c2685
vmagent: add support of HTTP2 client for Kubernetes SD ()
### Describe Your Changes

Currently, vmagent always uses a separate `http.Client` for every group
watcher in Kubernetes SD. With a high number of group watchers this
leads to large amount of opened connections.

This PR adds 2 changes to address this:
- re-use of existing `http.Client` - in case `http.Client` is connecting
to the same API server and uses the same parameters it will be re-used
between group watchers
- HTTP2 support - this allows to reuse connections more efficiently due
to ability of using streaming via existing connections.

See this issue for the details and test results -
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5971

### Checklist

The following checks are **mandatory**:

- [ ] My change adheres [VictoriaMetrics contributing
guidelines](https://docs.victoriametrics.com/contributing/).

---------

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
Co-authored-by: Roman Khavronenko <roman@victoriametrics.com>
(cherry picked from commit eefae85450)
2024-10-08 10:37:48 +02:00
..
azure lib/discovery/azure: fix host check in next link in Azure SD () 2024-09-05 16:58:10 +02:00
consul all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
consulagent all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
digitalocean all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
dns all: replace old https://docs.victoriametrics.com/sd_configs.html url with the new one - https://docs.victoriametrics.com/sd_configs/ 2024-04-18 02:28:26 +02:00
docker all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
dockerswarm all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
ec2 all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
eureka all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
gce all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
hetzner all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
http all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
kubernetes vmagent: add support of HTTP2 client for Kubernetes SD () 2024-10-08 10:37:48 +02:00
kuma all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
nomad all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
openstack all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
ovhcloud feature: [vmagent] Add service discovery support for OVH Cloud VPS and dedicated server () 2024-09-30 15:06:14 +02:00
vultr all: consistently use 'any' instead of 'interface{}' 2024-07-10 00:23:26 +02:00
yandexcloud lib/promscrape/discovery/yandexcloud: follow-up for 070abe5c71 2024-07-16 18:06:33 +02:00