Diagnostic Panel

What is the Diagnostic Panel?#

The Diagnostic Panel is an advanced administrative tool built into Higson Studio, designed for monitoring, profiling, and diagnostics of the Higson decision engine instances. It enables administrators and developers to gain insight into the internal system state, operation performance, and licence management.

Who is it intended for?#

  • System administrators — server health monitoring, licence management, resource control
  • Developers — cache debugging, business rule performance analysis, SQL query optimization
  • DevOps teams — CPU, RAM, JVM thread monitoring
  • Support teams — real-time production issue diagnostics

Key Capabilities#

Feature Description
Cache profiling Viewing the contents of the engine’s cache.
Execution statistics Metrics for function, flows, domain, and decision table call times.
Resource monitoring Real-time CPU, RAM, thread, GC charts.
Performance analysis Rule execution history with duration times.
Licence management View limits, core usage, and compliance metrics.
JDBC monitoring View SQL queries generated by the engine.

The Diagnostic Panel is accessible from the main Higson Studio menu Tools → Diagnostic panel:

After clicking, the interface switches to the diagnostic panel with its own tabs. The panel opens with the default Profilers tab

No. Name Description
1. Profilers The Profilers tab is used for inspecting cache and call statistics.
2. Performance The Performance tab records a detailed history of business rule executions in the system.
3. Monitoring The Monitoring tab provides real-time server resource monitoring.
4. Licence The Licence tab provides full insight into the Higson licence status.
5. Server Mode Selector The Server Mode selector which allows you to switch between different nodes in the Higson cluster. All data displayed in the panel relates to the selected node.

The Server Mode selector which allows you to switch between different nodes in the Higson cluster. All data displayed in the panel relates to the selected node.

To select the data for analysis, click on Server Mode Selector and then:

  1. Select the data source. The selector operates in two modes:
    • Server Mode — live data from a selected node, with the option to filter by date range (the ‘From’ / ‘To’ fields)
    • File Mode — data from a previously exported diagnostic file (.hdiag), for offline analysis
  2. Select the node.
  3. Select the date range

Export#

To export data, click on Selector and then Export. A pop-up window will open, in which you should:

  1. Select the date range.
  2. Select the node.
  3. Select the export range.

Required Permissions#

Access to the diagnostic panel requires the Higson system administrator role. If permissions are missing, the user will be redirected to the Dashboard with the message “No permissions — You have no permissions to view this page”.

Profilers Tab#

Performance notice: Enabling profiling via the higson.runtime.diagnostic.profiler.enabled property reduces runtime performance. It is recommended to enable profiling only for diagnostic purposes and disable it in production environments where performance is critical.

The Profilers tab is used for inspecting the internal data structures of the Higson engine — primarily the cache contents and call statistics. It helps answer questions such as: “what is currently in the cache?”, “how many times has a given rule been called?” and “what SQL queries are being generated?”.

The side menu (left navigation panel) divides the tab into three sections: CACHE, STATISTICS, and ADDITIONAL TOOLS.

CACHE Section#

The CACHE section allows viewing the current contents of the Higson engine’s cache. Each subpage displays a different type of cached object.

Row Color Coding in Cache Tables#

In cache tables, rows may be highlighted with colors:

  • Row highlighted in purple/pink — indicates an element that was recently modified or is currently selected/active in the working session context
  • Row without highlighting — element in normal state

Cache/functions#

Displays a list of all functions currently stored in the engine’s cache.

No. Column/Action Name Description
1. Code Code of the function.
2. GUID List Cache version identifier of the function with metadata: language type (python/groovy), last update date, session ID.
3. Head List Identifier of the newest (main) version of the function — comparison with GUID List allows detecting outdated versions.
4. View value Link to view the full cache entry value (FunctionDto object details).

Use cases:

  • Verifying whether a given function is correctly loaded into the cache
  • Checking the function version (whether HEAD matches GUID — no discrepancy)
  • Identifying language types (Python vs Groovy) in the system
  • Diagnosing function update problems (comparing lastUpdate dates)

Cache/flows#

Displays a list of flows stored in the cache. Flows are complex business processes consisting of multiple steps, combining function calls and decision tables.

