You are here

Topologr - An AREDN Mesh Topology and Data Explorer

24 posts / 0 new
Last post
wa1krd
Topologr - An AREDN Mesh Topology and Data Explorer

I am pleased to announce the initial public release of Topologr. This was a fun project which was inspired by the topology DOT file perl script. More of a modern take. The documentation is still a bit of a work in progress, but it should be enough to get the software installed and running on a mesh connected computer.

I have tested this on an RPi 3 and Ubuntu 20.04, but there is no particular reason that it wouldn't work on other OSs that support node.js. I expect the installation instructions will vary quite a bit to run on Windows.

This has also only been tested on our local mesh.  I don't believe there should be any problems, but let me know if there are.

Finally, the localnode.local.mesh this is connected to has to be running a version of the firmware that supports the json APIs or it will fail.

The Github repository is located at: https://github.com/captainwasabi/topologrjs



Thank you, 
73
WA1KRD

 

AB4YY
Nice and useful program!

Nice and useful program Doug!

I'm curious if a possible enhancement could be to have the services seen in the left side show up as hyperlinks?

I suppose that could lead to all kinds of other possible enhancements such as creating a list of such hyperlinks, and more.  :)

- Mike

wa1krd
I's sure this is doable. 

I'm sure this is doable.  Please enter it as an issue on the Github repository.

ko0ooo
nice program

nice program Doug...   

I know little about the Pi, but the installation instructions worked fine and I had it running in no time.

Richard   ko0ooo

wa1krd
Thanks!

Thanks!

KM6SLF
KM6SLF's picture
Great work! Thanks for

Great work! Thanks for sharing

AB4YY
I agree

I agree.  This has already proven to be a very useful tool.

- Mike

ko0ooo
Topologr version 0.1b5

Doug,

really like the updated version..   especially the CLEAR POS button...   

below is a screen shot showing our fragile network between the north and south ends of Vegas... it's interesting to CLEAR POS every few minutes and watch the link quality change.     and how more islands are formed when tunnels are removed.

thanks again for a great program

Richard    ko0ooo

wa1krd
The weights should change

The weights should change every time you refresh, you don't need to clearPos for that.  However, a "refresh" button is a good idea!  You may have noticed that there is a lot of usable blank space along the bottom and left of the page now, I'm very open to suggestions.

Doug   

w6bi
w6bi's picture
Error when running

I got it all loaded, and confirmed it was listening on port 3001.  But when I tried to load http://10.95.109.100:3001, the app crashes with this:

root@w6bi-house-pc:~/projects/topologrjs# node app.js
2022-04-18T23:29:52.497Z info:  server:: Started application on port 3001
2022-04-18T23:29:57.305Z http:  server::/info 10.95.109.100 /
/root/projects/topologrjs/app.js:157
    let callsign = nn.substr(0, nn.search("-"));
                      ^

TypeError: Cannot read properties of undefined (reading 'substr')
    at processServices (/root/projects/topologrjs/app.js:157:23)
    at main (/root/projects/topologrjs/app.js:175:20)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

What did I miss?  This is on Kubuntu 21.10.  Is that too current?

Thanks.

Orv W6BI


 

wa1krd
It looks like there is

It looks like there is something wrong with the services data that is being returned.  Something like there is a service that doesn't have a hostname.

What version of the Aredn firmware are you running?

Use this link to download a more instrumented app.js file.  rename the current file app.js.old (just to be safe) and replace it with the one in the zip file.  once you have restarted the app, the first url to go to is http://10.95.109.100:3001/debug/debug  This sets the log level to debug, so it's going to dump out a LOT of information.  The result of that link should be a blank page with "debug" displayed on it.  Then go to http://10.95.109.100:3001/

Send me all the infomation it dumps out.  Preferably in a comment to this issue on github: https://github.com/captainwasabi/topologrjs/issues/22.  Or you could attach it as a txt file to a reply here.

Thanks,

Doug

w6bi
w6bi's picture
Results

I'm running nightly build 1145, Doug.   I've run the debug version, and uploaded the debug file per your instructions.
As before, the result is that the web server crashes so I'm not able to get to port 3001.

Orv
 

wa1krd
Thanks!

Thanks!
 

 
Just replace the file, then run it.  Don't need to do the /debug/debug link unless it doesn't work again.  I wasn't using the routine that I had already written to handle this exact case (an IP address that doesn't map to a hostname, now it should use the ip address for the name..

However, even if it does work, with > 1000 nodes that have names, and I don't know how many that don't, you are probably going to run into the same problem as the other poster that just had >265 nodes.  It's gonna just be a tangle that I need to be able to export and import into an offline viewer to see what is going on.  Theoretically vis-network should be able to handle it.
kj6dzb
kj6dzb's picture
Looks like is a little over

