You have to generate a count in your search in order to use it in the eval statement:
sourcetype="nmonchk" | stats count | eval yesno=if(count==0, "No", "Yes") | eval range=if(count==0, "severe", "low")
An efficient way to build the single values would be to use a single search that returns the events for all hosts and postprocess it for each host in order to display the result. Like:
<module name="HiddenSearch" layoutPanel="panel_row2_col1" autoRun="True">
<param name="search"> <search that returns the evnets for all hosts ></param>
<module name="HiddenPostProcess">
<param name="search">search < criteria for host 1 > | eval yesno=if(count==0, "No", "Yes") | rangemap field=count severe=0-0 default=low</param>
<module name="SingleValue">
<param name="field">yesno</param>
<param name="classField">range</param>
</module>
</module>
<module name="HiddenPostProcess">
<param name="search">search < criteria for host 2 > | eval yesno=if(count==0, "No", "Yes") | rangemap field=count severe=0-0 default=low</param>
<module name="SingleValue">
<param name="field">yesno</param>
<param name="classField">range</param>
</module>
</module>
...
</module>
... View more