Posted on December 1st 2015 

Measure your application performance and availability to the finest detail with a built-in transaction detection engine. 

In this series of posts I am covering some of the many ways you can benefit from XpoLog and especially on how to get the most valuable information about your log4j event logs. By running Analytic Search on your log4j data, you can among other things measure your application performance and thread activity, measure code activity with class and method analytics on log4j, build security analysis, and create dashboards, charts, slide-shows, and make use of other visualization gadgets for maximum analysis.

Try Xpolog Now

In this post I will show you how XpoLog can measure your application performance and availability to the finest detail in just a few lone clicks with a built-in transaction detection engine.

Preliminary

For the sake of our use cases, we selected one of our java applications which runs various types of processes. This application uses log4j to log its activities. One of these logs is called system audit. System audit notes all the various stages of the different processes executed by the system. We added the log in XpoLog Manager:

6th post add log

For the full Add Log procedure, see my post “Log collection and Appender configuration for log4j to XpoLog“.

Application Performance

Every second, tens, hundreds, and even thousands of transactions are logged in system audit. We want to measure the duration of each transaction and find out how many of them took more than 10 seconds to complete. We want to count how many such “slow” transactions occurred per hour. On the Search page, in the search field, type:

* IN log.system audit | transaction (“start job”, “Thread”, “Job Started” -> “end job”,”Thread”,”Job Completed”) | where transaction time > 10000 | count | interval 1 hour

Where:

  • transaction is an XpoLog function which maps the system processes in the log and displays a flow of events.
  • transaction time is measured in milliseconds, so 10000 is 10 seconds.

We got the following result:

6th post Ziv performance1

We can tell from the graph that the times when we are likely to experience poorer performance are between 8 AM and 6 PM. The table below the graph lists the number of transactions that lasted more than 10 seconds, per hour. Let’s say you were to decide that more than 50 occurrences of a transaction taking more than 10 seconds would cause an overall delay. You can easily tell from the results (graph and table) when the times you are most likely to experience poorer application performance are. See the areas marked in red:

6th post Ziv if more than 50 performance1

 

Application Availability

Let’s continue with another system audit use case and check its availability. We want to find out which system processes never completed, and when they took place. On the Search page, in the search field, type:

* IN log.system audit | transaction (“Set job state to Working Job State”, “Thread”,”Job Started”->”Set job state to Finish Job State”,”Thread”,”Job Completed”) | where job completed = null

Where:

  • transaction is an XpoLog function which maps the system processes in the log and displays a flow of events.
  • null means missing. For this search, “job completed = null”, means that the “Job Completed” step is missing from the flow.

We got the following results:

6th post Ziv availability1

We see from the graph when the most occurrences of the transaction failing to complete successfully took place. The table below the graph lists the exact times the transaction failed to complete successfully.

In a nutshell

I have already shown you in my previous post, “Beware of what you wish for…“, how a search, simple or complex, can give you results far beyond the expected, and how XpoLog is always many steps ahead analyzing your data and suggesting analytic insights you never even thought of could be what’s causing you trouble. But now you have also seen that XpoLog’s search engine has a built-in transaction detection engine, automatically giving you insights regarding the application performance and availability. In my next post I will show you how XpoLog can give you valuable information regarding your application quality. Stay tuned or go directly to our full documentation “Getting the Maximum from your log4j logs“.

Try Xpolog Now

Recent posts

Get Updates

Subscribe to get news, tips and insights directly to your inbox.
Subscribe