Applications can behave in unexpected ways and it’s often difficult to know whether this is appropriate behavior or if something is really wrong. Sound familiar? This is the same conundrum parents face… and often just as hard to solve.
But, for Java developers and members of DevOps, the ultimate advantage in this situation would be to know everything as it happens in their applications—and everything that could happen. To know all and see all (don’t we all wish for that!) would be great. Imagine detecting problems before delays arise and discovering trends the moment they form.
jKool addresses this with a real-time operational intelligence SaaS with streaming log analytics, metrics and transactions. Developers (and you folks in DevOps) can observe Java transactions as they occur together with a consolidated visualization of all logs and metrics on a single real-time pane of glass. You get a detailed record of their transactions stitched together, along with metrics and logs, and are able to see their flow of execution across applications, servers and infrastructure tiers. This creates a high-resolution image of application behavior. It’s almost like knowing everything about your applications.
jKool was born after visiting many customers who said they acquired more events than they could process in 24 hours. It’s as simple as that. They couldn’t even get to analyzing them as the bottleneck was in saving the events to disk, and that took too long. Sometime later, jKool was founded: an open-source solution with in-memory, real-time analytics, a NoSQL repository, a cool UI and a RESTful API.
jKool uses Cassandra from DataStax as its NoSQL database along with Solr for enterprise search. jKool can handle massive amounts of data at optimum speeds, leveraging open-source technologies such as Spark, STORM and Kafka. A real-time web UI presents a visualization of both data-in-motion and data-at-rest.
How to get your data into jKool for analysis and visualization
Here is the jKool Cookbook for using the RESTful API in Bluemix, illustrated in a sample application:
Let’s take an example of a business that has multiple systems running on servers located in different parts of the country. The servers pass data via message queues. We wish to correlate the data, capture server metrics and analyze the reason for failures. To do this, throughout our systems we send our data in JSON format via POST requests into jKool. Using our REST client, this is doable with just a few lines of code.
Step 1: Sign up and download
- Register for jKool (free!)
- Obtain your streaming token from the jKool tile
- Download the jKool REST Client from GitHub (Java Helper classes to get data into JSON format)
Step 2: Instrument your code with jKool REST calls
- Set up connection to jKool
- Marshall your data using the jKool REST Client
- Send the request
- Place the token in the POST header
- Your data in the POST body (JSON)
- Send the request (issue POST request)
Step 3: Visualize your data in jKool’s UI
Go to your jKool tile and view your data in your dashboard:
A sample jKool Dashboard displaying Java Garbage Collection analytics. The Viewlet in the lower right-hand quadrant shows an analysis across multiple JVMs with automatically computed upper and lower bands (normal bands). Bands auto-adjust dynamically.