Remix.run Logo
motoboi 4 hours ago

I found claude and GPT very helpful on this, because java have a very sofisticated monitoring harness. Just ask the agent to connect to the running application (on kubernetes or whatever) on prod and do a java flight recording then analyze allocations.

I managed to improve some applications of ours from several garbage collections per second to several minutes between collections. That _really_ improves p99.

haglin 3 hours ago | parent | next [-]

I work on OpenJDK, so I may be biased, but I’ve also found that JFR works really well with LLMs.

  $ java -XX:StartFlightRecording:maxsize=10M,filename=dump.jfr -jar app.jar

  $ jfr view all-views dump.jfr > report.txt

  $ jfr print dump.jfr > all.txt
Then ask Codex, or whatever AI tool you use, to analyze report.txt for issues and use all.txt to dig deeper, if needed.
re-thc 2 hours ago | parent [-]

> but I’ve also found that JFR works really well with LLMs

There's also async profiler. LLMs just use whatever. Lots of choices.

exabrial 3 hours ago | parent | prev | next [-]

Take a peek at jolokia if you've never used it :) Attach it as a JVM agent to _any_ process to expose it's JMX attributes as http calls, and it even gives you a neat little console to log into.

If you want to collect these, telegraf has a jolokia plugin. It's an incredible combination!

declan_roberts 4 hours ago | parent | prev | next [-]

That sounds like a great idea. What kind of prompt do you use?

motoboi 4 hours ago | parent [-]

Nothing much smarter than run the agent in the project folder, make sure it has means to interact with production (like configured kubectl) and ask it to jcmd the hell out of it.

wmichelin 4 hours ago | parent | prev [-]

[dead]