Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1074 thank(s) in 852 post(s)
08-26-2013, 05:07 AM
(This post was last modified: 02-15-2015, 08:25 AM by xoft.)
It would be great to have a plugin that would provide a few statistics pages in the webadmin. It could monitor several key performance indicators through time and display graphs for their progress in time. I believe there are technologies to draw graphs in HTML+JS, so it should be possible.
Indicators:
- Server memory usage (cWebAdmin::GetMemoryUsage() has the technology, needs API exporting its values as numbers)
- Per-world tick durations (OnWorldTick()'s a_Dt parameter)
- Per-world number of loaded chunks
- Total and per-world number of players
- Per-world number of entities
Any volunteers?
Posts: 4,628
Threads: 115
Joined: Dec 2011
Thanks: 693
Given 494 thank(s) in 423 post(s)
I'd like to try this but I can't right now. I still have the problem with my screen and school is starting tomorrow ;(
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1074 thank(s) in 852 post(s)
Seems a good base. Now it needs to query the stuff periodically (in root tick?) and store it in a circular buffer, so that the last 50 or so values are stored; then use some sort of charting JS to produce the graphs. And the per-world tick duration would be especially nice to have; that will need to use the OnWorldTick() hook and store the a_Dt parameter.
How about pushing this plugin as another repo in the mc-server organization account on GitHub?
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1074 thank(s) in 852 post(s)
Yesterday I've started doing something very similar at work. I wrote an internal tool that processes performance logs from our products into HTML+JS-based graphs. I was really amazed at how easy the whole thing was. I think I'll write this for MCS now. It will be a bit more difficult, because the MCS webserver is somewhat limited, but I think we'll have some basics soon.
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1074 thank(s) in 852 post(s)
How about if I moved that plugin to the MCServer organization? It could be then easily included as a submodule in the repo. Any opposition? Any support?