Plan
Plan copied to clipboard
Track plugin versions for performance tab.
Data to display
Your performance infomration is amazing, but most of the time the reason performance is dipping is becase of a plugin. This is sometimes when a plugin is updated or a specific version, if you could track plugin versions over time, then you could show statistics on the performance page that show if a plugin(s) was updated to say with poorer performance. You would only need to collect this information when the server boots too! So no constant tracking required for plugin versions!
Bonus points if when you click on a plugin, you can open its Spigot page/website and also link to the Bstats page.
In time, you will be able to have a new tab under performance that includes "plugins", where you can track performance based on plugins over time, hell, you could even see if more entities are about based on plugins that change entities too as you already have this data!
If you want to get even more mental, you could detect a TPS drop and autoamtically create a timings report, which im sure has an API to then pull a plugin that could be a top offender!
You could also hook into coreprotect, that way you could click on an event where theres been a TPS drop and you could load the Chat/commands that were used by players around that time, so try and see if they ran a command that casued it.
Alternativly, Pull from server logs around that time!
Link to API or Source Code
https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/plugin/PluginDescriptionFile.html#getVersion()
Link to Project page or Downloads
https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/plugin/PluginDescriptionFile.html
Tracking plugin versions over time is a good idea. I'll have to see if it's possible to get that data also for non bukkit servers.
I think running timings is a bit out of scope for Plan just because of the complexity of detecting tps drops while they're happening (The TPS calculation often depends on how fast server is running, and so TPS itself)
CoreProtect idea is good, especially the command use one. I think you have found a good use case for implementing #1240, as tracking commands would also allow linking use of some commands to a TPS spike through analysis of the data.
If you can track plugin versions then it might be possible to set it up where it can check for updates but I feel that might be outside of the scope
I have some good news! It was possible to gather this data on all server platforms
TODO
- [x] Extract plugin version data from servers
- [x] Bukkit
- [x] Bungeecord
- [x] Nukkit
- [x] Sponge
- [x] Fabric
- [x] Velocity
- [x] Store this data
- [x] Add visualization for this data
- [x] Server performance graph
- [x] Server plugin history table(s)
- [x] Network plugin history table(s)
- [x] ~~Option to disable the endpoint~~ Only enable this endpoint with authentication
- [x] Web Permissions
Teaser images (I got a bit excited about the idea of having these show up on the performance graph)
This is absolutely fantastic solution! This will come in very handy!