No. Column/Action Name Description
1. Code Unique flow code (name).
2. GUID List Cache version identifier of the flow with metadata (update date, session ID).
3. Head List Identifier of the newest flow version.
4. View value Link to view the full cache entry value.

Use cases:

  • Verifying flow presence in the cache after deployment
  • Checking whether the GUID version matches HEAD
  • Diagnosing flow execution problems

Cache/decision-tables#

Displays decision tables stored in the cache. Decision tables are a key element of the Higson engine — they define business rules in tabular form.

No. Column/Action Name Description
1. Code Decision table name (e.g., demo.motor.coverage.availability).
2. GUID List Cache entry metadata with the number of input parameters (in=) and output parameters (out=), update date, session ID.
3. Head List The newest version of the table in cache.
4. View value Link to view the full cache entry value.

Use cases:

  • Verifying that decision tables are correctly loaded
  • Checking table parameters (in/out)
  • Identifying tables with outdated versions

Cache/versions#

Displays cached versions of the Higson engine. Versions allow managing different rule variants.

No. Column Description
1. ID Version identifier
2. Region ID ID of the region the version belongs to
3. Region Code Region code
4. Number Version number
5. View Name of the view associated with the version
6. Description Version description
7. Profile Profile associated with the region and version
8. View value Presents full values

Use cases:

  • Verifying which configuration versions are currently loaded
  • Checking the correctness of regions, views, and profiles

Cache/prepared-decision-tables#

Displays prepared decision tables — these are decision tables that have already been compiled and prepared for fast execution by the engine.

Column Description
Key Key identifying the prepared table
ID Table identifier
Last Update Date of last processing
Region Version ID Region version ID
Input Levels Table input levels (input parameter definitions)
Output Levels Table output levels (output parameter definitions)

Use cases:

  • Checking whether tables are correctly prepared for execution
  • Diagnosing table performance issues (update dates)
  • Verifying the input/output levels structure

Cache/compiled-functions#

Displays compiled functions — functions that have been compiled to executable form and are ready for immediate use.

Unlike Cache/functions (which shows function definitions — FunctionDto objects with metadata), Cache/compiled-functions shows the resulting compiled objects ready for direct execution by the engine. A function may exist in Cache/functions but not yet be compiled — it will appear here only after the first invocation.

Column Description
Code Compiled function code (name)
Value Information about the compiled object

Use cases:

  • Verifying that functions are correctly compiled
  • Identifying functions that have not yet been compiled (missing from cache)
  • Diagnosing compilation errors — if a function is in Cache/functions but not in Cache/compiled-functions, it may indicate a compilation error

STATISTICS Section#

The STATISTICS section presents performance metrics for calls to individual elements of the Higson engine. It helps identify bottlenecks and optimize configuration. Each subpage in this section has a Clear data button that allows clearing the collected statistics.

Stats/functions#

Statistics of function calls — how many times a given function was called and how long its execution took. The table structure is analogous to Stats/domains.

Column Description
Key Function name (code)
Max Time Maximum execution time (ms)
Min Time Minimum execution time (ms)
Average Time Average execution time (ms)
Total Time Total time of all calls (ms)
Count Number of function calls

Use cases:

  • Identifying the most frequently called functions (Count column)
  • Detecting slow functions requiring optimization (Max Time column)
  • Stability analysis — a large difference between Min Time and Max Time may indicate instability

Stats/flows#

Statistics of flow calls. The table structure is analogous to Stats/domains.

Column Description
Key Flow name (code)
Max Time Maximum execution time (ms)
Min Time Minimum execution time (ms)
Average Time Average execution time (ms)
Total Time Total time of all calls (ms)
Count Number of flow calls

Use cases:

  • Identifying the slowest and most frequently called flows
  • Comparing performance across different flows

Stats/domains#

Statistics of operations on domain (business data structures) of the Higson engine. Presents the Invoke Stats section with time metrics.

No. Column Description
1. Key Operation name (e.g., getDomain)
2. Max Time Maximum operation execution time (ms)
3. Min Time Minimum execution time (ms)
4. Average Time Average execution time (ms)
5. Total Time Total time of all calls (ms)
6. Count Number of operation calls (e.g., 476)

