Trying to build a network topology map using Node Graph or Geomap (Prometheus as a data source)

  • What Grafana version and what operating system are you using?

v11.2.2

  • What are you trying to achieve?

The attached screenshot is what I want it to look like. Very simple, just nodes with connected lines.

I am trying to build a network topology map using Juniper routers as the nodes. I am using SNMP exporter and Prometheus successfully and would like to continue using these tools if possible. I want to show the connection of the routers to each other with the “show interfaces description” command output.
For example,
Interface------------Admin—Link------Description
ge-0/0/0-------------UP-------UP-------Connection to Router1
ge-0/0/1-------------UP-------DOWN–Connection to Router2
ge-0/0/2-------------DOWN–DOWN–Connection to Router3

I want to have each node connected to each other with a line that represents the Admin/Link status as shown above. So, the node itself would just be a circle or a .png router image. Then, the connections (lines) would represnet the UP status of the Admin/Link state.

  • How are you trying to achieve it?

I currently have Prometheus and Loki as a data source. Getting any other data sources is quite time-consuming and the approval process is long-winded.

  • What happened?

I cannot figure out how Node Graph, or Geomap want their data. These are the tools I have found in my research that seem suited for my problem.

  • What did you expect to happen?

A real-time network topology diagram that shows the connections (Admin/Link states of connections) between different nodes (routers)

  • Can you copy/paste the configuration(s) that you are having problems with?

No, this is a closed network.

  • Did you receive any errors in the Grafana UI or in related logs? If so, please tell us exactly what they were.

No, I have researched online but not found any concrete information about how to do this. The documentation is unclear with network devices.

  • Did you follow any online instructions? If so, what is the URL?
1 Like

Can you please post a link to the documentation?

Also please post readable and useable cvs data

Not

Interface------------Admin—Link------Description
ge-0/0/0-------------UP-------UP-------Connection to Router1
ge-0/0/1-------------UP-------DOWN–Connection to Router2
ge-0/0/2-------------DOWN–DOWN–Connection to Router3

But

Interface,admin link, description 
Yadi,foo,bar

Take a look at this sample nodes and edges

https://play.grafana.org/d/bdodfbi3d57uoe/node-graph-panel?orgId=1&from=now-6h&to=now&timezone=browser

Pay close attention to the specific data format used for edges and nodes

It has to be in that exact format and especially the data for the relationship between nodes and edges

1 Like

Thank you for your assistance yosiasz.

*I have been reading through the documentation below, but struggling to understand how can I take output from the CLI in a putty session of a Juniper device and export it to CSV with a format that Node Graph likes. *
Node graph | Grafana documentation

The output of the command I would like to build a node graph is below. To clarify I want to build a node graph using the output of the command “show interfaces descriptions”. As you can see, there are 4 columns of data: Interface, Admin, Link, and Description. The Node CSV can just have the device itself. But, the Edge CSV I need to have the Admin & Link states so I can show when a connection goes Down.

But

Interface,admin link, description 
Yadi,foo,bar

Side question: Is there a way to export the data from the Juniper automatically or would I have to manually create my own CSV files in the format to get this to work?

Not familiar with that CLI but why complicate figuring that part out, just edit the CSV file manually to get what node needs

Best to ask that on a juniper forum unless someone here knows how to

Thank you for your reply yosiasz. I suppose I am complicating things. It is perhaps my misunderstanding or lapse in fully understanding Node Graph. I want to dynamically track the edge changes though from 1 device to another. In your example, if the connection from router1 to router2 loses connection I want that to show in the Node graph is this possible? In your example, as I’ve understood other similar examples is the CSV is static data, so it doesn’t track dynamic changes? Is this correct?

if the connection from router1 to router2 loses connection I want that to show in the Node graph is this possible?

Not if your data is csv and the csv file is not update regularly like you said it has to be dynamic

We are doing csv just to show POC (proof of concept) and because we do not have access to your data remotely

1 Like

Is it possible to use Prometheus as a data source to ingest data? Or would I have to build my own CSV’s? Would another tool/plugin be better for this need within Grafana?

are you comfortable with Prometheus? if so sure why not.

but before that I would recommend you do some more research to see if Juniper has a way to provide the data you need via some api

1 Like

also check this out

1 Like