Technology / Top Stories /

jClarity Brings Accurate Java Monitoring into the Container World

13 Dec 2017 12:00pm, by

In the new world of containers, Java and Docker don’t necessarily get along.

That’s one of the problems London-based jClarity is helping customers to address. It employs machine learning in lightweight performance analysis and monitoring tools for Java/JVM applications.

The way Docker portrays the resources it has — memory, CPU, network — Java basically takes those numbers and misinterprets them from Docker, according to co-founder and CEO Martijn Verburg.

Both Docker, the company, and Oracle, as well as Red Hat, IBM and others are working on these problems.

“The Docker people say it’s Java’s fault, and the Java people say it’s Docker’s fault. At the end of the day, Java is running under completely wrong assumptions about how much memory it’s being given, how much CPU it’s being given. Those two numbers in particular, which Java relies on very heavily, means strange problems start to happen,” he said.

The company’s initial product, Illuminate, is a software-as-a-service performance diagnostic engine that uses machine learning to help users pinpoint and correct performance problems in Sun/Oracle/OpenJDK JVMs. It supports all JVM languages.

Its second tool is Censum, which detects problems such as memory leaks and application pauses. It takes log files from the complex Java (JVM) garbage collection sub-system to help users determine why that’s happening. jClarity offers Censum as a SaaS option or local deployment.

Containers have had a huge impact on the company, Verberg said.

“Java always assumed it was running effectively on a bare-metal box, on the actual physical device, or at the very least a hypervisor of some sort from VMware or something of that sort,” he said.

JClarity’s software uses an agent on each host to gather information from the operating system and Java itself to perform root-cause analysis of problems. For containers, it attaches to the outside — Java provides a mechanism for that, he said.

“Container purists say you should have only one process per container, which means there’s no room for us. We had to change our deployment strategy for those customers,” he said. “As far as the user is concerned, our software is simply part of their application. It’s still a single process … If you’re following the purist container approach, we can deal with that.

“We also find a lot of people are taking, dare I say, a more pragmatic approach, using things like Kubernetes to allow for one other process — and usually only one other process — to attach to their application and usually for monitoring. And that’s what we are: We’re a monitoring tool.”

Users can specify a service-level agreement on any aspect of their application, such as a log-in page must respond within one second, or this database transaction should return in a half second. The agent contains a copy of the machine learning engine, and it makes a decision about the root cause of the problem.

“The Java application might appear to the user to be slow, but it could be a database on that host doing a lot of writing to the hard disk, slowing the entire machine down and affecting the application. It’s these kinds of hidden relationships our algorithm is very good at picking up,” he said. When a problem is detected it sends the user a plain English report and recommended next steps.

It sends out an email, urging the user to go to a dashboard. Integrations with other tools, such as Slack are in the works, Verberg said.

More Automation Coming

Verburg adopts an alter ego, The Diabolical Developer, on the Java conference circuit.— He and co-founder Ben Evans wrote the book “The Well-Grounded Java Developer,” then around 2012 set out to apply their knowledge of performance tuning. They created their London-based company with Kirk Pepperdine, whose experience was in high-performance computing, whom they knew from the conference world.

“We quickly learned it was beyond a decision matrix or simple statistics, we actually needed to use some machine learning to take the human knowledge we had and turn that into an algorithm that had any reasonable accuracy,” Verburg said.

For that, they hired a couple of PhD data scientists — Richard Warburton and John Oliver  — to create the algorithm that Verburg calls its main differentiator from rivals New Relic and AppDynamics.

“New Relic and AppDynamics produce all the metrics and produce amazing visuals and infographics [from them]. They’re really brilliant. We really admire what they’ve done there.

“But at the end of the day, a human still has to look at those graphs and try to correlate three or four different graphs to try to figure out the underlying problem. We go one step further: We go through all that data and tell them, ‘Your problem is right here,’” he said, adding that it then it recommends exactly what needs to be done — such as which line of code — to fix it.

So far, users have to manually go do that, but the company’s roadmap is to automate those fixes.

“We know that’s an educational piece, because users don’t necessarily trust an automated system,” he said.

“We’ll probably start out with, ‘Here’s our suggestion. Here’s an apply button.’ And it will apply it for you. We think over time as the industry trusts AI more, some of these fixes can be applied automatically, as long as the user is notified, of course.”

The company is in the process of raising a seed round of funding. Its customers include the travel site Kayak and UK property portal Rightmove, both websites for whom slowness can frustrate users and cause them to lose customers.

Feature Image: “Morning Latte” by Jessica Spengler, licensed under  CC BY-SA 2.0.


A digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.