Simply record the time from entering `main` to start listening sockets.
auto address = socketBindListen(config, socket, listen_host, port);
            socket.setReceiveTimeout(settings.http_receive_timeout);
            socket.setSendTimeout(settings.http_send_timeout);
            return ProtocolServerAdapter(
                listen_host,
                port_name,
                "Prometheus: http://" + address.toString(),
                std::make_unique<HTTPServer>(
                    httpContext(), createHandlerFactory(*this, config, async_metrics, "PrometheusHandler-factory"), server_pool, socket, http_params));
        });
    }
    
    for (const auto & interserver_listen_host : interserver_listen_hosts)
    {
         
        const char * port_name = "interserver_http_port";
        createServer(config, interserver_listen_host, port_name, listen_try, start_servers, servers, [&](UInt16 port) -> ProtocolServerAdapter
        {
            Poco::Net::ServerSocket socket;
            auto address = socketBindListen(config, socket, interserver_listen_host, port);
            socket.setReceiveTimeout(settings.http_receive_timeout);
            socket.setSendTimeout(settings.http_send_timeout);
            return ProtocolServerAdapter(
                interserver_listen_host,
                port_name,
                "replica communication (interserver): http://" + address.toString(),
                std::make_unique<HTTPServer>(
                    httpContext(),
                    createHandlerFactory(*this, config, async_metrics, "InterserverIOHTTPHandler-factory"),
                    server_pool,