Log4j: How to Measure Your Application Performance and Availability in no-time?

With Great Availability Comes Great Performance.

In this article, we cover how to measure your application performance and availability, to the finest details, using an AI-powered log search (augmented log search) and out-of-the-box designated log4j log analysis app.

XpoLog7 is fully automated, from deployment to insights, so you get all the insights about your applications without the manual tedious work!

See for yourself  how easy it is 

Application performance and availability analysis – XpoLog, Log4j app

After the quick deployment, using XpoLog automated log parser, (minutes to deploy), you will be suggested with the relevant app that matches the type of logs you streamed into XpoLog.

Nice isn’t it?

get log4j insights in just a few clicks from download

Clarification: The picture above showing you a bunch of apps you will be able to find in XpoLog, when you stream Log4j logs, XpoLog will suggest the Log4j app immediately.

review the log4j dashboards and the insights you get automatically

Here you can see a preview of the log4j app, with its pre-defined dashboards and out of the box reports.

Install the log4j app and get automated insights about errors and exceptions in your log data

The above image shows an example of one of the app’s dashboards – Errors & Exceptions.

If you wish to see the rest of the automated data we offer, it’s a click away, and it’s free – we are pretty awesome, we know :)

Application performance and availability analysis – log search

By running Analytic log 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 a security analysis, and create dashboards, charts, slide-shows.
  • And make use of other visualization gadgets for maximum analysis.

So, how can you measure your application performance and availability in just a few lone clicks with a built-in transaction detection engine?


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

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


  • 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


  • 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

A log search, (simple or complex), can give you results far beyond the expected.

XpoLog log search is always many steps ahead analyzing your data and suggesting analytic insights you never even thought of could be what’s causing you trouble.

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.

Maybe the best thing that XpoLog bring to your hand is the new fully automated log analysis and management process!

You don’t have to lift a finger from – download to get insights, monitors, automated problem detection and more!