Use cases:

  • Identifying domain operations with the longest execution time
  • Monitoring performance trends
  • Comparing min/max/avg to detect anomalies
  • Load analysis — the Count column shows how many times the operation was called

Stats/decision-tables#

Statistics of decision table calls. The table structure is analogous to Stats/domains.

Column Description
Key Decision table name (code)
Max Time Maximum execution time (ms)
Min Time Minimum execution time (ms)
Average Time Average execution time (ms)
Total Time Total time of all calls (ms)
Count Number of table calls

Use cases:

  • Identifying the slowest decision tables
  • Comparing performance of tables with different complexity (number of in/out parameters)

ADDITIONAL TOOLS Section#

Usage/jdbc#

Displays a list of SQL queries (JDBC) generated by the Higson engine during operation. This is a key tool for diagnosing database layer performance. It has a Clear data button to clear the collected data.

No. Column/Action name Description
1. SQL SQL query content (abbreviated, with the option to view the full text)
2. Average Time Average query execution time (ms)
4. Min Time Min time of all executions of the given query (ms)
5. Max Time Max time of all executions of the given query (ms)
6. Total Time Total time of all executions of the given query (ms)
2. Count Number of executions of the given query
7. View value NLink to view the full SQL query text along with statistics

Use cases:

  • Identifying slow SQL queries (sorting by Average Time)
  • Identifying the most frequently executed queries (sorting by Count)
  • Analyzing which queries the engine generates during various operations
  • Optimizing the database layer (missing indexes, overly broad selections)
  • Diagnosing database performance issues

Performance Tab#

The Performance tab records a detailed history of business rule executions in the system. Every function, decision table, flow, or domain operation call is logged with an exact timestamp and duration.

No. Column name Description
1. Timestamp Exact date and time of execution (with milliseconds), e.g., 2026-02-04 17:45:23.847
2. Server Server where the operation was executed.
3. Type Business rule type — indicated by a colored badge: Flow (blue) — business flows;FN (purple) — functions ;DT (green) — decision tables;Domain (orange) — domain operations
4. Rule Name Full name of the called rule, e.g., decerto.motor.policy.PolicyQuote
5. Duration Execution duration in milliseconds, e.g., 523.4 ms

Slow Operation Highlighting#

Rows with long execution times are clearly highlighted in red/pink, making it easy to immediately identify bottlenecks (e.g., an operation lasting 1245.3 ms). The coloring is automatic — the system itself determines the threshold above which an operation is considered slow.

Use Cases#

  • Detecting bottlenecks — quick identification of the slowest rules
  • Load distribution analysis — which servers (Runtime 1/2, Studio, Rest) handle which operations
  • Performance comparison — between different rule types (Flow vs FN vs DT)
  • Debugging — correlating timestamps with application logs
  • Performance regression testing — comparing times before and after deploying changes

Monitoring Tab#

The Monitoring tab provides real-time server resource monitoring through interactive charts and tables. Data is automatically refreshed every few seconds. Each chart has a set of controls.

No. Name Description
1. + Click + to zoom in.
2. - Click - to zoom out.
3. Magnifying glass Select the Magnifying glass and highlight the area of interest.
4. Refresh Manual data refresh.
5. Expand Full-screen chart view.
6. Range slider Move the range sliders to adjust the displayed view.

Resource Charts#

CPU#

Server processor load chart over time. Displays:

  • Current value (e.g., 42.6%)
  • min / max / 1h avg — statistics for the last hour
  • Interactive chart with zoom capability (+/-)

RAM#

Server memory usage chart:

  • Current value (e.g., 497.9 MB)
  • min / max / 1h avg — e.g., min 422.4 MB, max 610.5 MB, 1h avg 517.8 MB
  • Chart with trend visualization

Threads#

JVM active thread count chart:

  • Current value (e.g., 25)
  • min / max / 1h avg — thread statistics

Minor GC (Garbage Collection)#

Garbage Collection operation time chart divided into:

  • Minor GC (orange) — frequent, fast garbage collection
  • Major GC (purple) — less frequent, longer operations
  • min / max / 1h avg — e.g., min 4.2 ms, max 16.9 ms

System Info#

Panel with key system metrics:

  • Requests/sec — current throughput (e.g., 143 Req/s)
  • Uptime — server uptime (e.g., 3d 14h 22m)
  • GC Count — total number of GC operations
  • Cached Functions — number of cached functions
  • Cached DT — number of cached decision tables

Thread States#

Table with the states of all JVM threads on the server:

No. Column Description
1. ID Thread identifier.
2. Thread Name Thread name (e.g., pool-1-thread-1, HikariPool-1-housekeeper, GC-worker-1).
3. State Thread state — indicated by a colored badge:

Runnable (purple) — thread is actively executing code
Timed_Wait (turquoise) — thread is waiting with a time limit
Waiting — thread is waiting for a notification
4. CPU Time CPU time consumed by the thread (ms).
5. User Time CPU time spent executing application code in user mode (excluding kernel/system operations like I/O or memory allocation), sourced from JVM’s ThreadMXBean.getThreadUserTime.

Use Cases#

  • Load monitoring — ongoing control of CPU, RAM, thread count
  • Memory leak detection — observing RAM trends over time
  • GC diagnostics — identifying excessive Garbage Collection operations
  • Thread analysis — detecting threads in deadlock state or with excessive CPU usage

Licence Tab#

The Licence tab provides full insight into the Higson licence status, its usage, and compliance with limits.

Licence Details#

Panel with licence details:

No. Parameter Description
1. Licence type Type of the licence (e.g., Enterprise Production, Developer).
2. Licence ID Unique licence identifier.
3. Organization Name of the organization the licence is assigned to.
4. Valid from Licence validity start date.
5. Valid until Licence expiration date.
6. Licensed CPUs Maximum number of CPU cores allowed under the licence.
7. Licence status Current licence status (e.g., Active, Expired).

Licence Usage#

Visualization of current licensed CPU core usage with three indicators:

No. Metric Description
1. Current usage Number of CPU cores currently in use, shown as a ratio with percentage and status label.
2. Average (30 days) Average CPU core usage over the last 30 days.
3. Peak (30 days) Highest recorded CPU core usage over the last 30 days.
4. Last updated Timestamp of the most recent data refresh for this section.

Each indicator has a colored progress bar and a status label:

  • OPTIMAL (blue) — usage within normal range
  • NORMAL (gray) — acceptable usage
  • CRITICAL (red) — usage near or exceeding the limit

Data in the Licence Usage and Performance Metrics sections includes “Last updated” information with the date and time of the last refresh. Data may be updated at different intervals.

CPU Usage Over Licence Period#

Historical chart of CPU usage over the licence period with two lines:

  • Average CPU (green) — average core usage
  • Peak CPU (red) — peak core usage

The chart contains two threshold lines:

  • Yellow line (dashed) — warning threshold
  • Red line (dashed) — critical threshold (licence limit)

Available time ranges: Years, Month, Weeks, Days

Licence Warnings#

Table listing all recorded licence limit violations. Each row represents a single event where CPU core usage exceeded the licensed limit.

No. Column Description
1. Timestamp Exact date and time when the violation occurred.
2. Severity Violation severity level: Critical (significant breach) or Warning (minor breach).
3. CPU Usage Actual CPU core usage recorded at the time of the violation.
4. Licence Limit Maximum number of CPU cores allowed under the licence.
5. Exceeded By How much the usage exceeded the limit, shown as absolute value and percentage (e.g., +2.4 cores (15%)).
6. Duration How long the violation lasted before usage returned below the limit.

Each row has an expand button (→) that opens the Warning Details modal with additional information. The modal contains two sections:

  • Violation Summary — three cards with key metrics.
  • Top Processes During Violation — table listing the processes that consumed the most CPU at the time of the violation.
No. Element Description
1. Duration How long the violation lasted before usage returned below the limit.
2. Timestamp Exact date and time when the violation occurred.
3. Exceeded By How much the usage exceeded the limit, shown as absolute value and percentage.
4. CPU Usage CPU core usage by that process at the time of the violation.
5. Process Name Name of the JVM thread or process (e.g., HigsonEngine-worker-12).
6. CPU Usage CPU core usage by that process at the time of the violation per process.

Use Cases#

  • Capacity planning — analyzing CPU usage trends vs licence
  • Licence management — monitoring approaching expiration
  • Compliance — controlling compliance with licence terms
  • Billing — documenting actual resource usage