How to Build Better Software

How to Build Better Software 2548 1422 KRONOMETRIX

A better way to design software

Companies are pushing lots of updates to fix different vulnerabilities and software defects at an alarming rate. Many developers are focusing heavily on coding, writing software in sprints, based on user stories, using scrum or other agile methodologies but still fail to deliver robust software.

Programming is not coding!
What is the difference and why is it important to know?

We would like to present three main things how anyone can use to learn build better and more reliable software.

Precise Designs

Being agile does not mean you should forget what and how your software should do. These must be written down in a precise form, not based on plain English prose, static diagrams, user stories or some sort of pseudo-code. 

And that means using formal methods, like TLA+ which will help you validate and find very subtle design bugs before implementing or writing a single line of code, not found through any other method or technology. Formal methods are mathematically techniques for the specification, development, analysis, and verification of software and hardware systems.


There are many implementations of formal methods used in industry: TLA+, Alloy, Petri Nets and may other implementations. Several companies are using formal methods. For example TLA+: Amazon Web Services uses TLA+ to design its own products (S3, DynamoDB, EBS), Microsoft (Xbox), Intel (microprocessor design),  European Space Agency (Rosetta spacecraft using OpenComRTOS operating system)

Programming vs Coding

“Coding is the easy part of the programming”. Every time you plan to build a new program, there are three main things involved:

  • first you must decide what the program should do
  • then one should think how to do it, for example what algorithm to use
  • and then do it, by selecting a programming language and start coding

Without thinking very carefully about the first two parts , what and how the program will work, and writing down these into a precise format, what we call a specification, nobody can answer what means for the program to operate correctly. We call these the two main parts, the programming part.

Programming means working on a high level aspect of your program, at the algorithm level rather than the code level.

Coding is the last part of building the program, after the high level designs are in place. This requires to select a programming language and start the low-level part of the program, the implementation.

Scalability Analysis

Last but not least you should quantify the performance of your application. If you can’t quantify it, you will not be able to guarantee it. This means using a mathematical model, like Universal Scalability Law (USL) to validate your performance results and conduct a proper scalability analysis. 

There are two main benefits using USL for our program:

  • Validate our performance test results. Many companies are conducting lots of performance tests without making sure the results are also correct. The USL model helps us on this part
  • Project the application performance for different payloads
The USL model

There are different ways to use USL, from using Excel/OpenOffice, R or any other data numerical application.

At Kronometrix

Building software is not easy. With a small budget we managed to build a robust platform which can operate without human interventions for years, use less electricity vs. other similar solutions. Using USL, TLA+ have helped us to achieve these goals. Get started today with our free Kronometrix data analytics platform. If you have any questions or what to know more about our products and services please contact us!

Kronometrix Data Recording Update

Kronometrix Data Recording Update 1864 1424 KRONOMETRIX

Kronometrix Data Recording
version 1.20

December 2022

Kronometrix Data Recording is an automatic data collection package for ICT enterprise, industrial IoT, weather and environmental devices. To simplify how to get started we have created several packages, free of charge, which can be used to capture and transport data for analysis.

Check out our free Kronometrix
data recording packages

Select your application to get started

Version 1.20

We are working to release a new update for Kronometrix Data Recording which will include the following new features:

sockrec – The network IO Socket Data Recorder Improvements

New features and capabilities to receive data from various sensors and devices, like Vaisala WXT weather transmitters:

  • capability to filter incoming data using a JSON configuration
  • discard invalid or bogus not allowed data
  • reprocess data if there are transmission errors
Raspberry Pi fixes
  • inventory data fixes: number of cores and the processor type
  • corrections to fix invalid device name for certain USB disks, microSD cards
Storage data recorder bug fixes
  • fixes for CloudLinux operating system
Support for new IAQ sensors
  • Siemens QPA2052
  • Honeywell C7355A, C7355B
  • Schneider Electric SLXRHS1N
Security Updates
  • Expat 2.5.0 update
  • CPAN Dec 2022 update
  • OpenSSL 1.1.1s has been already fixed in 1.19.1 November 2022 release

Download you package based on your configuration and industry, from operating systems to industrial IoT installations. For 24×7 contracts you will automatically receive 1.20 after release.

Get started today with our free Kronometrix data recording packages! If you need more packages, options and support check our business catalogue or contact us!

Happy Winter!

Capture the right data with Kronometrix Data Recording

Capture the right data with Kronometrix Data Recording 2578 1906 KRONOMETRIX

Ready packages to capture the right performance metrics from your systems and applications

Kronometrix Data Recording is an automatic data collection package for IoT, enterprise ICT, web applications, weather and environmental devices. Available as an open source project, for many computer systems, the data recorders can be used to capture the right performance metrics from different data sources. Learn more about Kronometrix data recorders capabilities below.

