… updated on Thursday, April 27, 2023 09:00 UTC
Everything Is Better with a GUI (even netlab)
Some people think that everything is better with Bluetooth (or maybe it’s AI these days). They’re clearly wrong; according to the ancient wisdom of product managers working for networking vendors, everything is better with a GUI.
Now imagine adding network topology visualizer and GUI-based device access with in-browser SSH to an intent-based infrastructure-as-code virtual network function labbing tool. How’s that for a Bullshit Bingo winner1?
On a more serious note, Stefano Sasso figured out the configuration file format of Graphite (Web UI/graphing tool used with containerlab) and created an output module that generates a Graphite configuration file from netlab lab topology.

BGP anycast lab displayed by Graphite
Adding a GUI to a netlab lab is as easy as 1-2-3:
- Install Docker on your Linux host (Graphite works with libvirt or containerlab virtualization providers).
- Add the graphite external tool to your lab topology – it’s just two extra lines:
tools:
graphite:
- Start the lab with netlab up
As the last step in the lab startup process, netlab up command will:
- Create Graphite configuration files
- Start the Graphite container
- Print the URL to use to access the GUI.
Notes:
- The functionality described in this blog post works with netlab release 1.5.2 or higher.
- If you want to access the GUI from another host, replace the loopback IP address in the URL with the physical IP address of your lab host.
Revision History
- 2023-04-27
- Rewrote the blog post to describe the new external tools functionality.
-
This would have been an awesome April 1st post; unfortunately Stefano created this functionality a few weeks too late. ↩︎
Hi,
My Environment:
M3 Macbook Air with Sonomo (14.7.6). Installed Multipass, Created an netlab Ubuntu instance and Created a sample 2 node lab etc...and I have seen this blog post and thought of trying it...
So I added those two lines and started a lab. The output says it is success and printed the URL and when I tried to access it, I was not able to... started troubleshooting... The docker image of "netreplica/graphite" is showing... But when I try to run that docker image for testing, it gave me the following output "WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested"
So is there any way to make this graphite works for the arm64 architecture... Sorry... I don't know any programming etc and I am trying to learn this netlab. So if any naive or stupid questions if I have asked, please forgive and guide me or just give me a clue and I will try to go along that way
TIA
PAM
First of all, congratulations on getting this far in the troubleshooting process!
It looks like the "netreplica" team never built the graphite container for ARM architecture, and so it doesn't work on Apple silicon. There's nothing we can do unless someone decides to rebuild that container from scratch.
OTOH, netlab should report an error. Opened an issue: https://github.com/ipspace/netlab/issues/2456
Thanks a million for reporting this!
Sir,
I never expected that you directly respond to my query. I am so fortunate sir... I am avid reader of your blog and I am so honored sir.