class RuntimeInfoHandler extends AbstractAdminCommandHandler {

    @Override
    protected void process(String command, Map<String, String> params, Map<String, String> attachments, JSONObject result) {<FILL_FUNCTION_BODY>}

    private void addInfos(Map<String, ? extends RuntimeInfo> infos, String key, JSONObject result) {
        if (!infos.isEmpty()) {
            JSONObject infoObject = new JSONObject();
            infos.forEach((k, v) -> infoObject.put(k, v.getRuntimeInfo()));
            result.put(key, infoObject);
        }
    }

    @Override
    public String[] getCommandName() {
        return new String[]{"/runtime/info"};
    }
}

        result.put(RuntimeInfoKeys.INSTANCE_TYPE_KEY, "motan-java");
        result.put(RuntimeInfoKeys.GLOBAL_CONFIG_KEY, MotanGlobalConfigUtil.getConfigs());

        // add registry infos
        addInfos(GlobalRuntime.getRuntimeRegistries(), RuntimeInfoKeys.REGISTRIES_KEY, result);

        // add cluster infos
        addInfos(GlobalRuntime.getRuntimeClusters(), RuntimeInfoKeys.CLUSTERS_KEY, result);

        // add exporter infos
        addInfos(GlobalRuntime.getRuntimeExporters(), RuntimeInfoKeys.EXPORTERS_KEY, result);

        // add mesh client infos
        addInfos(GlobalRuntime.getRuntimeMeshClients(), RuntimeInfoKeys.MESH_CLIENTS_KEY, result);

        // add server infos
        addInfos(GlobalRuntime.getRuntimeServers(), RuntimeInfoKeys.SERVERS_KEY, result);
    
<methods>public non-sealed void <init>() ,public com.weibo.api.motan.rpc.Response handle(com.weibo.api.motan.rpc.Request) <variables>