To simplify how to get started we have created several packages, free of charge, which can be used to capture and transport data for analysis. These packages are offered without support or any other service level agreements.

Check out our free Kronometrix packages

Need support and SLA? Visit our business catalogue to get more packages.

How does it work?

There are different ready made packages for several computer systems or applications. Each package includes all necessarily modules to start and capture data:

  • binaries and data recorders
  • the transport utilities
  • main configurations
  • manual pages and documentation

Select your package, download and install it for your system. After installation, you need to configure it to get your data. Each package includes a short description how to get started.

There are different package, for different industries and applications.

Download you package based on your configuration and industry, from operating systems to industrial IoT installations. Note: we are currently working to improve some of these packages, soon to be available for download.


Check the prerequisites section, of each package to see what are the minimum settings to get started.


Follow the short installation notes how to install your package. For example this is how you will need to install the Raspberry Pi package:

# dpkg -i kdr-stable-raspbian-armv8.deb
The software is found under /opt/kronometrix directory. Current raw data is saved under log directory. The configuration files are found under etc directory. 

See your data

After installation, you have access to the data recording package, including the recorders and the captured raw data from your systems or applications. To visualize, analyze and consolidate all your data you can subscribe to Kronometrix SaaS or directly use the raw data with your own data analytics and visualization applications.

Get started today with our free Kronometrix packages! If you need more packages, options and support check our business catalogue!

SNMP Data Recorder

SNMP Data Recorder 1243 880 KRONOMETRIX

It is simple now to capture SNMP data!

Kronometrix Data Recording can work with various systems, applications, or devices using one or many data communication protocols, like MODBUS, HTTP, TCP or UDP. During this autumn, we have added support for SNMP devices, implementing a new data recorder, called snmprec. Based on a modern and scalable interface, the new recorder is designed to capture the right data from various devices, like:

  • Network equipment: switches, routers, firewalls
  • Storage devices: NAS and SAN
  • Utilities: HVAC, UPS, power metering equipment

The recorder does not require extra libraries or additional software to run. It has all needed components to connect and capture data from different devices or systems. Part of Kronometrix Data Recording, the recorder is available for various operating systems, or it is integrated to our IoT Gateway, for business installations.

How does it work ?

The snmprec data recorder is implemented as a CLI based application, easy to run interactively or continuously, for longer periods of time. This way it is simple to use for different activities from troubleshooting or debugging to performance analysis and capacity planning. The recorder, like any other Kronometrix data recorders, is offering immediate access to original raw data.

Configuration File

The recorder keeps all its settings, under a simple JSON configuration file. It is a text based file, simple to change and modify, using any text editor. The configuration supports any type of SNMP device and metric. You can add your own devices or use the built-in default supported systems.


You can easily start the recorder from Linux/UNIX terminal, like this:

What’s Next ?

We are working to improve the current functionality of SNMP data recorder, to support authentication, and different object types, like Counter32Counter64TimeTicks, as defined in RFC 2578. We are planning to create a number of default SNMP objects in Kronometrix, supporting printers, network equipment (firewalls, switches) and different other utility devices, like power metering, HVAC or UPS. Later, during Q1 2022 we will improve as well our data visualization capabilities, to fully support the SNMP data. If you want to stay up to date and have access to the latest development builds, please join our free development server.

Add your devices

If you work with different SNMP devices, we can help you to have them supported and ready for Kronometrix usage. Please let us know your equipment, and we will do the rest.

More information

Kronometrix Data Recording is an open-source software for ICT Enterprise, IoT, Weather and Environment industries. It supports a number of ready data recorders, which can be deployed on virtual or bare-metal servers, or ready systems like ARM single-board computers. Find out more about our data recorders or Kronometrix IoT Gateway. If you still have questions and need to ask more about our products and services don’t hesitate to contact us.

Kronometrix Data Recording Capabilities

Kronometrix Data Recording Capabilities 960 619 KRONOMETRIX

A complete solution to capture the right data for your business!

Kronometrix Data Fabric offers a complete solution to capture correct performance data from various systems, devices or applications, using the following options:

Data Recorders

A simple and efficient set of data recorders, built as an open-source software, which can help to capture data from computer systems, web applications, Internet or enterprise services.

How does it help?

Kronometrix data recorders can easily deploy to bare-metal or virtual computer systems, offering immediate access to the original raw data. The recorders are available as a software package for different operating systems, designed for:

  • software developers, ISVs and companies which require immediate access to their application’s performance data
  • IaaS or SaaS companies which are running their business on cloud, to help to capture and transport data from different providers for consolidation and analysis
  • banking and financial institutions, security agencies which require full transparency and control to the data recording process (to understand what parameters are being collected, where and how are stored)

