Metrics and events infrastructure
Illustrative embodiments provide an efficient, resilient high-availability (“HA”) router architecture. In illustrative embodiments, metric and event data is made resilient to node failover by replication. The same data is stored on the database of each router. Instead of pushing metrics directly from all of each node's software to each node's database, replication is instead handled by the database loader application subscribing to queues on both nodes. In some embodiments, records are written in the queues to topics that have a certain time to live (TTL), so the loader on one node has the duration of the TTL to read from the other node's queue in order to achieve replication.
1 . A system comprising:
a shared network interface; and
processing circuitry in communication with storage media, the processing circuitry configured to execute a second router node of a routing system;
wherein, prior to a failure of a first router node of the routing system, and based on a configuration of the first router node to receive network traffic and send the network traffic to a device with the shared network interface, and the second router node is configured to receive the network traffic with the shared network interface without sending the network traffic,
wherein the second router node is further configured to receive, from the first router node, first analytics data related to a first routing operation of the first router node while the first router node is configured to receive the network traffic and send the network traffic to the device,
wherein the second router node is further configured to build an analytics image based at least in part on the first analytics data and second analytics data related to a second routing operation of the second router node, and
wherein, based at least in part on a failure of the first router node, the second router node is further configured to send, based on the analytics image, the network traffic to the device with the shared network interface to provide high availability for the routing system.
2 . The system of claim 1 ,
wherein the analytics image comprises a second analytics image, and
wherein the second analytics image is the same as a first analytics image built by the first router node from the first analytics data and the second analytics data.
3 . The system of claim 1 , wherein the second router node is configured to send the second analytics data to the first router node via a cross-coupling connection of the routing system.
4 . The system of claim 1 , wherein the second router node is configured to receive the first analytics data from the first router node via a cross-coupling connection of the routing system.
5 . The system of claim 1 , wherein each item of the first analytics data comprises a first source tag specifying a first router application of a plurality of first router applications executed by the first router node that generated the item.
6 . The system of claim 1 , wherein the first analytics data comprises first analytics data queues corresponding to a plurality of first router applications executed by the first router node, each of the first analytics data queues storing metric data or event data for a corresponding first router application of the plurality of first router applications.
7 . The system of claim 1 ,
wherein the processing circuitry is further configured to execute the first router node of the routing system, and
wherein the system further comprises a housing configured to house the shared network interface, the processing circuitry, the first router node, and the second router node.
8 . A method comprising:
prior to a failure of a first router node of a routing system and based on the first router node receiving network traffic and sending the network traffic to a device with a shared network interface, receiving, by a second router node of the routing system, the network traffic with the shared network interface without sending the network traffic, wherein the first router node and the second router node are executed by processing circuitry;
receiving, by the second router node and from the first router node, first analytics data related to a first routing operation of the first router node while the first router node is receiving the network traffic and sending the network traffic to the device;
building, by the second router node, an analytics image based at least in part on the first analytics data and second analytics data related to a second routing operation of the second router node; and
based at least in part on a failure of the first router node, sending, by the second router node and based on the analytics image, the network traffic to the device with the shared network interface to provide high availability for the routing system.
9 . The method of claim 8 ,
wherein the analytics image comprises a second analytics image, and
wherein the second analytics image is the same as a first analytics image built by the first router node from the first analytics data and the second analytics data.
10 . The method of claim 8 , further comprising sending, by the second router node, the second analytics data to the first router node via a cross-coupling connection of the routing system.
11 . The method of claim 8 , further comprising receiving, by the second router node, the first analytics data from the first router node via a cross-coupling connection of the routing system.
12 . The method of claim 8 , wherein each item of the first analytics data comprises a first source tag specifying a first router application of a plurality of first router applications executed by the first router node that generated the item.
13 . The method of claim 8 , wherein the first analytics data comprises first analytics data queues corresponding to a plurality of first router applications executed by the first router node, each of the first analytics data queues storing metric data or event data for a corresponding first router application of the plurality of first router applications.
14 . Non-transitory, computer-readable media comprising instructions that, when executed, are configured to cause processing circuitry to:
execute a second router node of a routing system,
wherein, prior to a failure of a first router node of the routing system and based on a configuration of the first router node to receive network traffic and send the network traffic to a device with the shared network interface, the second router node is configured to receive the network traffic with the shared network interface without sending the network traffic,
wherein the second router node is further configured to receive, from the first router node, first analytics data related to a first routing operation of the first router node while the first router node is configured to receive the network traffic and send the network traffic to the device,
wherein the second router node is further configured to build an analytics image based at least in part on the first analytics data and second analytics data related to a second routing operation of the second router node, and
wherein, based at least in part on a failure of the first router node, the second router node is further configured to send, based on the analytics image, the network traffic to the device with the shared network interface to provide high availability for the routing system.