Skip to main content
Monica user interface

What's new in Monica v7.1.0

Introduction

In November 2024, we released a new version of Monica - v7.1.0. This release is far for minor and it makes us excited sharing the details with you. The upgrade includes: three major features, several medium-sized enhancements, and a significant increase in system scalability through the addition of active-active high availability mode. This addition is beneficial to operators of complex ground systems with multiple antennas and instruments - who prioritise high reliability and scalability - both delivered in this release.

About Monica

A quick reminder - Monica is our monitoring and control (M&C) solution designed to empower customers managing ground segment infrastructure and systems in reliable and efficient way. The solution is used in various industries, including RF and optical satcom, television and radio broadcasting, telecommunications, cable TV, and SCADA system management.

Version 7.1 summary

Main changes introduced in v7.1 are:

1. Active-active High Availability with Load Balancing

2. Scheduler upgrades

3. Charting upgrades

4. Other changes

Read about it in the following sections. We hope you'll like it.

Don’t hesitate to send us your feedback. Details are provided in the Get in touch section at the end of this page.

1. Active-active high availability with load balancing

Previous high availability implementations were based on an active-passive principle, provided by WildFly’s singleton deployment feature. The passive node would be in a warm backup state and, on failover, it would boot to active state. This process takes a few minutes - and longer for systems managing thousands of instruments. Moreover, this solution did not scale effectively. The usage of additional resources wasn’t efficient either.

To overcome this challenge we’ve introduced comprehensive cluster support. Details about the Cluster manager and HTTP load balancer are described in the following sections.

1.1 Cluster manager

For the first time since Monica’s existence, the version 7.1 application code is aware of the cluster it is run in. We added a new screen - called Cluster Manager - showing an overview of a Monica cluster.

 

 
Cluster overview screen in Monica
Cluster overview screen in Monica

In this setup, we can have any number of nodes. All nodes can be active at the same time and are ready to accept user requests or perform polling, calculations, or other typical M&C operations.

1.1.1 Types of operations in a clustered environment

There is no magic wand that could enable us to implement active-active support in all M&C operations - even though we wouldn’t mind if there is one! Hence, we had to carefully analyse and decide how to handle each method.

We ended up with three distinct use cases we are supporting in v7.1:

I. Fully active-active operations

For this kind of operations, it’s irrelevant which node performs a request, primary or non-primary node. It mostly covers CRUD operations and simple business logic. It enables direct scalability towards a number of end users - more nodes will allow for more concurrent Monica users or HTTP requests. One page load can vary between 5 to 50 HTTP requests, ultimately leading to much better performance.

II. Distributed resources

Distributed resources are bound to a single, dedicated node in the cluster. For our initial implementation, we chose Instruments and Instrument groups as natural candidates. That means each instrument will be handled by one node in the cluster, leading to direct horizontal scalability. Adding more nodes will allow handling a greater number of instruments.

III. Primary-only operations

Some parts of business logic need to stay in singleton mode, either due to lack of distribution support in underlying library (Rule engine), or due to our implementation details (Alarm component). This kind of operations will always be invoked on the primary node, which will act as the brain of the cluster.

1.2 Load balancing in active-active high availability

To allow seamless operation of the cluster from a single GUI, we added an HTTP load balancer (HAProxy) component as the gateway into Monica in cluster mode. It will ensure that each HTTP request targets the correct node, depending on the REST request URI (Uniform Resource Identifier) and on the setup of the backend cluster. It also seamlessly covers the failover use case.

For resource (instrument) distribution, there are two approaches:

  1. Automatic - on cluster events like failover, node leaving, and node joining

  2. Manual - it’s possible to manually redistribute instruments with the help of system-provided suggestions, based on instrument count, parameter count or parameter throughput. This functionality is provided by the following wizard:

     

Monica Redistribution manager screen
Monica Redistribution manager screen

By moving high availability logic into our application layer, we can have it intertwined with existing Monica modules, such as Logging and Alarming. There will be appropriate logs and alarm events for interesting cluster events:

  • Instrument has changed managing node

  • Node left cluster

  • Node joined cluster

  • Failover in progress (CRITICAL)

  • Node missing (WARN)

1.3 Other improvements

The new active-active high availability approach brought few additional enhancements described in sections below.

1.3.1 System health information

We extended the system health information. Monica v7.1 displays system health info per-node.

 

Monica System health screen
Monica System health screen
 

 

1.3.2 Deployment updates

For the first time on the Monica project, we dared to create a custom WildFly subsystem taking care of correct deployment order, eliminating the need for the installer to take care of following a correct order (custom DeploymentUnitProcessor).

2. Scheduler upgrades

The second big feature revamp is related to the Scheduler component, which finally receives more love from our side. The main changes are outlined below.