The data recorders have a small, configurable runtime system, without complicated licenses and rights to use. By default the data recording package includes many data recorders, designed to collect data from ICT enterprise to industrial equipment. Main features:

  • Support for raw data
  • Industrial IoT readiness
  • Service to Cloud communication
  • Conservative in CPU and memory usage on different architectures
  • Easy to change or add new data recorders to collect new data
  • Runs without human intervention
  • Easy to detect data transmission problems
  • Community Support

Please check here, for a complete list of the main features.

Getting started

Kronometrix data recorders are free, open-source software. You can download, modify or build your own products on top of it. To get support, join our free, unlimited development Discord server. If you still have questions or want to find out more about Kronometrix data recorders, please visit our project or contact us.

IoT Gateway

Kronometrix Iot Gateway is is a ready solution for enabling device -to-device or device-to-cloud communication, available as s a software image for single-board computer, like Raspberry Pi. The image contains all needed components, from operating system to data recorders and transport utilities.

How does it help?

Kronometrix IoT Gateway is ready to deploy, closer to sensors and devices for edge and fog computing, offering support for:

  • IoT solution providers, to capture various data and simplify the transport to cloud functionality
  • software developers, ISVs and companies which work with various sensors and devices and require to connect, capture and process real-time data for analysis
  • building facility owners to easy the process of capturing various smart building data, like indoor air quality, ventilation or energy consumption
  • different solution providers, to enhance and bring new functionality to their own product and services, by offering data recording and transport capabilities
  • Real-time data collection from various devices
  • Support for ARM64 SBC like Raspberry PI 3B/3B+
  • Device to device communication
  • Device to cloud communication
  • Data caching, buffering and transport capabilities
  • Rich connectivity: USB, MODBUS, SNMP, SERIAL
  • Data filtering capabilities
  • Support for original, raw data
  • Remote management options
  • Support for legacy or non-internet connected systems
  • Commercial support 8×5 or 24×7 including SLA
Get access

Kronometrix IoT Gateway is a commercial product, available to purchase for single-board computers, like Raspberry PI, including commercial support and different SLA options.

More information

Find out more about our data recorders or Kronometrix IoT Gateway. If you have any questions please don’t hesitate to contact us.

Kronometrix IoT Gateway

Kronometrix IoT Gateway 900 629 KRONOMETRIX

Kronometrix IoT Gateway is a simple to use, automatic data collection and transport utility with a small system footprint that supports raw data collection from Industrial IoT, enterprise ICT, web applications, weather and environmental devices. The system, contains all needed software and hardware components:

  • Single Board Computer
  • the operating system
  • the data recording package
  • and all configurations

A MicroSD card, includes all software modules and packages, available from Running on top of Raspberry PI SBC, Kronometrix IoT Gateway (K1 Internal Technical Name) is very simple to use and run or embed to other different projects.

How does it work ?

You can connect Kronometrix IoT Gateway to your network and get access to its main features using a screen and a keyboard, or remotely using SSH2 protocol or a serial connection. You can select what data recorders you want to run, using the main configuration file kronometrix.json, from ICT enterprise to IoT:

  • measuring the performance and availability of several web sites or applications using HTTP/HTTPS protocol
  • fetching data from different Internet & enterprise services, like: IMAP, POP3, LDAP, SMTP, HTTP, MariaDB, Memcached, Redis, Isilion storage or any TCP based service
  • checking the performance and availability of different UDP services, like NTP, DHCP
  • measure indoor or city air pollution using different industrial MODBUS sensors and devices
  • fetch data from various weather equipment using USB or direct SERIAL connections

A future version will offer a simple web management interface to simplify even further the management and usage of Kronometrix IoT gateway.


A central part of our IoT gateway are the data recorders. Recorders are not software agent(s), nor they should be confused with them. They are independent, light software probes designed as CLI to test and fetch certain minimal data points from different parts of a system(s), more or less same way how a sensor operates. The recorders share a common runtime engine, powered by Perl5. The recorders do not know nor have any knowledge of any transport layer. The output of each data recorder is a simple CSV based raw data file, stored locally on the gateway for a number of days. For more information you can read here. By default the sampling rate of a data recorder is 60 seconds, which is configurable.


The original raw data can be transported for further analysis and visualisation to Kronometrix SaaS, or any other Kronometrix installation or even to 3rd parties analytics or business intelligence platforms. The transport utility keeps tracks of any raw data changes and periodically sends the update to one or many backend destinations, using HTTP or HTTPS protocol. The transport utility uses a JSON based configuration file.

