The default metrics-mode flag for vmagent on pmm-client is push mode. When setting up or configuring the pmm client using pmm-admin tool the flag to change the metrics-mode only affects the exporters and not vmagent. i.e. exporter can be changed to pull or push mode via the flag but vmagent does not change it’s metrics-mode.
[myuser@myhost ~]$ pmm-admin list
Service type Service name Address and port Service ID
MySQL myhost-mysql 127.0.0.1:3301 /service_id/xxxx
Agent type Status Metrics Mode Agent ID Service ID
pmm_agent Connected /agent_id/xxxx
node_exporter Running pull /agent_id/xxxx
vmagent Running push /agent_id/xxxx
Hi as a PMM user you only have to be concerned with the metrics mode for the exporters and not vmagent.
To understand this better please take a look at our architecture diagram here
VictoriaMetrics runs as a part of the pmm server component whereas vmagent is run as a part of pmm-client component
The whole point of the push mode is to be able to push metrics from client to pmm server and vmagent enables that. If the exporters are in pull mode however VictoriMetrics running on pmm-server will scrape the metrics from clients just like Prometheus did in older versions of PMM
So VMagent is always supposed to be in push mode because its job is to push to the server.
When I change the metrics-mode to pull mode for all the exporters, including node_exporters, I found that vmagent still sends traffic to pmm-server on port 443
While investigating I found that pmm-agent stops the vmagent on the client side once it notices that pmm-server is down and brings it back when pmm-server comes back.