System Information
Flowable Work provides a mechanism to publish and store different system information in the database. Flowable Control can read and display this information for all the available nodes.
When contacting the Flowable Service Desk, you might be asked to provide this 'System info', as it gives the Flowable support engineers a quick view of the key configurations and performance indicators of your systems.
Available System Information
Flowable provides system information for the following things:
- Datasource (
datasource
)- Connection pool configuration
- Database (name, driver, etc.)
- Connection pool current state (
connection-pool
) - Flowable Version (
flowable-version
) - Flowable Database table counts (
table-counts
) - Flowable Job execution (
job-execution
) - Flowable Job acquisition
- Async Job acquisition (
acquire-async-jobs
) - Async History Job acquisition (
acquire-history-jobs
) - Timer acquisition (
acquire-timers
)
- Async Job acquisition (
- Flowable Async Executor details
- CMMN (
cmmn-async-executor
) - BPMN (
bpmn-async-executor
) - History (
async-history-executor
)
- CMMN (
- Flowable Job counts (
job-table-counts
) - Flowable Engines (
engine-info
) - Flowable License (
license
) - Flowable Dynamic System Configuration (
system-configurations
) - Spring Boot version (
spring
) - Operating System (
os-info
) - Java Memory (
java-memory
) - Java version / vendor / runtime (
java-info
) - Logging configuration (
logging
) - Elasticsearch (
elasticsearch
) - Task Executor
- Default (
default-task-executor
) - Flowable Platform (
platform-task-executor
)
- Default (
In the brackets the id of the system information provider is given. This can be used in properties as explained in the next section.
Enabling / Disabling Specific providers
All system information providers, except the table-counts
are enabled by default.
A specific provider can be disabled by using the property flowable.core-system-info.providers.<providerId>.disabled
and setting it to true
.
If you want to completely disable the system information providers you can set the property
flowable.core.system-info.providers.disabled-by-default
to true
.
You can then use the property flowable.core-system-info.providers.<providerId>.disabled
with value false
to explicitly enable certain providers.
We do not recommend disabling the providers by default.
Persisting to the Database
The system information provided by all the active Flowable system info contributors is persisted periodically in the Flowable Database. This allows you to see the state of each node in Control.
By default, the information is published every 5 minutes.
This can be configured using the flowable.core.system-info.publish-step
property.
This property needs to be set on the application running Flowable (not on Flowable Control).
e.g. if you want to publish every 5 minutes you can do flowable.core.system-info.publish-step=5m
There is also something that runs every 5 minutes to check for information about nodes that has not been updated for 30 minutes and removes that from the database.
In order to configure this you can use:
flowable.core.system-info.expiration-check-step
- a duration for how often the expiration check should be doneflowable.core.system-info.expire-after
- a duration after which the system information will be removed from the database (e.g. when a node is shut down)
Flowable Control UI
Flowable Control provides a way to view the System Information.
In the UI the information can be viewed per available node. There is a dropdown that allows to select the node for which you want to see the information. The following actions can be executed for a system information:
- Copy to clipboard - Copy the Information provided by Flowable Work to your clipboard
- Download file - Download the Information provided by Flowable Work to your local file system
- Refresh - Refresh the System Information
General information
In the General section of the system info we can see information about:
- Flowable Version
- Flowable Build Number
- Spring (Boot) Version
- Java information (vendor, runtime, jvm, version)
- Flowable license information
Database information
In the Database section of the system info we can see information about the version of
- Database - Version, Name, JDBC Driver
- Connection pool - Name, usage of connections
Java Memory information
In the Java Memory section of the system info we can see information about the Java memory usage (at the time the information was published)
There is an advanced section that provides the detailed information for the different memory usages.
Elasticsearch information
In the Elasticsearch section of the system info we can see information about the Elasticsearch cluster used by Flowable Work. If Flowable Work is running without Elasticsearch then this section will not be provided.
There is an advanced section that provides more detailed information such as the health details and the different settings.
Table Counts information
In the Table Counts section of the system info we can see information about the Flowable Work database table counts. This section is by default not visible, since the table counts are disabled.
Logging information
In the Logging section of the system info we can see information about the explicitly configured Flowable Work logging levels and the logging system that is being used.
Task Executor information
In the Task Executors section of the system info we can see the information about the 3 known Flowable Task Executors. For each executor we can see the active threads, the configured core / max pool size, the total queue capacity and the information about the current queue size.
Async Executor information
In the Async Executors section of the system info we can see the information about the Flowable Async Executors. For each executor we can see the specific configuration.
Timer Jobs information
In the Timer Jobs section of the system info we can see the information about the amount of acquired, executed and scheduled jobs.
The amount of cycles that are kept can be configured through the property: flowable.core.system-info.number-of-last-timer-acquire-states
. The default value is 20.
Here we can also see the amount of the timer jobs in the database.
The Async Jobs and Async History jobs have the same UI for this, but they provide information about the async jobs and async history jobs appropriately. The configuration properties for the number of cycles to keep for these sections are:
flowable.core.system-info.number-of-last-async-jobs-due-acquire-states
flowable.core.system-info.number-of-last-history-jobs-due-acquire-states
flowable.core.system-info.number-of-last-job-execution-states
Raw Data information
In the Raw Data section of the system info we can see the raw data that Flowable Work provides.