Monitoring Kibana performance through AOM

Monitoring Kibana Performance Through APM

Written by Aniket Pant

| Apr 12, 2023

4 MIN READ

Application performance monitoring (APM) is an integral part of Elastic Observability, but before we deep-dive into APM, let’s understand what Observability is all about.

What is Observability?

Observability is not a technology that a vendor delivers in a box, but rather an attribute of a system that you build, similar to usability, high availability, and stability. The goal of designing and building an observable system is to ensure that when it is running in production, the operators responsible for it can detect undesirable behaviors, such as service downtime, errors, and slow responses, and have actionable information to pinpoint the root cause effectively. For example, this can be achieved through detailed event logs, granular resource usage information, and application traces.

Is Monitoring not similar to Observability?

Observability and monitoring are two sides of the same coin. Observability focuses on the internal state of an application by looking at logs, metrics, and transactions. On the other hand, Monitoring focuses on thresholds like when the CPU reaches 90% usage or when the memory reaches its limit. Monitoring tells you when something is wrong, while observability tells you why it went wrong and how to fix it. Monitoring is a part of Observability.

What is Elastic Observability?

Elastic Observability provides granular insights into applications running in your environment. It provides you with a single stack to unify your logs, infrastructure metrics, uptime data, application traces, user experience data, and synthetics.

Kibana p1
Elastic Observability Stack

What is APM (Application performance monitoring)?

APM is a part of Elastic Observability, which provides deep observability of your applications. It offers error logs, trace logs, TPM (transactions per minute), service maps, dependencies, and more.

Kibana p2
APM Architecture

Why are Enterprises picking Elastic APM?

We know that organizations do not rely on a single application; they have multiple applications, and those applications interact with other applications. One application calls another application by using APIs, or applications that interact with the database. What happens if one application cannot call another application or if the database is responding very slowly to a user query? Or if my application’s response time is delayed? Opening the server and checking the logs is good, but what happens if the application has various dependencies, and you need to check where the issue is coming from?

To tackle these issues, you can integrate Elastic APM into your application.
In this article, I will take Kibana (a Node.js) application and monitor its performance using APM.

How to monitor Kibana’s performance by using APM?

Within Kibana, the Observability Overview page consists of a wide variety of charts serving analytics to make your systems observable – be it logs, infrastructure metrics, APM, or uptime data. Plus, the alerts chart keeps you informed of any issues that you may need to resolve quickly.

ELK version: 7.16
OS: Linux
APM server version: 7.16

Elastic APM is dependent upon the apm-server. Install and configure the service of APM-server on the application side and configure the application by adding APM configuration in your application.

To monitor your Kibana, modify the kibana.yml file and add the below lines and save it.

elastic:

  apm:

        active: true

        serverUrl: https://< APM-SERVER-IP >

        centralConfig: true

        breakdownMetrics: true

        transactionSampleRate: 0.1

Restart the kibana service and open the kibana

Navigate to Observability > APM

If everything goes well you will see the page mentioned below:

Kibana p3
APM Overview

As we know, kibana communicates with Elasticsearch. We can see this as a graph in the service map.

Kibana p4
Service Map

Kibana depends on Elasticsearch as seen in this snapshot you can see the failed transaction rate fig 3 of each node of Elasticsearch. You can click on any node to get a detailed view of each service that interacts with Kibana.

Kibana p5
Application Dependencies

You can see the transactions running in the background

Kibana p6
Application Transactions

APM is not just an application that monitors your application, it also allows you to detect faults, observe the latency, throughput, transactions per minute, etc. before releasing it into production. Elastic APM can monitor not only Node.js applications but also Java, Python, Ruby applications, etc. by installing and configuring the application agent into your code.

Hope this article helped you understand  Kibana and Observability in detail. Explore our other articles on the latest open source technologies. If you’re looking for Elastic consultation, services or support, feel free to connect with our technical experts right here at Ashnik.


Go to Top