This doesn't have to be. You can always run sampling and batching.
Besides, with your monitoring system having to monitor a million services, it needs to scale to that many number of TCP connections.
Whereas each service can simply export (periodically) via UDP which has little connection overhead. Networks are reliable enough to use UDP now a days (quic)