Skip to content

Monitoring Eclipse Dirigible with Spring Boot Admin

Overview

Modern applications demand robust observability and monitoring tools to ensure reliability, performance, and security. To address this, Eclipse Dirigible introduces seamless integration with Spring Boot Admin (SBA). By embedding SBA's server and client capabilities, Dirigible provides an intuitive UI to monitor the health, performance metrics, and logs of applications. This feature eliminates the need for external monitoring setups, making it easier for developers to manage their applications directly from within Dirigible. This blog explores how to configure and use this integration to enhance your observability toolkit.

Steps to Run Spring Boot Admin Server and Client

Prerequisites:

Steps:

  • Run Eclipse Dirigible with Spring Boot Admin profiles

    To run the application with the Spring Boot Admin server and client, you must activate two spring profiles: spring-boot-admin-server and spring-boot-admin-client. By default, the client is configured to automatically connect to the embedded server.

    # use version 10.6.32 or newer
    IMAGE_TAG=10.6.32
    
    docker run -e SPRING_PROFILES_ACTIVE=spring-boot-admin-server,spring-boot-admin-client \
       -p 8080:8080 --name dirigible dirigiblelabs/dirigible:$IMAGE_TAG
    

  • Access Spring Boot Admin UI

    Once the application starts, you can access the Spring Boot Admin UI at: http://localhost:8080/spring-admin. You can login with the default credentials admin / admin. sba-welcome-page.png

Explore Spring Boot Admin UI

You can select the running instance and explore its capabilities. The SBA interface is organized into several tabs, each offering different insights into your application's performance and health. Below is an overview of these tabs along with brief descriptions of their functionalities.

  • Insights Tab

    • Details - displays general information about the application, such as process details, health, threads, garbage collection, memory details and so on. insights-details-01.png insights-details-02.png
    • Metrics - provides a comprehensive overview of various metrics such as CPU usage, memory consumption, request counts, and response times. This allows you to monitor application performance in real-time and identify performance trends or anomalies. metrics.png
    • Quartz - displays information related to Quartz scheduler jobs. This helps in managing and monitoring scheduled tasks within your application. quartz.png
    • Environment - shows environment properties and variables, giving you insights into the application's runtime environment and configurations. This is useful for verifying configuration settings and debugging environment-related issues. env.png
    • Beans - lists all the Spring beans loaded in the application context, including their dependencies and configurations. This helps you understand the application's component structure and manage bean configurations effectively. beans.png
    • Configuration Properties - displays the current configuration properties of the application, including both default and overridden settings. This facilitates easy configuration management and ensures that your application is running with the desired settings. config-props.png
    • Conditions - provides details about the auto-configuration conditions, showing which configurations are applied and which are not. This aids in troubleshooting configuration issues and understanding how Spring Boot is configuring your application. conditions.png
  • Loggers Tab - allows you to configure log levels for different packages or classes dynamically. This enables real-time control over the verbosity of application logs, which is essential for debugging and monitoring. loggers.png

  • JVM Tab
    • Thread Dumps - lets you create and analyze thread dumps to identify thread-related issues such as deadlocks or excessive thread usage. thread-dump.png
    • Heap Dumps - allows you to generate heap dumps for memory analysis and debugging memory leaks, ensuring optimal memory management. heap-dump.png
  • Mappings - displays the HTTP request mappings, showing the available endpoints, their paths, and the associated controllers and methods. This assists in API management, ensuring that all endpoints are correctly mapped and functioning as expected. mappings.png
  • Caches - provides insights into the application's cache usage, including cache names, sizes, and hit/miss rates. This helps you optimize caching strategies to improve application performance and efficiency. caches.png

Configurations for SBA Server and Client

The integration supports several environment variables to customize the server and client behavior. These configurations can also be used to configure Eclipse Dirigible as an SBA client for an external SBA server.

Config key Description
DIRIGIBLE_SPRING_ADMIN_SERVER_URL SBA Server URL
DIRIGIBLE_SPRING_ADMIN_SERVER_USERNAME username which is used by the client to register in the SBA Server
DIRIGIBLE_SPRING_ADMIN_SERVER_PASSWORD password which is used by the client to register in the SBA Server
DIRIGIBLE_SPRING_ADMIN_CLIENT_USERNAME username for the client application which is passed to the SBA Server so that it can call the client
DIRIGIBLE_SPRING_ADMIN_CLIENT_PASSWORD password for the client application which is passed to the SBA Server so that it can call the client

Summary

In this blog, we explore how to integrate Spring Boot Admin (SBA) into Eclipse Dirigible for enhanced monitoring and management capabilities. With an embedded SBA server and client profiles, Dirigible applications can be seamlessly registered and monitored.

We detail how to set up the SBA server and client using Docker, configure Eclipse Dirigible, and leverage SBA’s intuitive UI to gain insights into application health, metrics, logs, and more. Whether you’re monitoring a single application or managing multiple instances, SBA integration provides a robust solution for operational observability.