The data recorders and transport utilities are built together as a binary package for several operating systems. For systems or installations which do not require a complete IoT gateway there is always a possibility to manually install the data recording package.

Raw data

All recorded observations are stored as raw data. Raw data is produced by a recorder, which fetches data from a system, device or sensor, data which has not been modified, altered or changed in any way. All collected metrics are variable measured sequentially in time, called time series. All these observations collected over fixed sampling intervals create a historical time series. To easy the access to all this set of data we store the observations on commodity disk drives, compressed, in text format, like CSV format.

Time series let us understand what has happened in past and look in the future, using various statistical models.

What’s New ?

There are new features and improvements available on the latest version of Kronometrix IoT Gateway 1.4. Some of the very important features:

  • Computer system data recorders, sysrec, diskrec, nicrec have been updated to support latest CentOS and Debian Linux operating systems
  • NTP data recorder, ntprec, improvements and fixes when fetching  data from one or many NTP servers
  • IoT data recorder, rs485rec: support for data correction, error handling fixes and better logging features
  • Internet and enterprise data recorder, svcrec, performance improvements when handling thousands TCP or UDP services. We have added support to allow custom UDP probes, if necessarily.
  • Software stack updates
  • Security updates

City Air Pollution

City Air Pollution 960 638 KRONOMETRIX

Air pollution presents a major problem in modern society, directly affecting everyone’s health

Air pollution presents a major problem in modern society, directly affecting everyone’s health from children to workers, and the elderly, with immediate symptoms or long-term effects. To combat these problems we need to know the air quality in and around our homes, offices, or the city’s environment. If we  don’t measure it, we can’t know it. Kronometrix continuously keeps track of key environmental metrics in order to analyse the quality of the  outdoor air: from carbon dioxide, air temperature, relative humidity, volatile organic compounds, organic or inorganic particulates to gaseous pollutants: ozone, sulphur dioxide, nitrogen oxides, and others.

Kronometrix Data Fabric offers support to measure and analyses data in real-time from different sensors and devices,  reporting:

  • Air temperature and pressure, relative humidity, wind speed and direction
  • NO2 – Nitrogen dioxide
  • CO – Carbon monoxide
  • SO2 – Sulfur dioxide
  • O3 – Ozone
  • TVOC – Total Volatile Organic Compounds
  • PM2.5 – Particulate matter 2.5 microns
  • PM10 – Particulate matter 10 microns
  • count of vehicles moving on the monitored lanes
  • statistics about vehicles classification
  • estimations of vehicles speed and length

Air quality, weather and road traffic conditions, are essential factors to analyze city air pollution

In our complex and rapidly changing modern society, we  need to decide what level of pollution is acceptable to us and act accordingly. Kronometrix helps to understand these and set the correct expectations. Please contact us for more information about our air quality solution for cities.

Industrial IoT Data Recorder

Industrial IoT Data Recorder 1243 880 KRONOMETRIX

rs485rec – the industrial data recorder

Kronometrix Data Recording is an automatic, simple to use, data collection package with a low memory and system footprint, supporting raw data. It’s available for ICT enterprise, industrial IoT, weather and environment, offering a number of data recorders. The recorders are designed to fetch data from any system, device, sensor or application using different protocols and store it on raw data file.

Kronometrix industrial data recorder, does support a number of data protocols, like: MODBUS RTU/ASCII/TCP, SERIAL ASCII-POLLED to connect to a wide range of devices and sensors and capture data. The recorder can automatically generate one or many data messages based on its configuration. It can used for various jobs, from fetching data from weather or environmental sensors to HVAC or different other equipment powered by MODBUS.

MODBUS – de facto standard for multi-vendor integration, truly open and the most widely used network protocol in the industrial environment

Developed in Perl5 programming language, rs485rec, is simple to use for both rapid prototyping and large scale development projects. It has a small footprint, conservative in CPU and memory usage on x64 or ARM64 it is highly customisable via a JSON based configuration, and it is open source software easy to embed to other projects, if needed.

We have been testing and capturing data using rs485rec from the following devices and systems:

  • Vaisala AQT420 air quality
  • Vaisala QML201 data logger
  • Vaisala HMP155 humidity and temperature sensors
  • Vaisala weather transmitter WXT5xx
  • Tongdy MSD1618 advanced indoor air quality
  • Tongdy G01 indoor air quality
  • Phoenix Contact QUINT UPS

We are continuously working to add and test new hardware for rs485rec data recorder, extending the number of supported hardware configurations for different business and applications.

If you are interested to use Kronometrix Data Recording and rs485rec please let us know.

Get in touch

If you have any questions about our products and services, please contact us.