Skip to content

Monitoring

chuckablack edited this page Nov 20, 2020 · 5 revisions

Quokka monitors the devices, hosts, and services that have been configured or discovered in the network. The manner of monitoring is described in the detailed wiki pages, but an overview of monitoring is shown below:

As can be seen in the figure above, quokka starts threads which run in the background, and periodically perform monitoring tasks, to determine things such as availability and response time. This information is stored in the main object, and is a snapshot of the current state, as of the most recent monitoring request and response.

At the same time that monitoring is done, quokka records the results in an associated 'status' table, which keeps time-series data, including timestamp. This can be used to show the status over time. The following diagram shows the collection of status time-series data:

As can be seen when comparing these two images, the functionality that runs to collect the information is the same for recording the current state, as for recording the timestamped data. Effectively, in the code, at the same time that the current information is stored, a record of this information, along with timestamp, is stored in the status table.

_Note: the images here are simplified to convey the important parts, without becoming confusing. More details can be seen in specific pages, and of course, the documentation that never lies - the code. :-)

Monitoring of "SDWAN" devices

If you have used quokka in its default configuration, then you will have seen a few so-called "SDWAN" devices, which are being monitored. Those are simulated devices, and the simulation doesn't actually do any "SDWAN" stuff - other than perform heartbeats to the quokka server, simulating how some SDWAN devices communicate with a cloud-based management server.

The mechanism that is used in this situation is HTTP, where the device is always the communication initiator. That is, the device sends requests to the server, rather than the other way around. This is done in order to with work through the public Internet with a minimum of hassle (i.e. no need to open ports in firewalls for special traffic).

And so, monitoring is not done by the quokka server making a request down to the device, but rather by the device sending regular heartbeats to the quokka server. And so the mechanism for availability involves detecting that the device is no longer sending heartbeats to quokka.

The following diagram shows this type of monitoring:

Clone this wiki locally