Looks like is a little over loaded with ~255 nodes.  Thoughts? 

Image Attachments: 
wa1krd
ahha, interesting.  

ahha, interesting.  

try zooming out, (roll the mouse wheel towards you with the cursor in the network panel.then hit ClearAll.  Will, that work, I doubt it really.  I thinik the "fix" at least currently will be to just start moving nodes out of the tangle and arrange them yourself.  The canvas is infinitly zoomable so you should have plenty of room.

Although this spawns another idea, have a way to import and export the network (without querying the localnode for the data).  This would help debug this kind of thing.

Thanks,

Doug

kj6dzb
kj6dzb's picture
Has this not been tested on a

Has this not been tested on a large network? 


try zooming out, (roll the mouse wheel towards you with the cursor in the network panel.then hit ClearAll.  Will, that work NO!

I thinik the "fix" at least currently will be to just start moving nodes out of the tangle and arrange them yourself. Moving 250 nodes manually by hand is unrealistic!  



 

wa1krd
It has not.  It's been tested

It has not.  It's been tested on the network I am part of.  However the vis-network.js package is theoretically capable of handling thousands of nodes.  

Yeah, I didn't think that would work.  

I don't see a lot of arden networks that are that large.  I put in an issue on github to implement an offiline viewer and export network button. It shouldn't be that bad.

There are two reasons I agree that moving them by hand is not realistic.  First is that it is a lot.  While it wouldn't take that long realistically, he second issue is performance.  It animates the network pane while you are dragging a node around, and with that big of a network it would just be painful.  

I'll reply here when a drop with that feature is available.

Thanks, 

Doug

wa1krd
I just pushed b5.  Delete

I just pushed b5.  Delete your current install and just repeat the installation instructions.  Once the page loads, click the export button and save the exportNet.json file somewhere.  The either attach it to a comment here, or preferably attach it to a comment in this github issue: https://github.com/captainwasabi/topologrjs/issues/22

Thanks!

 

KF7BWS
KF7BWS's picture
Tangled Mess

I have had the same problem and I have taken the time (many Hours) and untangled the mess. It is not fun but you learn a lot about your mesh network in doing so. I now have a nearly working map and some cleanup to do.

This app is a very good start to something exciting to add to our tool kit.

Wes Larson
KF7BWS

KQ9P
KQ9P's picture
Very cool!  Thanks for the

Very cool!  Thanks for the useful new tool.  For all the container fans out there, I ran up a Dockerfile and Docker Compose file so you can run topologr in a Docker swarm.  Unpack the attached .tgz file in the topologrjs folder and type the following commands:

docker build -t topologrjs .
docker stack deploy --compose-file topologrjs.yml topologrjs

(This assumes you already have a Docker swarm running.  Lots of Web pages on how to do that.)

Mike KQ9P
 

Support File Attachments: 
nc8q
nc8q's picture
GLIBC_2.27' not found (required by node)

Followed install instructions
https://github.com/captainwasabi/topologrjs/
to here:
gelmce@nc8q-mesh-server:~/projects/topologrjs $ npm install
node: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.28' not found (required by node)
gelmce@nc8q-mesh-server:~/projects/topologrjs $
-----

Is my
gelmce@nc8q-mesh-server:~/projects/topologrjs $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux" VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=raspbian ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
gelmce@nc8q-mesh-server:~/projects/topologrjs $

Not new enough?

Chuck

wa1krd
What are the restults of

What are the restults of `node -v` and `npm -v`
 

@dev:topologrjs$ node -v
v17.9.0
@dev:topologrjs$ npm -v
8.5.5
nc8q
nc8q's picture
'node -v', 'npm -v'

gelmce@nc8q-mesh-server:~/Downloads $ node -v
node: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.28' not found (required by node)
gelmce@nc8q-mesh-server:~/Downloads $ npm -v
node: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.28' not found (required by node)
gelmce@nc8q-mesh-server:~/Downloads $
gelmce@nc8q-mesh-server:~/Downloads $ ldd --version
ldd (Debian GLIBC 2.24-11+deb9u4) 2.24
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
gelmce@nc8q-mesh-server:~/Downloads $

73, Chuck
 

wa1krd
if you pi has been updated,

if you pi has been updated, then yes I think the version of the os that you are running is too old. I don't see anyone recommending installing a new version of glibc on top of an older one (ro vice versa) because it's a key component of a lot of system files and the likelyhood of breaking your whole OS is very high.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer