- Program description
- Download
- Development
- Documentation
- License
- Contact
Dimension UI is a desktop application designed to collect, store, visualize and analyze time series data.
Key Features of Dimension UI:
- Real-time data collection and analysis: Data is collected in real time, enabling users to monitor metrics online, analyze responses to various types of impacts, review historical data, and perform comparative analysis with other indicators.
- Flexible and rapid configuration of data collection profiles: This feature is particularly useful when speed is critical, allowing users to quickly gather specialized statistical data for a more detailed evaluation of system or component characteristics.
- Local storage in the specialized Dimension DB database (project repositories on GitFlic and GitHub)—a block-columnar database with built-in data compression and deduplication.
- Advanced time-series data mining capabilities using Matrix Profile and ARIMA.
- Time-series data visualization from external databases via JDBC with automatic SQL query generation for data sources (No-code mode).
- Dashboard system for displaying metrics from multiple sources in a single interface. Quick access to metrics simplifies user workflows when reviewing large volumes of analytical data.
- Built-in reporting system for generating PDF reports based on collected data for further analysis.
- Monitoring information systems, hardware and software systems, and databases in real time;
- Evaluation of hardware and software systems during load and stress testing, preparation of reports based on testing results;
- Monitoring the parameters of the Internet of Things (IoT) devices;
- Solving the problems of complex monitoring of information security of systems with access to data sources via the JDBC and HTTP API (Prometheus, JSON);
- Using the application for training in courses related to data processing and analysis, which require quick setup of data collection from test systems, visualization with the ability to perform advanced data analysis to demonstrate certain concepts, for example, for training system administrators, database administrators, developers and analysts;
- Diagnostics of problems in the operation of complex systems providing APIs for access to monitoring data via JDBC and HTTP (Prometheus, JSON). For example, for detailed diagnostics of the operation of systems and their components in a heterogeneous environment, Java microservices working with a database;
- Visualization and multidimensional analysis of collected time series data in a local database in real time, historically, and predictive analytics for various types of applications via JDBC and HTTP (Prometheus, JSON);
- Visualization and multidimensional analysis of time series data for tables and views in external Postgres, Oracle, Microsoft SQL Server, ClickHouse databases via JDBC protocol without writing SQL (No-code mode);
Dimension UI is compatible with Java 25+ and comes with a small set of dependencies.
Table 1. Hardware requirements
| CPU and RAM | Processor with a frequency of at least 500 MHz and a memory capacity of at least 250 MB, depending on the volume of processed data |
| CPU architecture | Intel 64-bit (x86_64), AMD 64-bit (x86_64), Arm 64-bit (aarch64) |
| Disk | Disk size depending on the volume of processed data |
Table 2. Software requirements
| Java | Java version 25+ |
| Maven | Not lower than version 3 |
| Git | Latest current version |
| Dimension-DB | Latest current version |
| Dimension-DI | Latest current version |
Table 3. Operating system requirements
| Operating system | Windows, Linux, MacOS |
To compile the application into an executable jar file, do the following:
-
Install JDK version 25 or higher, Maven and Git on your local computer:
java -version mvn -version git --version -
The Dimension-UI application depends on Dimension-DI and Dimension-DB, which must be installed first:
git clone <Dimension-DI URL> cd dimension-di mvn clean installgit clone <Dimension-DB URL> cd dimension-db mvn clean install -
Download the source codes of the application to your local computer using Git:
git clone <Dimension-UI URL> cd dimension-ui -
Compile and install modules for project using Maven:
mvn clean compile mvn clean install -U -
Execute the Maven command to build an executable jar file with tests running:
The executable jar file with launch scripts for Windows/Linux will be in the dimension-ui-<VERSION>.zip archive at the relative path desktop/target
- Windows Platform, run.bat
SET JAVA_HOME=C:\PROGRAM FILES\JAVA\jdk-25 SET JAVA_EXE="%JAVA_HOME%\bin\java.exe" chcp 65001 %JAVA_EXE% -Xmx1024m -DtestMode=false -Dfile.encoding=UTF8 -jar desktop-1.0-SNAPSHOT-jar-with-dependencies.jar
- Linux platform, run.sh
#!/bin/bash export JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64 export JAVA_EXE=$JAVA_HOME/bin/java export LANG=en_US.UTF-8 $JAVA_EXE -Xmx1024m -DtestMode=false -Dfile.encoding=UTF8 -jar desktop-1.0-SNAPSHOT-jar-with-dependencies.jar
To start working with the application you need to run the executable file run.bat/run.sh
The application interface provides the ability to analyze time series data in terms of anomaly detection, motif discovery, and forecasting;
For anomaly detection and motif discovery, the Matrix profile algorithm family is used, which uses the Z-normalized Euclidean distance to compare time series ranges.
Euclidean distance is a way of measuring the distance between two points in space, which can be represented as a straight line between these two points. In the context of data, this helps us understand how close two data sets or two point features are to each other.
"Z-normalization" is a standardization process, and its goal is to transform all of our data so that the mean is 0 and the standard deviation is 1. It's like translating all data into a common language, so that any values can be easily compared, without being affected by the scale or spread of the original values.
When we put this together, the Z-normalized Euclidean distance allows us to compare the Euclidean distance between data sets that have been normalized to a standard form. This way, we can be sure that we are comparing a distance that is independent of the original scales of the data.
This distance is often used in machine learning and statistics, for example for time series analysis or data clustering, where it is important to compare the "shape" of the data rather than the "size".
The Dimension UI program API provides an interface for loading data through JDBC and HTTP, visualizing it, and performing analysis.
| JDBC Connection | Connecting to databases (PostgreSQL, Oracle, etc.) to collect data. | 🔍 Preview |
| HTTP Requests | Requesting data through APIs (Prometheus) to collect metrics. | 🔍 Preview |
| Data Analysis | Applying algorithms (Matrix Profile, ARIMA) to detect anomalies, patterns in data, and predictive analytics. | 🔍 Preview |
| Visualization | Generating charts and graphs based on retrieved data. | 🔍 Preview |
| JDBC URL | Database connection string (e.g., jdbc:postgresql://localhost:5432/mydb) | 🔍 Preview |
| HTTP Endpoint | Prometheus API URL (e.g., http://localhost:9090/api/v1/query) | 🔍 Preview |
| SQL Query | Table name, SQL query, or metric name (e.g., cpu_usage) | 🔍 Preview |
| Table Column | Table column for data visualization, grouping type, chart format | 🔍 Preview |
| Time Range | Data interval for analysis (start/end date) | 🔍 Preview |
| Stacked Chart | Time series chart with multiple metrics (strings and numbers) | 🔍 Preview |
| Linear Chart | Time series chart for displaying numerical data only | 🔍 Preview |
| Gantt Chart | Gantt charts for visualizing data distribution | 🔍 Preview |
| Gantt Pivot Chart | Pivot tables visualized using Gantt charts | 🔍 Preview |
| Data Tables | Data representation in tabular format | 🔍 Preview |
| Anomalies | Chart of detected anomalies and patterns in data | 🔍 Preview |
| Forecast | Predictive analytics based on data | 🔍 Preview |
| Report | Data visualizations as PDF reports | 🔍 Preview |
- Editing and Viewing: The interface provides capabilities for viewing and editing profiles and tasks, simplifying the management of complex configurations.
- Data Collection: Users can easily set data collection parameters through intuitive forms, where they can select data sources and configure query parameters.
- Storage Settings: The GUI allows configuring local data storage settings. The software enables selecting storage formats and compression options, optimizing disk space usage.
- Template System: The GUI lets users quickly create profiles based on existing templates, reducing setup time and accelerating system onboarding.
🔍 Preview
🔍 Preview
🔍 Preview
🔍 Preview
🔍 Preview
🔍 Preview
🔍 Preview
🔍 Preview
- Data Representation: The interface enables seamless data interaction through visual elements, allowing users to explore local database content via various graphical representations.
- Visualization Tools: The GUI supports multiple visualization types, such as stacked and linear time-series charts, Gantt diagrams, and tabular data views, enhancing data analysis.
- Data Analysis Interface: Users can perform advanced time-series analysis using algorithms like Matrix Profile, visualizing results to highlight anomalies or trends.
🔍 Preview
🔍 Preview
🔍 Preview
🔍 Preview
- Control Panel: Allows users to create and customize dashboards for real-time metric display, providing quick access to critical data.
- Report Design Tools: The GUI enables configuring report generation interfaces. Users can select data, format, and layout to create export-ready PDF reports.
- External Database Visualization: The GUI lets users quickly access time-series data directly from external systems via JDBC.
- No-code Approach: Visualize time-series data using auto-generated SQL queries to data sources (working with denormalized data schema).
To set the application theme, you must use the LaF parameter in the Java Virtual Machine settings (VM options). This allows you to choose between dark, light, or default themes.
Supported parameters:
- -DLaF=dark — to set the dark theme.
- -DLaF=light — to set the light theme.
- -DLaF=default — to use the default theme.
When running the application via the command line, the LaF parameter is specified as follows:
For more details, see the Installation and Configuration section
- Building and installing DBase from source codes to a local Maven repository is described in the Building the Project section.
- If you find an error in the code or have suggestions for improvement, create a ticket;
- Before starting work, you need to check the project build and successful completion of unit tests according to the instructions in the Project build section;
To use CI/CD use Gitea Actions:
- Install gitea 1.20 using Docker;
- Add additional configurations in app.ini to enable Actions;
- Install gitea runner follow this guide;
- Use Docker compose file;
- Create pipeline in build.yaml.
Code released under the Apache License Version 2.0
Created with support of "Innovation Promotion Fund".
Created by @akardapolov
.png)






