LagMeter
Lets you check the server lag, in ticks-per-second.
Bukkit version does not matter for this plugin.
Description
A lot of plugins tell you that something happens "every X seconds, depending on lag." That's because when the server is overworked, there are less than 20 ticks per second. This plugin will measure the number of ticks per second, and output it on your screen as a "Lag Meter." The plugin can also output the amount of memory free, alert those with a specific permission node when the ticks per second or free RAM goes down too far, and even measure the server's ping to google.com.Tutorials and Reviews
LagMeter 1.9.3: Review By: UltiByteLagMeter 0.1: Review By: BrandonHopkins
LagMeter 0.1: Review By: ValBGaming
Some of them are a little out of date, but you get the idea.
Download
CI/build (Jenkins) serverYou can always pick up the latest compiled version of LagMeter on my CI server. Note that BukkitDev doesn't warrant the safety of these builds, etc, but it's all pulled from GitHub anyways, so you could compile it yourself or look at the commits. Lagmeter is more stable than Lagmeter-bleed.
Jenkins: latest builds
Stable
Version: 1.17.0
Build date: 3 March 2016
BukkitDev Download: Latest Build
Javadocs
Version: 1.15.0
Build date: 23 November 2013
Dropbox Download (zipped; standard doclet)
Source Code
GitHub: TheLunarFrog's SourceGitHub: Original Source by DemmyDemon (v.0.4)
Bugs and Feature Requests
Bug reports & Feature RequestsFeatures
- Simple, minimum-fuzz installation
- Configurable without drowning you in options
- Checks the server performance
- Ability to check the ping between the server and Google.com
- When someone says "GAH! LAG!", you can /lag, and tell them "Dude, it's your computer sucking."
- Supports Bukkit's built-in permissions system, for example via [the official plugin](http://forums.bukkit.org/threads/permissionsbukkit-official-default-groups-plugin-1000.26785/)
- Support for the "old-school" Permissions, as well as PermissionsEX
- Logging of the lag, if you want it.
- Logging of players online, with the above, if wanted.
- Suggestions?
Change Log
Change LogCommands & Permissions
Commands & PermissionsConfiguration Explanation
ConfigurationExample output:
[####################] 20.0 TPS
...or if your server isn't doing so hot...
[##########__________] 10.0 TPS
Wasn't working in 1.12 for me. Fixed in https://github.com/TheLunarFrog/LagMeter/pull/7
Thank you very much. But that time format also gives an error as follows:
The time for the time string }9m is invalid: the time string contains characters other than 0-9, w/d/h/m/s. Top-level exception: For input string: "}9"
Regading TPS Spitog Vs LM, yes, they may be measuring different (LM is always a little higher), I will inform you if the differences are big!
Thank you.
sorry for the mistake and thanks for the explanation!
http://pastebin.com/x6dmmbZb
Change that to this:
And you should be good to go.
The TPS is probably different because they're different timeframes. Based on your configuration, you have it set to poll every 2 seconds (40 ticks / 20 ticks per second = 2 seconds), and average based on 10 polls (so 20 seconds). It's also possible that Spigot measures it at different points than LagMeter does, meaning that the ticks that occur at 10:30:00 might be 10 and LagMeter records that, and then Spigot might poll it at 10:30:01 where 20 ticks occurred that second.
It could also be that the server was doing heavy processing during the past 20 seconds, as opposed to the past 1/5/15 minutes. This is compounded by the fact that averages change very little if the sample size is larger, i.e. if both polled at 10 for one second and the rest were perfect 20s, that brings the average down to 19 for 10 samples, but 19.67 for 30. This is more pronounced if there are multiple polls: if it were 3 polls of 10, the TPS average decreases to 17 and 19, respectively. A smaller sample size is not good for most statistical means, but as this use case is not statistical, it's not bad. It just gives you a better idea of how your server was doing very recently, and doesn't water down the results by including times where there may have been less things to process each tick than one of the more recent ticks that ran over its 50 millisecond "time slice."
thanks for the reply:
http://pastebin.com/MQDyC4vM
Also, why Spigot TPS is different than LagMeter TPS?
Another error message:
07.01 01:47:57 [Server] WARN at java.lang.Thread.run(Unknown Source) 07.01 01:47:57 [Server] WARN at com.webkonsept.minecraft.lagmeter.TimedCommand.run(TimedCommand.java:38) 07.01 01:47:57 [Server] WARN at com.webkonsept.minecraft.lagmeter.TimedCommand.process(TimedCommand.java:13) 07.01 01:47:57 [Server] WARN java.lang.ArrayIndexOutOfBoundsException: 1 07.01 01:47:57 [Server] INFO The server's TPS has dropped below 17.0! Executing command (if configured).
@resoluciones
Can you please paste your configuration to pastebin and provide a link to it?
wonderful plugin! It seems it's working, but it's giving some errors:
07.01 01:41:00 [Server] INFO at java.lang.Thread.run(Unknown Source) [?:1.8.0_60] 07.01 01:41:00 [Server] INFO at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:542) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at net.minecraft.server.v1_11_R1.DedicatedServer.init(DedicatedServer.java:272) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at net.minecraft.server.v1_11_R1.MinecraftServer.a(MinecraftServer.java:335) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at net.minecraft.server.v1_11_R1.MinecraftServer.l(MinecraftServer.java:380) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at net.minecraft.server.v1_11_R1.MinecraftServer.t(MinecraftServer.java:419) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugins(CraftServer.java:325) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugin(CraftServer.java:375) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:271) ~[custom.jar:git-Spigot-7d78b81-70bc70b] 07.01 01:41:00 [Server] INFO at com.webkonsept.minecraft.lagmeter.LagMeter.onEnable(LagMeter.java:868) ~[?:?] 07.01 01:41:00 [Server] INFO at com.webkonsept.minecraft.lagmeter.LagMeter.registerTasks(LagMeter.java:1160) ~[?:?] 07.01 01:41:00 [Server] INFO java.lang.ArrayIndexOutOfBoundsException: 1 07.01 01:41:00 [Server] ERROR Error occurred while enabling LagMeter v1.17.0 (Is it up to date?)
@GodsDead
Your ticket has been resolved.
You can grab the latest build in which it has been fixed off of my CI server - I will not be uploading a new version of LagMeter until I look into another ticket, at least.
@GodsDead
Thanks, I'll get started on this as soon as I can.
@TheLunarFrog
LagMeter 1.17.0
@GodsDead
Will look into this. What version are you using?
@TheLunarFrog
http://pastebin.com/MR337crt
@GodsDead
Please post your configuration, it looks like an issue with that.
It's trying to find the time specified on a timed command, but you don't have one
It should look something like /time day<>5m
issue:
@Culvanen
Now that I've had time to look into this, I know what the problem is and how I'm going to fix it.
The problem is that the old way that we used to get the amount of online players has been replaced, but the old way is gone and the new one can't be used in the same way. I will be correcting this today.
The reason it used player counts at all is that it tells you how many players are online (an old feature request) in the logs (when that feature is enabled). This code is located in the class that polls the server's TPS (i.e. the core of it), so that's why it broke.
For now, if you disable player logging, it should work. It's an easy fix, but I have to get a development environment set up again and then wait on bukkitdev approval.
Thanks for the report!
@TheLunarFrog
View this: http://pastebin.com/mGeGMkMp
Thanks !
@Culvanen
I will look into this. Do you happen to have a stack trace or error?