class MetricCommand extends CommandRegistryImpl<MetricCommandArg, Map<String, ?>>
    implements ComputeCommand<MetricCommandArg, Map<String, ?>> {
    /** */
    public MetricCommand() {
        super(
            new MetricConfigureHistogramCommand(),
            new MetricConfigureHitrateCommand()
        );
    }

    /** {@inheritDoc} */
    @Override public String description() {
        return "Print metric value";
    }

    /** {@inheritDoc} */
    @Override public Class<MetricCommandArg> argClass() {
        return MetricCommandArg.class;
    }

    /** {@inheritDoc} */
    @Override public Class<MetricTask> taskClass() {
        return MetricTask.class;
    }

    /** {@inheritDoc} */
    @Override public Collection<GridClientNode> nodes(Collection<GridClientNode> nodes, MetricCommandArg arg) {
        return nodeOrNull(arg.nodeId(), nodes);
    }

    /** {@inheritDoc} */
    @Override public void printResult(MetricCommandArg arg, Map<String, ?> res, Consumer<String> printer) {<FILL_FUNCTION_BODY>}
}

        if (res != null) {
            List<List<?>> data = res.entrySet().stream()
                .map(entry -> Arrays.asList(entry.getKey(), entry.getValue()))
                .collect(Collectors.toList());

            printTable(asList("metric", "value"), asList(STRING, STRING), data, printer);
        }
        else
            printer.accept("No metric with specified name was found [name=" + arg.name() + "]");
    
<methods>public Command<?,?> command(java.lang.String) ,public Iterator<Entry<java.lang.String,Command<?,?>>> commands() <variables>private final Map<java.lang.String,Command<?,?>> commands