Skip to content

Commit

Permalink
Update infrastructure.md (#79)
Browse files Browse the repository at this point in the history
  • Loading branch information
brmcdoug authored Mar 29, 2024
1 parent dddf309 commit 3331560
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions docs/about/infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ Each Jalapeno infrastructure component defines its deployment in the respective

Kafka is Jalapeno's message bus and core data handler.

Jalapeno's Kafka instance handles two main types of data: OpenBMP data (topology information) and telemetry data (network metrics). Jalapeno Processors are responsible for reading and restructuring the data, and for inferring relevant metrics from the data.
Jalapeno's Kafka instance handles two main types of data: BMP data (topology information) supplied by the GoBMP collector, and telemetry data (network metrics) supplied by Telegraf. Jalapeno Processors are responsible for reading and restructuring the data, and for inferring relevant metrics from the data.

OpenBMP data is organized into Kakfa topics such as `openbmp.parsed.peer` and `openbmp.parsed.ls_node`. These topics are further parsed to create representations of the network topology using the [Topology Processor](processors.md#topology-processor).
BMP data is organized into Kakfa topics such as `gobmp.parsed.peer` and `gobmp.parsed.ls_node`. These topics are further parsed to create representations of the network topology using the [Topology Processor](processors.md#topology-processor).

Telemetry data is collected in the `openbmp.telemetry` topic. Data in this topic is pushed into Telegraf (a telemetry consumer), and onwards into InfluxDB.
Telemetry data is collected in the `jalapeno.telemetry` topic. Data in this topic is pushed into Telegraf (a telemetry consumer), and onwards into InfluxDB.

Kafka is deployed using `kubectl`, as seen in the `deploy_infrastructure.sh` script. The configurations for Kafka's deployment are in the YAML files in the `jalapeno/infra/kafka/` directory.

## ArangoDB

ArangoDB is Jalapeno's graph database.

Jalapeno [Processors](./processors.md) parse through data in Kafka, then create various collections in ArangoDB. These collections represent both the network's topology and its current state. For example, the [Topology Processor](./processors.md#topology-processor) parses OpenBMP messages that have been streamed to Kafka 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 the lowest-latency path, etc.
Jalapeno [Processors](./processors.md) parse through data in Kafka, then create various collections in ArangoDB. These collections represent both the network's topology and its current state. For example, the [Topology Processor](./processors.md#topology-processor) parses BMP messages that have been streamed to Kafka and builds out collections such as "ls_node" and "l3vpn_prefix_v4" in Jalapeno's ArangoDB instance. These collections, in conjunction with ArangoDBs rapid graphical traversals and calculations, make it easy to determine the lowest-latency path, etc.

ArangoDB also houses the most interactive aspects of Jalapeno. Processors for Bandwidth and Latency upsert their scores here. Clients can run queries to generate label stacks for their desired network optimization attribute.

Expand Down Expand Up @@ -61,6 +61,14 @@ Grafana is deployed using `kubectl`, as seen in the `deploy_infrastructure.sh` s

To access Grafana's UI, log in at `<server_ip>:30300`, using credentials `root/jalapeno`.

A pair of example dashboard configurations can be found here:

[Interface Egress Stats](https://github.com/cisco-open/jalapeno/blob/main/install/infra/grafana/egress-mdt.json)

and here:

[Interface Ingress Stats](https://github.com/cisco-open/jalapeno/blob/main/install/infra/grafana/ingress-mdt.json)

## Telegraf-Egress

Telegraf is a telemetry consumer and forwarder.
Expand Down

0 comments on commit 3331560

Please sign in to comment.