Lightweight and easy to install on-board analytics stack for white-box switches running ONL and SnapRoute FlexSwitch.
We run this stack on Wedge100-32X and Wedge100BF-65X switches from Edge-Core.
All telemetry data gets collected and stored locally on the switch itself. An on-board dashboard and a query tool provide easy access to the stored telemetry. Plus an additional rule-engine provides a simple way to process the data for aggregation purposes or simple anomaly detection.
The individual open-source components are:
- InfluxDB: The Time Series Database
- Telegraf: Agent for Collecting and Reporting Metrics Data
- Kapacitor: A Rule-based Data Processing Engine
- Grafana: Dashboard for Visualizing Metrics Data
All those services run as individual Docker containers managed by Docker Compose.
Additionally this project comes with:
- scripts: Scripts to build, run, and configure Openleaf-Analytics
- telegraf-snaproute: Code for the SnapRoute plugin for Telegraf
- grafana: Pre-configured Dashboards for Health, Docker, and Network Metrics
- docker: All the Docker and Configuration Files for the different services
The few required steps to install the Openleaf Analytics Stack can be found in the Installation Guide.
Information about the different dashboards and tools can be found in the User Guide.
Out of the box the scripts will install a demo setup as outlined above. The Kapacitor will only be used to calculate a “Health Index”. Obviously this setup can be used as a foundation for more advanced scenarios.
The rule language of Kapacitor can be used to describe anomalies and actions to be taken. An action can for example be sending an alert, like an snmp event, to some global collector, or making a REST call to the local Flexswitch instance to reconfigure the forwarding plane of the switch itself.
Examples can be found in the Kapacitor documentation.
It is also pretty simple to implement an Aggregator Agent whose job it is to aggregate and forward Metrics Data to some centralized Telemetry Platform at a certain time interval.