Skip to content

Commit

Permalink
cleanup old metrics code
Browse files Browse the repository at this point in the history
  • Loading branch information
nothub committed Nov 9, 2024
1 parent a1ce253 commit 87619eb
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 62 deletions.
28 changes: 17 additions & 11 deletions src/main/java/lol/hub/headlessbot/Metrics.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
package lol.hub.headlessbot;

import com.sun.net.httpserver.HttpServer;
import io.prometheus.client.Counter;
import io.prometheus.client.exporter.HTTPServer;
import io.prometheus.client.hotspot.DefaultExports;
import io.prometheus.metrics.core.metrics.Counter;
import io.prometheus.metrics.exporter.httpserver.HTTPServer;
import io.prometheus.metrics.instrumentation.jvm.JvmMetrics;

import java.io.IOException;

public class Metrics {

public static final Counter deaths = Counter.build()
public static final Counter deaths = Counter.builder()
.name("deaths")
.help("Total deaths.")
.register();

static void init(final HttpServer server) throws IOException {
// hotspot metrics
DefaultExports.initialize();

// register exporter
new HTTPServer.Builder().withHttpServer(server).build();
static void init() {
JvmMetrics.builder().register();
try {
HTTPServer server = HTTPServer.builder()
.port(8080)
.buildAndStart();
Runtime.getRuntime().addShutdownHook(new Thread(server::stop));
Log.info("Metrics available at: http://localhost:" + server.getPort() + "/metrics");
} catch (IOException ex) {
// rethrow this wrapped as IllegalStateException
// to make the game or some mod-loader handle it
throw new IllegalStateException(ex.getMessage());
}
}
}
52 changes: 1 addition & 51 deletions src/main/java/lol/hub/headlessbot/Mod.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package lol.hub.headlessbot;

import baritone.api.pathing.goals.GoalNear;
import com.sun.net.httpserver.HttpServer;
import io.prometheus.client.Counter;
import lol.hub.headlessbot.behavior.BehaviorTree;
import lol.hub.headlessbot.behavior.nodes.composites.FallbackAllNode;
import lol.hub.headlessbot.behavior.nodes.composites.SequenceAllNode;
Expand All @@ -19,21 +17,8 @@
import net.minecraft.client.gui.screen.multiplayer.MultiplayerWarningScreen;
import net.minecraft.util.math.BlockPos;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class Mod implements ModInitializer, ClientModInitializer {

// metrics examples
static final Counter requests = Counter.build()
.name("my_library_requests_total")
.help("Total requests.")
.labelNames("path")
.register();
public static long lastKeepAlive;
public static long ticksOnline;
private BehaviorTree behavior;
Expand All @@ -47,20 +32,8 @@ public void onInitialize() {
public void onInitializeClient() {
behavior = defaultBehavior();
chat = new Chat();
/*
// TODO: this broke on update to java 21

try {
var server = webServer();
Metrics.init(server);
// TODO: web ui
} catch (IOException ex) {
// when the mod did not load properly,
// there is no need for graceful shutdown 🙈
throw new IllegalStateException(ex.getMessage());
}
*/
Metrics.init();

ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> {
if (screen instanceof AccessibilityOnboardingScreen) {
Expand Down Expand Up @@ -163,29 +136,6 @@ private BehaviorTree defaultBehavior() {
);
}

private HttpServer webServer() throws IOException {
HttpServer server = HttpServer.create();
server.bind(new InetSocketAddress(8080), -1);

server.setExecutor(new ThreadPoolExecutor(
1, 3, 5,
TimeUnit.MINUTES,
new SynchronousQueue<>()
));

server.createContext("/", exchange -> {
String response = "Hello, World!";
exchange.sendResponseHeaders(200, response.length());
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.close();
});

Runtime.getRuntime().addShutdownHook(new Thread(() -> server.stop(1)));

return server;
}

private void clientDefaultSettings() {
MC.client().options.getViewDistance().setValue(4);
MC.client().options.getSimulationDistance().setValue(4);
Expand Down

0 comments on commit 87619eb

Please sign in to comment.