ArangoDB
ArangoDB is Jalapeno's graph database that serves as the central data-store for all network topology and performance data. It acts as the single source of truth regarding network state for Jalapeno Processors and the Jalapeno API Gateway.
Nework devices are configured to send topology and performance data to Kafka. There, Jalapeno Processors parse through this data to create multiple "virtual topologies" that are stored in ArangoDB to represent the current state of the network.
For example, the Topology Processor parses GoBMP messages and builds out collections such as LSNode
and L3VPNPrefix
in Jalapeno's ArangoDB instance.
These collections, in conjunction with ArangoDBs rapid graphical traversals and calculations, make it easy to determine what path is optimal through the network given a specific SLA. For example, a user can request the lowest-latency path
from point A to point B.
Types of ArangoDB Interactions
-
Parsing data from Kafka and storing in ArangoDB (i.e. Topology Processor)
-
Parsing data from ArangoDB and returning insights to client (i.e. API Gateway)
Deploying ArangoDB
ArangoDB is deployed using kubectl
, as seen in the /install/infra/deploy_infrastructure.sh
script. The configurations for ArangoDB's deployment are in the YAML files in the /infra/arangodb/
directory.
Accessing ArangoDB
To access ArangoDB's UI, log in at <server_ip>:30852
, using credentials root/jalapeno
. In the list of DBs, select jalapeno
.
Querying ArangoDB
Sample queries have been provided in the Resources section.