As Dan says, this is possible. You wrap the query you want to the user to be able to run in a stored procedure, which you for simplicity you can place in the master
database.
Then you apply this recipe:
- Create a certificate.
- Sign the procedure with the certificate.
- Create a login from that certificate.
- Grant that login VIEW SERVER STATE.
The login is not a normal login, but a special type which exists only to connect certificate and permission. It is not possible to log in with this login.
I describe this technique in a lot more detail in my article: https://www.sommarskog.se/grantperm.html. And, yes, that is a bit to read, although you only need to read first five chapters. But it's time well-spent, because it is a very tool to have at hand.