Your microservice connection pool is full of zombies. TCP connections that look ESTABLISHED but lead to dead peers will hang every request you send through them. Here is the keepalive tuning, HTTP agent wiring, and kernel sysctl config that detects silent failures in seconds instead of minutes.
A production incident walkthrough: Node.js connection pools silently fill with dead TCP sockets, every outbound request hangs forever, and your service looks down while the downstream API is healthy. Here are the four timeout values — connect, response, idle, and keepalive — with the working Agent and fetch config that prevents it.