1
0

more metrics

This commit is contained in:
Lee
2024-03-22 04:57:14 +00:00
parent a76e54ed62
commit 2a16fb4abf
4 changed files with 62 additions and 8 deletions

View File

@ -1,10 +1,7 @@
package cc.fascinated.metrics; package cc.fascinated.metrics;
import cc.fascinated.Aetheria; import cc.fascinated.Aetheria;
import cc.fascinated.metrics.impl.server.MemoryMetric; import cc.fascinated.metrics.impl.server.*;
import cc.fascinated.metrics.impl.server.PlayerCountMetric;
import cc.fascinated.metrics.impl.server.TotalJoinsMetric;
import cc.fascinated.metrics.impl.server.TpsMetric;
import cc.fascinated.metrics.impl.system.CpuUsageMetric; import cc.fascinated.metrics.impl.system.CpuUsageMetric;
import cc.fascinated.metrics.impl.world.WorldSizeMetric; import cc.fascinated.metrics.impl.world.WorldSizeMetric;
import com.influxdb.client.InfluxDBClient; import com.influxdb.client.InfluxDBClient;
@ -24,7 +21,6 @@ import org.bukkit.event.server.PluginDisableEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
@Log4j2 @Log4j2
public class MetricManager implements Listener { public class MetricManager implements Listener {
@ -72,8 +68,10 @@ public class MetricManager implements Listener {
registerMetric(new MemoryMetric()); registerMetric(new MemoryMetric());
registerMetric(new PlayerCountMetric()); registerMetric(new PlayerCountMetric());
registerMetric(new TotalJoinsMetric()); registerMetric(new TotalJoinsMetric());
registerMetric(new EntityCountMetric());
registerMetric(new LoadedChunksMetric());
Bukkit.getAsyncScheduler().runAtFixedRate(Aetheria.INSTANCE, (task) -> this.collectMetrics(), 30, 30, TimeUnit.SECONDS); Bukkit.getScheduler().runTaskTimer(Aetheria.INSTANCE, (task) -> this.collectMetrics(), 30 * 20, 30 * 20);
} }
/** /**

View File

@ -0,0 +1,29 @@
package cc.fascinated.metrics.impl.server;
import cc.fascinated.metrics.Metric;
import com.influxdb.client.write.Point;
import org.bukkit.Bukkit;
import org.bukkit.World;
import java.util.HashMap;
import java.util.Map;
public class EntityCountMetric extends Metric {
public EntityCountMetric() {
super("entity_count");
}
@Override
protected Point toPoint() {
Map<World, Integer> entityCount = new HashMap<>();
for (World world : Bukkit.getWorlds()) {
entityCount.put(world, world.getEntities().size());
}
Point point = Point.measurement(getName());
for (Map.Entry<World, Integer> entry : entityCount.entrySet()) {
point.addField(entry.getKey().getName(), entry.getValue());
}
return point;
}
}

View File

@ -0,0 +1,29 @@
package cc.fascinated.metrics.impl.server;
import cc.fascinated.metrics.Metric;
import com.influxdb.client.write.Point;
import org.bukkit.Bukkit;
import org.bukkit.World;
import java.util.HashMap;
import java.util.Map;
public class LoadedChunksMetric extends Metric {
public LoadedChunksMetric() {
super("loaded_chunks");
}
@Override
protected Point toPoint() {
Map<World, Integer> entityCount = new HashMap<>();
for (World world : Bukkit.getWorlds()) {
entityCount.put(world, world.getChunkCount());
}
Point point = Point.measurement(getName());
for (Map.Entry<World, Integer> entry : entityCount.entrySet()) {
point.addField(entry.getKey().getName(), entry.getValue());
}
return point;
}
}

View File

@ -2,14 +2,12 @@ package cc.fascinated.playercolors;
import cc.fascinated.Aetheria; import cc.fascinated.Aetheria;
import io.papermc.paper.event.player.AsyncChatEvent; import io.papermc.paper.event.player.AsyncChatEvent;
import it.unimi.dsi.fastutil.HashCommon;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Scoreboard;