2.1 Composite jobs

Composite jobs consist of a start and an end event, and are commonly used for scheduled “prepare & cleanup” actions. The end event can be defined in absolute time or using a delay after start event time. Start and end can have different types of operations - i.e. start event can run a script, while end event can generate a report.

 

Timing screen in Monica
Timing screen in Monica
 

 

2.2 Deep linking of scheduled jobs to underlying activity

Operations run by Scheduler (scripts, reports) were rather decoupled from the Scheduler component and Timeline view. One example - there was no insight into scheduled script status from Timeline view.

We made it possible in Monica v7.1. Now, it’s possible to view script or report status and details from Timeline view.

Also, scheduled job status will reflect the status of the activity - which means if the script fails, the job will be marked with an error status.

Timeline view details in Monica
Timeline view details in Monica
Monica Execution details
 

 
 

 

2.3 Job grouping

Jobs can now be grouped into any number of groups (tags, categories), and displayed within those groups. A group can be anything - a user input such as antenna, satellite or similar.

The timeline can be shown with grouped jobs, where multiple jobs from the same group are displayed in the same line.

Monica timeline preview
Monica timeline preview
 

 

2.4 Conflict resolution

Each job can be marked with a conflict resolution strategy, consisting of:

  • resource ID

  • priority

  • strategy, with three possible values: postpone indefinitely, postpone up to X times or cancel

This enables use cases where low-priority jobs can be cancelled or postponed if a higher-priority job is already running.

Monica Conflict resolution screen
Monica Conflict resolution screen

3. Charting upgrades

The third notable big feature revamp is the Charting component. Up until version 7.0, charting component supported only one type of charts - timeline charts showing parameter values. Our main goals here were to:

  1. Show other types of data on charts, besides historic parameter values such as alarms, logs, thresholds, ranges, and bar andpie charts

  2. Improve analytics capabilities using different types of charts

  3. Utilise unused features from the Highcharts library

  4. Explore Grafana-like functionalities

  5. Improve TSDB API – limiting the number of points and auto-aggregation.

3.1 Timeline charts

The first big chunk of work was to extend existing timeline charts with options to display:

  • Alarms - flags with severity-matched colour – positioned on corresponding parameter line/point if available

  • Log entries - flags similar to alarms, but positioned near the top of chart

  • Plotlines - display straight line, i.e. threshold from Instrument property or Registry value

  • Constraints - directly display different ranges from driver as different background colours on the chart

 

Monica Timeline screen with Alarms
Monica Timeline screen with Alarms
 

 
 

3.2 New chart types

In addition to timeline charts, we introduced 9 (nine) new chart types:

  1. Alarm Count - Top alarms by count in a time period

  2. Alarm Duration - Top alarms by their duration in a time period

  3. Alarm Timeline - Alarm durations as tracks on a timeline

  4. State Count - Top states by count for specific or all instruments in a time period

  5. State Duration - Durations of states for specific instruments in a time period

  6. State Timeline - Instruments as tracks on a timeline, with their states represented as a color of the line

  7. Mode Count - Top modes by count for specific or all instruments in a time period

  8. Parameter Value Duration - Histogram of parameter value durations with configurable time buckets

  9. Parameter Value Comparison - Directly compare the value of any number of parameters in 2D or 3D space, pie or bar chart

Have a look to a dashboard showing some of the new chart types.

 

Monica dashboard with new charts
Monica dashboard with new charts
 

 

3.3 TSDB API revamp

Previously, only simple data fetching from TSDB (time-series database) was possible, without any limits. The API was rather simple and more a type of translator layer from database to REST.

After this update, the TSDB component is a lot smarter. It can limit the number of returned points, after which it uses auto-aggregation (ACG) to return up to maximum number of points. There is also an option to use live aggregation in query time.

 

 

The TSDB component has also been enriched with a lot of endpoints for reporting and analytics serving all the above chart types - and more!

Monica Chart type screen
Monica Chart type screen

4. Other changes in Monica v7.1

  • Schema - shape colouring based on parameter values

  • Schema - hide options → show options

  • Packet unpacking for Modbus drivers

  • Automatic execution of scripts on Monica startup

  • Enable Groovy language for main Scripting module

  • Support for virtual parameters on non-virtual instruments

Conclusion and next step

The successful deployment of Monica v7.1 marks a significant step forward in delivering enhanced scalability, increased reliability and improved overall performance for our users. 

In the meantime, we've completed further development. The Monica v7.2 was released in February 2025. V7.2 includes more exciting features. Stay tuned to our Blog section and read about it in our next post.

If you wish to remind yourself about features of the previous release, find the details in the blog post about Monica v7.0.


Get in touch

Send us your feedback. We’d love to hear from you. Get in touch with us today to discuss how Monica can support your business or project.