Understanding the Databus Terminologies
and Capabilities
The
databus provides various capabilities, 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 more than one subscriber with the same message group and the same Subscriber
URL.
Subscriber URL
An URL where you receive the data from
the databus.
VMware Aria
Operations for Networks
databus sends all the messages from any message group to
the subscriber URL. You can also use a subscriber URL to register subscription from
multiple message groups.Databus starts streaming date from the moment you subscribe to any
message group and will continue until you unsubscribe. The system handles any
temporary loss of communication through inbuilt mechanisms and data streaming
resumes once the issue is resolved. You don't need to take any
action.
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, 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 clearLoad 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
VMware Aria
Operations for Networks
databus inherently supports batching where
several messages are grouped together in a batch and sent to the subscriber. By
default, the maximum size of a batch is two megabytes. When size of a single message
is more than two megabytes then the message is trimmed. The batch creation creates an
additional delay which is less than a minute.
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 503 error
code.
If a subscriber doesn’t receive a
message, but
VMware Aria
Operations for Networks
doesn't get 503 error code, VMware Aria
Operations for Networks
considers the message as
delivered and do 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 gets 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 gets deleted from the queue in 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, system tries
to send messages until success. A back-off mechanism is added in version 6.9, where
the system retry message delivery in exponential time. Filtering
When you register a subscriber, the
subscriber gets all the messages of that message group. Filtering of messages is not
supported in
VMware Aria
Operations for Networks
databus. 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 Networks
UI.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 hosts message group can help to correlate the hosts of the
events received from problems message group.