Virtual nodes are read-only nodes which inherit all properties from a template node. They may only be created, updated, or deleted from their parent node.
Virtual nodes can be considered as ephemeral, although their life span depends on the context.
The status of every virtual node is queried at the same time.
The typical use case for virtual nodes is quickly assign the same monitor(s), to many nodes, and query the status of each node using a single query.
A service you depend on, such as Atlassian, provides a public status page which includes every service and its respective status. To monitor this resource, you would request the URL, parse the page’s contents, and then transform each service and status into a virtual node.
Imagine you have a micro service which can scale from 1 to N instances. Each instance’s resources must be tracked the same way. For example, the CPU, RAM, and disk usage.
This can be accomplished with the combination of a template node and virtual nodes. The primary monitor on your template node will query a server for the list of microservice instances along with status. Then, add monitors on the template node that represent the CPU, RAM, and disk usage. The data queried from the primary monitor will then filtered to the respective monitors for each instance.
Imagine you own a fleet of trucks. Every truck within your fleet must be tracked and managed the same way. For example, you may wish to track fuel consumption, idle time, etc. This can be accomplished by querying a database that contains your fleet along with the respective status of each truck. As your fleet changes, update the database and At Your Service will automatically add and remove the assets that are tracked.
Using our Status availability use case, below shows a very simple example that returns a list of services along with their status.
Again, this return value is used in contexts where only one health value is associated to each virtual node.
Using our Fleet Management use case, below shows a very simple example that returns a list of trucks, along with each truck’s respective monitor values, queried from a database.
Three additional sibling monitors would live next to the primary (elder) monitor (the monitor shown above). Each of the sibling monitors will reference the respective field they are interested in. Such as
Now, every truck will track its respective
If you want to track different types of vehicles, but use the same monitors, create a template node with the above monitor. Then, create a node for each vehicle type that templates from this. This will allow you to tune the threshold trigger values for each respective vehicle type.