Containerlab

The purpose of this deployment is to achieve redundancy, high-availability via clustering.

This deployment example includes:

The leader election and target distribution is done with the help of a Consul server

gnmic will also register its Prometheus output service in Consul so that Prometheus can discover which Prometheus servers are available to be scraped.

Deployment files:

Deploy it with:

git clone https://github.com/openconfig/gnmic.git
cd gnmic/examples/deployments/2.clusters/2.prometheus-output/containerlab
sudo clab deploy -t lab22.clab.yaml

+----+-------------------------+--------------+------------------------------+-------+-------+---------+-----------------+-----------------------+
| #  |          Name           | Container ID |            Image             | Kind  | Group |  State  |  IPv4 Address   |     IPv6 Address      |
+----+-------------------------+--------------+------------------------------+-------+-------+---------+-----------------+-----------------------+
|  1 | clab-lab22-consul-agent | 542169159f8b | consul:latest                | linux |       | running | 172.20.20.2/24  | 2001:172:20:20::2/64  |
|  2 | clab-lab22-gnmic1       | c04b2b597e7a | ghcr.io/openconfig/gnmic:latest | linux |       | running | 172.20.20.4/24  | 2001:172:20:20::4/64  |
|  3 | clab-lab22-gnmic2       | 49604280d82d | ghcr.io/openconfig/gnmic:latest | linux |       | running | 172.20.20.3/24  | 2001:172:20:20::3/64  |
|  4 | clab-lab22-gnmic3       | 49e910460cad | ghcr.io/openconfig/gnmic:latest | linux |       | running | 172.20.20.5/24  | 2001:172:20:20::5/64  |
|  5 | clab-lab22-grafana      | c0a37b012d29 | grafana/grafana:latest       | linux |       | running | 172.20.20.7/24  | 2001:172:20:20::7/64  |
|  6 | clab-lab22-leaf1        | c6429b499c11 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.19/24 | 2001:172:20:20::13/64 |
|  7 | clab-lab22-leaf2        | 62f235b39a62 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.17/24 | 2001:172:20:20::11/64 |
|  8 | clab-lab22-leaf3        | 78d3b4e62a6b | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.11/24 | 2001:172:20:20::b/64  |
|  9 | clab-lab22-leaf4        | 8c5d80b4d916 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.13/24 | 2001:172:20:20::d/64  |
| 10 | clab-lab22-leaf5        | 508d4d2389b4 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.16/24 | 2001:172:20:20::10/64 |
| 11 | clab-lab22-leaf6        | 14ce19a8c5da | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.9/24  | 2001:172:20:20::9/64  |
| 12 | clab-lab22-leaf7        | c4f6e586baa3 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.20/24 | 2001:172:20:20::14/64 |
| 13 | clab-lab22-leaf8        | 1e00e6346bf1 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.12/24 | 2001:172:20:20::c/64  |
| 14 | clab-lab22-prometheus   | 5ed38ce63113 | prom/prometheus:latest       | linux |       | running | 172.20.20.6/24  | 2001:172:20:20::6/64  |
| 15 | clab-lab22-spine1       | 38247b0f81e7 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.10/24 | 2001:172:20:20::a/64  |
| 16 | clab-lab22-spine2       | 76bf66748acd | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.21/24 | 2001:172:20:20::15/64 |
| 17 | clab-lab22-spine3       | 5c8776e2fc77 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.15/24 | 2001:172:20:20::f/64  |
| 18 | clab-lab22-spine4       | de67e5b92f36 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.14/24 | 2001:172:20:20::e/64  |
| 19 | clab-lab22-super-spine1 | 00f0aee0265a | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.18/24 | 2001:172:20:20::12/64 |
| 20 | clab-lab22-super-spine2 | 418888eb7325 | ghcr.io/nokia/srlinux        | srl   |       | running | 172.20.20.8/24  | 2001:172:20:20::8/64  |
+----+-------------------------+--------------+------------------------------+-------+-------+---------+-----------------+-----------------------+
Check the Prometheus Output documentation page for more configuration options.