Containerlab
The purpose of this deployment is to collect gNMI data and write it to a ClickHouse instance.
This deployment example includes a single gnmic instance, a ClickHouse server acting as a ClickHouse output, and a Grafana server for visualization.
Deployment files:
The deployed SR Linux nodes are discovered using the Docker API and are loaded as gNMI targets. Edit the subscriptions section if needed.
Deploy it with:
git clone https://github.com/openconfig/gnmic.git
cd gnmic/examples/deployments/1.single-instance/12.clickhouse-output/containerlab
sudo clab deploy -t clickhouse.clab.yaml
+---+------------------------+--------------+------------------------------+-------+-------+---------+-----------------+----------------------+
| # | Name | Container ID | Image | Kind | Group | State | IPv4 Address | IPv6 Address |
+---+------------------------+--------------+------------------------------+-------+-------+---------+-----------------+----------------------+
| 1 | clab-lab20-clickhouse | ... | clickhouse/clickhouse-server | linux | | running | 172.20.20.x/24 | ... |
| 2 | clab-lab20-gnmic | ... | ghcr.io/openconfig/gnmic | linux | | running | 172.20.20.x/24 | ... |
| 3 | clab-lab20-grafana | ... | grafana/grafana:latest | linux | | running | 172.20.20.x/24 | ... |
| 4 | clab-lab20-leaf1 | ... | ghcr.io/nokia/srlinux | srl | | running | 172.20.20.x/24 | ... |
| ... | SR Linux fabric nodes | ... | ghcr.io/nokia/srlinux | srl | | running | ... | ... |
+---+------------------------+--------------+------------------------------+-------+-------+---------+-----------------+----------------------+
Check the ClickHouse Output documentation page for table schema, materialized views, and configuration options.