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.