flyctl ping

I know you’ve all been waiting for this and finally it’s arrived.

In the master branch on flyctl, for those of you building your own, you can now flyctl ping your instances, or your gateway. This’ll land in a release probably sometime in the next couple days.

flyctl ping -o orgname gateway will ping the upstream WireGuard gateway for a particular organization (making a WireGuard peer if none exists — this is now pretty fast). This is probably a better test of gateway connectivity than the DNS check we were doing previously.

flyctl ping -o orgname app.internal will ping all the running instances for app. If you have a lot of instances for an app, you may trip a (harmless) rate limit on our gateways, or maybe an ICMP bug in the netstack code we’re using in flyctl.

You can also flyctl ping -o orgname to just ping the closest host, or flyctl ping -o orgname to only ping your instances in the nrt region (the target argument to ping is just a hostname in our DNS).

It was a galactic PITA to get this working as much as it is now (wireguard-go’s netstack bindings didn’t have ICMP support, and netstack’s ICMP support is… weird) but I know how much you all love pinging things.