The databus provides various capabilities, and understanding these capabilities helps you use the databus more efficiently.
Subscriber
A subscriber is an endpoint that registers with the databus to receive the data from the message group. You cannot have multiple subscribers with the same message group and the same Subscriber URL.
Subscriber URL
Messages Ordering
The messages sent over the databus are generally ordered by the timestamps when the event or the object is stored in VMware Aria Operations for Networks. But, in certain scenarios these ordering guarantees cannot be met. For reliable ordering of the messages, the subscribers must make use of the timestamp field in the Databus messages and sequence the message based on the timestamp.
Near Real-time Streaming
In the databus, there is a delay between data getting processed in VMware Aria Operations for Networks and the databus streaming the data out. The delay could range from three seconds up to one minute. This delay varies based on the message groups and is subject to the pipeline being clear.
Load Balancer to Scale Data Processing
While receiving data from VMware Aria Operations for Networks databus, you can use a load balancer to horizontally scale the data processing service. To use a load balancer, you must use the load balancer URL as the subscriber URL during the databus registration process. A load balancer can distribute the data to a horizontally scalable data processing services.
Heartbeat
To help troubleshoot the communication channel between VMware Aria Operations for Networks databus and the subscriber endpoint, VMware Aria Operations for Networks sends hourly heartbeat messages to every subscriber. If a URL is specified in more than one subscription, then the subscriber receives one heartbeat message for every subscription.
Example:
{ "id": "c2214eea-68a6-4e5a-9e4b-ff5886a42cd3", "type": "HEARTBEAT", "specversion": "1.0", "source": "CL58EgdESzVDSEE1", "message_group": "vms", "status": "HEARTBEAT", "timestamp": 1681897371522 }
Message batching
Example of a trimmed message:
[ { "id": "elfcdccb-c06a-419b-90bd-7618e8453f87", "type": "Application", "specversion": "1.0", "source": "CNaBARIHRElXRlgxRg==", "message_group": "applications", "status": "UPDATE_TRIMMED", "data": { "entity_id": "16598:561:716945762559381432", "entity_type": "Application", "name": "My-3Tier-App" } ]
Delivery Guarantee
A message delivery is considered successful if the subscriber responds with an HTTP code other than the 503 error code.
If a subscriber doesn’t receive a message, but VMware Aria Operations for Networks doesn't get a 503 error code, VMware Aria Operations for Networks considers the message as delivered and does not try to send the message again, and the message might get lost. We have introduced this mechanism to ensure that a continuous retry does not overwhelm your system. For example, If your production environment is down, continuous retries would be very noisy. In this case, sending an HTTP response other than 503 is a way for you to indicate that you do not want to retry.
In VMware Aria Operations for Networks, the messages are sourced by different services and then get added into a disk-based queue. The disk-based queue has an expiry of two hours.
Any message if not delivered to the subscriber within two hours, those messages get deleted from the queue in a FIFO manner, and doesn't get delivered to the subscriber. Also, if the volume of the messages in VMware Aria Operations for Networks is beyond what can be reliably forwarded by the system, messages may get dropped. When the databus subscriber is unreachable, the system tries to send messages until it delivers the message successfully. A back-off mechanism is added in version 6.9, where the system retries message delivery in exponential time.
Filtering
When you register a subscriber, the subscriber gets all the messages of that message group. VMware Aria Operations for Networks databus does not support Filtering of messages. If you don't want all the messages in a message group, you can discard the messages based on the filtering conditions before further processing. You can also deactivate alerts from the VMware Aria Operations for NetworksUI.
Correlating messages with Other Objects
In certain scenarios, the messages received by the databus contain contextual information about a few other related entities without the full details of those entities. But, the message contains a specific identifier such as an entity_id. To get details about those related entities, you must subscribe to those entities using APIs. For example, subscribing to a host message group can help to correlate the hosts of the events received from the problems message group.