NetEase / pomelo-cn

The Chinese issues for pomelo.
38 stars 13 forks source link

几个关于admin和monitor的问题及建议 #93

Closed agreatfool closed 11 years ago

agreatfool commented 11 years ago

一开始我使用pomelo-admin和pomelo-admin-web组合的时候,发现怎么都不能获取到数据,查看下服务器日志,发现总是会报"unknown module xxx"这样的错误。查了下,发现是pomelo-admin里的模块未启动。但是在官方guide和readme里没有任何这方面的指导,读了代码才发现是在node_modules/pomelo/lib/monitor/monitor.js里的registerDefaultModules里有这样一个判断:"if(app.enabled('systemMonitor')) {"。 所以解决方法就是在app.js里添加: // dev monitor app.configure('development', function() { app.enable('systemMonitor'); // enable pomelo-admin (viewable with pomelo-admin-web) }); 这样就好了。


每次启动pomelo-admin-web,然后通过浏览器http://localhost:7001访问的时候,服务器都会出现一个日志:[2013-03-01 15:49:18.283] [INFO] crash-log - [client],[browser-1362124106500],[1362124158282],[disconnect],这个不知道是什么问题?虽然貌似不影响使用就是了。


pomelo-monitor模块里的lib/systemMonitor.js函数getSysInfo的callback,调用有问题,第一个参数应该是error,而不应该直接是返回值:应该是callback(null, reData);,而不是callback(reData);

https://github.com/NetEase/pomelo-monitor 这个页面上的例子写得也有问题,getPsInfo接口回调函数的第一个参数是错误,而不是返回值,所以成功调用的话,输出的信息永远是null。应该改成:"getPsInfo(param, function(err, data) {"。假设我上面提的那点建议被接受的话,那么系统统计信息接口调用的地方也要改。

pomelo-admin里的lib/modules/nodeInfo.js里也存在这个错误,getPsInfo接口的调用需要加一个error。否则输出永远是null,pomelo-admin-web页面上nodeInfo就永远是白板。


最后想和开源小组聊几句,关于文档。我从大概2个月前开始接触pomelo,到现在使用pomelo自己开发了一个杀人游戏规则的demo小游戏,最大的吐槽就是文档实在是太糟糕了。别的不说,就说pomelo-monitor,pomelo-admin,pomelo-admin-web这几个模块来说好了。其实它们之间是有联系的,pomelo-monitor是提供基础功能的一个模块,admin提供了监控的系列服务,web提供了观查的界面。要在web中看到数据,首先需要在pomelo程序(游戏、应用)的app.js里启动admin,否则web是不能获得到数据的。这些基本的启动流程、相互关系,在文档里都是没有的,要自己看代码一点点查出来。我一个开发者,需要这么做一遍,如果pomelo这个项目在世界上非常流行,是一个顶级项目的话,那需要多少开发者浪费多少时间都这么做一遍??

开源项目,文档的好坏真的非常重要。希望网易的pomelo小组在将来能将一部分开发的精力转到文档上。你会发现,文档写好了,问问题的人会少很多,真的。

最后还是感谢pomelo小组的开源工作,你们非常棒,谢谢~

halfblood369 commented 11 years ago

1.你说的对,其中monitor模块的两个文件的的函数接口不统一,应该参见node的标准,callback里面第一个参数是err,第二个才是返回值。不过在使用的时候没有有问题,就是对err的追踪会比较麻烦。这个已经修改过了,只是这个地方的修改会引起其他调用模块的修改,所以没有立刻更新,会在pomelo 3版本中体现出来的。

2.pomelo-admin作为pomelo其中的一个插件,当时为了赋予开发者更多的选择,所以设计成插件的形式,比较灵活。不过由于pomelo-admin的文档一值是空白,没有补齐,加上其他wiki文档中也没有提到,会给开发者造成一定的麻烦,表示歉意,会尽快加上的。

感谢你对pomelo的关注,也欢迎你对pomelo代码和文档的贡献。

xiecc commented 11 years ago

嗯,谢谢 @agreatfool 的吐槽, 和深入的分析。 确实我们当初写开发和写文档的时候pomelo-admin与pomelo-monitor一直没作为重点来做,代码和文档都比较糟糕。当时的设想是把admin功能做成插件的形式,从核心代码剥离, 以后再慢慢补充。 现在差不多是时间整理这块东西了,等0.3版本发布后我们会把这些功能和文档逐一整理起来

agreatfool commented 11 years ago

感谢大家的回复,希望pomelo能越走越好,加油~