Plan icon indicating copy to clipboard operation
Plan copied to clipboard

Track plugin versions for performance tab.

Open TomLewis opened this issue 3 years ago • 1 comments

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

TomLewis avatar May 06 '22 11:05 TomLewis

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.

AuroraLS3 avatar May 06 '22 13:05 AuroraLS3

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

CreeperODeath avatar Dec 19 '22 08:12 CreeperODeath

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

AuroraLS3 avatar Oct 06 '23 07:10 AuroraLS3

Teaser images (I got a bit excited about the idea of having these show up on the performance graph) image image

AuroraLS3 avatar Oct 06 '23 17:10 AuroraLS3

This is absolutely fantastic solution! This will come in very handy!

TomLewis avatar Oct 09 '23 11:10 TomLewis