Hi,
You are right. It is definitely not user friendly for someone trying to set up keepalives to also have to set GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS. I believe the reason for this is mostly to deal with the fact that pings in gRPC Core can originate via either of 3 methods -
1) Keepalive
2) BDP
3) grpc_channel_ping()
I can think of a few possible ways to improve experience here -
1) Reduce the default value of GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS
2) Use the minimum of GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS and GRPC_ARG_KEEPALIVE_TIME_MS to set the minimum ping interval without data.
3) Make GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS defunct.