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;
import cc.fascinated.Aetheria;
import cc.fascinated.metrics.impl.server.MemoryMetric;
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.server.*;
import cc.fascinated.metrics.impl.system.CpuUsageMetric;
import cc.fascinated.metrics.impl.world.WorldSizeMetric;
import com.influxdb.client.InfluxDBClient;
@ -24,7 +21,6 @@ import org.bukkit.event.server.PluginDisableEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Log4j2
public class MetricManager implements Listener {
@ -72,8 +68,10 @@ public class MetricManager implements Listener {
registerMetric(new MemoryMetric());
registerMetric(new PlayerCountMetric());
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 io.papermc.paper.event.player.AsyncChatEvent;
import it.unimi.dsi.fastutil.HashCommon;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.scoreboard.Scoreboard;