For health checks, SDKs perform a gRPC health check when you create a client.
You can also run a health check via tctl with:
tctl cluster health
and can health checks for different services with code, see for example:
https://github.com/temporalio/temporal/blob/master/tools/cli/clusterCommands.go#L39
where fullWorkflowServiceName
can be changed depending on which service you want to health check:
temporal.api.workflowservice.v1.WorkflowService
temporal.api.workflowservice.v1.HistoryService
temporal.api.workflowservice.v1.MatchingService
You can also look at some other good posts with more health check information:
Hope this helps.