Article

Dynatrace Extension for Oracle:experience in developing a plugin for custom business logic

  • Illustration

    Author: Yevhenii Volkohon, Service Engineer, BAKOTECH

Dynatrace is an Observability platform designed for automatic IT system and application monitoring. While the platform provides extensive out-of-the-box functionality, there are cases when adapting it to specific business requirements becomes necessary. In such scenarios, Dynatrace Extensions 2.0 proves highly effective as a straightforward declarative mechanism, allowing users to specify data sources and metrics collection in a single YAML file.

Illustration

Recently, we completed a custom plugin development project for the Bank of Georgia (BoG). The task involved ensuring the collection of specific critical metrics from the bank's internal business system, which operates on an Oracle database, as well as tracking the system's status as defined by its algorithms. Collecting data from Oracle enables the creation of convenient dashboards for monitoring and allows setting up the Dynatrace alerting system, which instantly notifies relevant teams in the event of critical conditions. It is essential to note that this article does not use real project metrics due to security and confidentiality considerations.

The bank's team members, Vazha Pirtskhalaishvili (Head of DevOps & DataOps Engineering) and Giorgi Kalandadze (Expert DevOps Engineer), played an integral part in this project. They clearly defined the objectives, established an environment for plugin development, and provided consultations throughout all stages of integration with the Oracle database.
A distinctive feature of this project was the use of a local alphabet within the business system, which led to connectivity issues with the standard JDBC driver. Supporting non-English languages has been a long-standing challenge in the IT industry, with many companies long since struggling to accurately support languages, particularly those using non-Latin alphabets. The solution came in the form of a custom JDBC driver, developed internally by the bank’s development team for their applications. Dynatrace ActiveGate, the component responsible for executing extensions within Dynatrace, accommodates such custom drivers, significantly simplifying the integration process.

Illustration

Another significant challenge was that while Dynatrace can only store numerical metrics, the system's status was stored as text within the database. Modifying the database directly was a complex and time-consuming process and was therefore immediately dismissed as an option. Instead, the solution involved composing a sophisticated SQL query using elements of PL/SQL, Oracle’s procedural language used for creating database procedures and functions. Thanks to Giorgi Kalandadze’s active participation, we quickly developed and tested this query. As a result, the statuses were converted into numeric values: 0 – OK, 1 – WARNING, 2 – ERROR.

Illustration

The plugin’s final look:

Illustration

In Dynatrace itself, we have configured the appropriate rules to generate an issue report when any state other than OK occurs. Dynatrace generates this report based on anomalies found in the system related to metrics, logs, events, and user activity. Depending on the status and severity, notifications are sent to the appropriate teams through various communication channels. 

Illustration

Through Dynatrace's robust customization capabilities, we successfully tailored the platform to meet the Bank of Georgia’s unique requirements. This customization enabled the bank's team to swiftly obtain critical system status updates, significantly reducing their incident response time.

Our team possesses extensive expertise in developing custom Dynatrace extensions. If you want to maximize the integration of the platform for your business goals, please contact us for a consultation:

For more information about the Dynatrace platform, please fill out the form: