Github user revans2 commented on a diff in the pull request: https://github.com/apache/storm/pull/2710#discussion_r207576736 --- Diff: storm-client/src/jvm/org/apache/storm/daemon/supervisor/ClientSupervisorUtils.java --- @@ -28,11 +29,14 @@ import org.apache.storm.shade.org.apache.commons.lang.StringUtils; import org.apache.storm.utils.ConfigUtils; import org.apache.storm.utils.ObjectReader; +import org.apache.storm.utils.ShellUtils; import org.apache.storm.utils.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ClientSupervisorUtils { + public static final Meter numWorkerLaunchExceptions = ShellUtils.numShellExceptions; --- End diff -- This all feels a bit too confusing to me. `ShellUtils.numShellExceptions` is static and pulled in from multiple different locations, but only registered once in the supervisor. I personally would rather see it where `ClientSupervisorUtils` registers the Meter, as it is tied to the supervisor having it do it here is fine. For ShellUtils, I would like to see it not have a static meter, but instead optionally pass a meter in when calling run, or perhaps optionally include it in the constructor.
---