¿ªÔÆÌåÓý

Direwolf web dashboard


 

Hello everybody,
first of all, happy new year!
I developed a web dashboard for direwolf. It parses the log file and extracts some statistics.
A realtime traffic monitor is also available.
It's a beta version and every additional test will be appreciated.
Code available here:
You can see the interface working here:
Feel free to suggest improvements and modifications.

I hope someone is interested.
73's
Alfredo IZ7BOJ


 

Great job Alfredo!
I was also thinking on something similar, I'll follow the development, hoping to find time to contribute.
All the?best

73, Fabrizio IU5GEZ

Il giorno lun 3 gen 2022 alle ore 15:39 Alfredo Vania <iz7boj@...> ha scritto:
Hello everybody,
first of all, happy new year!
I developed a web dashboard for direwolf. It parses the log file and extracts some statistics.
A realtime traffic monitor is also available.
It's a beta version and every additional test will be appreciated.
Code available here:
You can see the interface working here:
Feel free to suggest improvements and modifications.

I hope someone is interested.
73's
Alfredo IZ7BOJ



--
Fabrizio


 

¿ªÔÆÌåÓý


Hello Alfredo,

Thank you for posting your project and it looks like a very nice start!? Along these lines, Ross KJ7GES posted a similar project using Grafanna and Prometheus ( ).? Lots of interesting ways to display metrics, etc.?

To add to the offerings, I developed a shell script that processes the last day's worth of data, parses it out like below and emails it to me.? Not very pretty nor interactive per se but it does help keep an eye on key metrics like "top talkers", etc.

--David


analyze-direwolf-packetlog.sh
version: 01/04/21

Overriding default input file to: /var/log/packet.log.1.bz2

Data processing start/stop times:
Report interval: Previous 24hrs from Start time: 6:25 (24hr format)
DEBUG: default file routine

Uncompressing default file: packet.log.1

Total RF heard Direwolf packets: 9365

Averaged Direwolf input level across 9365 RF heard packets: 64

APRS-IS received packets: 3304

Digi path breakdown for all received packet (RF and Igate):	7940
   Heard WIDE1 digi path packets:				193
   Heard WIDE2 digi path packets:				1511
   Heard WIDE3 digi path packets:				0
   Heard TRACE1 digi path packets:				0
   Heard NCA1 digi path packets:				582
   Heard NCA2 digi path packets:				0
   Other digis (swapping WIDE for callsigns or aliases):	5654

Heard digipeated packets heard via RF: 1425

Breakdown of stations heard RF direct: 
BKELEY : 	232
W6CX-3 : 	213
W6TDM-2 : 	184
KB6VN-2 : 	145
WR6ABD : 	129
KC1CHV-11 : 	110
N6ACK-10 : 	98
WB6JHI-1 : 	96
WA6ODP-4 : 	37
W6IA : 		32
N6MEB-9 : 	28
KM6MZM : 	25
W6SRR-3 : 	24
KH2SR-5 : 	15
KD6SPN-10 : 	15
KI6TSF-9 : 	10
N6AMQ-2 : 	8
KN6ETO : 	6
KJ6FCM-3 : 	6
KN6FQM-11 : 	5
N6CY-9 : 	4
KM6IOK-9 : 	1
KI6WMS-8 : 	1
KG4EGZ-9 : 	1

Heard APRS WX packets (any path):998

   Unique WX stations and packet count (not all stations are reporting valid data):
    313 K6IXA-3
    190 KA6UPU-1
    103 KE6AFE
     84 WB6AHC-1
     72 KJ6LNH-1
     66 K6PKL-2
     46 KG6UWN-1
      1 KI6TSF-8

Sorted station list (highest to lowest heard [worst offenders]) via any path (RF or APRS-IS):
    712 KE6CAC
    428 KS4FUN-12
    369 K6RPT
    364 N6VMG-10
    352 BKELEY
    350 W6TDM-2
    333 K6IXA-3
    292 W6CX-3
    276 KE6AFE
    275 N6VV-2
    274 KC1CHV-11
    270 K6WJG-7
    242 ACARC-1
    240 WR6ABD
    233 WB6JHI-1
    222 N6CY-9
    198 N6ACK-10
    194 KA6UPU-1
    148 KB6VN-2
    140 AF6SE
    131 KC6SSM-5
    122 N6MEB-9
    115 WB6AHC-1
    106 K2DEN-10
    105 K6YVE
    104 KK6Q-9
    100 KK6RUH-1
     92 N6WKZ-3
     87 KN6ETO
     86 NJ6E-6
     85 K6XTC-1
     83 W6IA
     82 KG6NLW
     75 N6JWT-8
     72 KJ6LNH-1
     72 K6VT-2
     69 KH2SR-5
     66 K6PKL-2
     65 KM6MZM
     65 K6YIL-1
     62 KA6QLP
     61 KMEP1
     61 K6MRP-10
     56 KE6AFE-2
     50 KM6ELP-9
     46 KN6PTH-9
     46 KJ6LNH-9
     46 KG6UWN-1
     45 NR7Z-9
     44 N7TWP-7
     43 W6SCR-3
     39 KN6KBP-9
     38 KK6NZP-7
     37 WA6ODP-4
     37 WA6BAY-1
     36 N6BRL-12
     35 K6MBD-9
     34 KN6FQM-11
     33 KK6BXP-9
     32 KD6SPN-10
     27 KJ6FCM-3
     25 KM6IOK-9
     24 W6SRR-3
     24 KJ6DZB-3
     24 K6FGA-1
     24 AF6JP-9
     23 K6KPQ
     22 KQ6UP-1
     22 KQ6DI-1
     22 KJ6OVK-9
     21 KJ6DLF-4
     20 KI6OID-7
     20 K7FED-1
     19 WQ6F
     19 WA6SEK-9
     19 W6QWU-1
     19 W2GMD-9
     19 KN6BDH
     19 K6CDF-8
     17 KI6ZHD-6
     17 K6SRV-9
     16 KI6TSF-8
     16 KG6WIP
     16 AG6GH-1
     15 KJ6LNH
     14 WB6TMS-5
     13 KJ6CXL-9
     12 KM6FKA-9
     12 KI6TSF-9
     10 W6ERR-6
     10 KI6ETL-10
     10 KE6FOA
      9 KC6YFG-4
      9 KC6JHF-2
      8 VA3SFA-7
      8 N6AMQ-2
      8 KM6FJZ-4
      8 AJ6KA-7
      7 N8QH-9
      7 KG4EGZ-9
      6 WU1Q-9
      6 W6ESL-12
      6 N0XFD-14
      6 KM4JQR-7
      6 K6LY-3
      6 GAPGTE
      5 W6BXN-3
      5 KM6SP-9
      5 KM6GAX
      4 WE6Z
      4 W1EJ-7
      4 KN6KBE-7
      4 KM6SJO-7
      4 KK6FEN-9
      4 KJ6GKC
      4 KH2SR-2
      4 KG6SGV
      4 KC6SSM-9
      4 KB6VDS-9
      4 ALDER
      3 WALT-9
      3 W3IV-9
      3 KN6MOS-9
      3 KI6WMS-8
      3 KI6PPU-9
      3 CARSON
      2 WY6NKL-9
      2 WB6WNI-7
      2 W6JOE-10
      2 N6BX-9
      2 KM6HBH-9
      2 KG6SQN-7
      2 KF6TYS-3
      1 W6TKD-7
      1 SLIDE
      1 NC6J-1
      1 N6VYT-6
      1 KN6MTF-7
      1 KE7GGD-5
      1 K6MLA-4
      1 K6MEU-10
      1 K1HLG-2



On 01/03/2022 01:20 AM, Alfredo Vania wrote:
Hello everybody,
first of all, happy new year!
I developed a web dashboard for direwolf. It parses the log file and extracts some statistics.
A realtime traffic monitor is also available.
It's a beta version and every additional test will be appreciated.
Code available here:
You can see the interface working here:
Feel free to suggest improvements and modifications.

I hope someone is interested.
73's
Alfredo IZ7BOJ


 

Code available here:
are you aware it first goes to Facebook?

Mike


 

Hi Mike,
I wasn't aware of this, thank you for the reporting.
I did copy&paste from a post that I did on Facebook APRS group , so this intrusive social media automatically added that part.
Sorry for? that.
Obviously, the correct link is

73's
Alfredo

Il giorno lun 3 gen 2022 alle ore 21:41 Michael Wright <mfwright@...> ha scritto:
>Code available here:
>

are you aware it first goes to Facebook?

Mike






 

Hello David,
thank you for the info. Grafana is very interesting, I will have a look at it!
Your script is also very interesting, although it's a sysop tool and the results are not publicly visible.
How do you extract path information (WIDE, Trace, ecc...) not having the raw packet content?
The csv log seems to mask the complete path and shows only the last repeater station ("heard" column).
Thanks for the clarification,
73s
Alfredo

Il giorno lun 3 gen 2022 alle ore 18:44 David Ranch <direwolf-groupsio@...> ha scritto:

Hello Alfredo,

Thank you for posting your project and it looks like a very nice start!? Along these lines, Ross KJ7GES posted a similar project using Grafanna and Prometheus ( ).? Lots of interesting ways to display metrics, etc.?

To add to the offerings, I developed a shell script that processes the last day's worth of data, parses it out like below and emails it to me.? Not very pretty nor interactive per se but it does help keep an eye on key metrics like "top talkers", etc.

--David


analyze-direwolf-packetlog.sh
version: 01/04/21

Overriding default input file to: /var/log/packet.log.1.bz2

Data processing start/stop times:
Report interval: Previous 24hrs from Start time: 6:25 (24hr format)
DEBUG: default file routine

Uncompressing default file: packet.log.1

Total RF heard Direwolf packets: 9365

Averaged Direwolf input level across 9365 RF heard packets: 64

APRS-IS received packets: 3304

Digi path breakdown for all received packet (RF and Igate):	7940
   Heard WIDE1 digi path packets:				193
   Heard WIDE2 digi path packets:				1511
   Heard WIDE3 digi path packets:				0
   Heard TRACE1 digi path packets:				0
   Heard NCA1 digi path packets:				582
   Heard NCA2 digi path packets:				0
   Other digis (swapping WIDE for callsigns or aliases):	5654

Heard digipeated packets heard via RF: 1425

Breakdown of stations heard RF direct: 
BKELEY : 	232
W6CX-3 : 	213
W6TDM-2 : 	184
KB6VN-2 : 	145
WR6ABD : 	129
KC1CHV-11 : 	110
N6ACK-10 : 	98
WB6JHI-1 : 	96
WA6ODP-4 : 	37
W6IA : 		32
N6MEB-9 : 	28
KM6MZM : 	25
W6SRR-3 : 	24
KH2SR-5 : 	15
KD6SPN-10 : 	15
KI6TSF-9 : 	10
N6AMQ-2 : 	8
KN6ETO : 	6
KJ6FCM-3 : 	6
KN6FQM-11 : 	5
N6CY-9 : 	4
KM6IOK-9 : 	1
KI6WMS-8 : 	1
KG4EGZ-9 : 	1

Heard APRS WX packets (any path):998

   Unique WX stations and packet count (not all stations are reporting valid data):
    313 K6IXA-3
    190 KA6UPU-1
    103 KE6AFE
     84 WB6AHC-1
     72 KJ6LNH-1
     66 K6PKL-2
     46 KG6UWN-1
      1 KI6TSF-8

Sorted station list (highest to lowest heard [worst offenders]) via any path (RF or APRS-IS):
    712 KE6CAC
    428 KS4FUN-12
    369 K6RPT
    364 N6VMG-10
    352 BKELEY
    350 W6TDM-2
    333 K6IXA-3
    292 W6CX-3
    276 KE6AFE
    275 N6VV-2
    274 KC1CHV-11
    270 K6WJG-7
    242 ACARC-1
    240 WR6ABD
    233 WB6JHI-1
    222 N6CY-9
    198 N6ACK-10
    194 KA6UPU-1
    148 KB6VN-2
    140 AF6SE
    131 KC6SSM-5
    122 N6MEB-9
    115 WB6AHC-1
    106 K2DEN-10
    105 K6YVE
    104 KK6Q-9
    100 KK6RUH-1
     92 N6WKZ-3
     87 KN6ETO
     86 NJ6E-6
     85 K6XTC-1
     83 W6IA
     82 KG6NLW
     75 N6JWT-8
     72 KJ6LNH-1
     72 K6VT-2
     69 KH2SR-5
     66 K6PKL-2
     65 KM6MZM
     65 K6YIL-1
     62 KA6QLP
     61 KMEP1
     61 K6MRP-10
     56 KE6AFE-2
     50 KM6ELP-9
     46 KN6PTH-9
     46 KJ6LNH-9
     46 KG6UWN-1
     45 NR7Z-9
     44 N7TWP-7
     43 W6SCR-3
     39 KN6KBP-9
     38 KK6NZP-7
     37 WA6ODP-4
     37 WA6BAY-1
     36 N6BRL-12
     35 K6MBD-9
     34 KN6FQM-11
     33 KK6BXP-9
     32 KD6SPN-10
     27 KJ6FCM-3
     25 KM6IOK-9
     24 W6SRR-3
     24 KJ6DZB-3
     24 K6FGA-1
     24 AF6JP-9
     23 K6KPQ
     22 KQ6UP-1
     22 KQ6DI-1
     22 KJ6OVK-9
     21 KJ6DLF-4
     20 KI6OID-7
     20 K7FED-1
     19 WQ6F
     19 WA6SEK-9
     19 W6QWU-1
     19 W2GMD-9
     19 KN6BDH
     19 K6CDF-8
     17 KI6ZHD-6
     17 K6SRV-9
     16 KI6TSF-8
     16 KG6WIP
     16 AG6GH-1
     15 KJ6LNH
     14 WB6TMS-5
     13 KJ6CXL-9
     12 KM6FKA-9
     12 KI6TSF-9
     10 W6ERR-6
     10 KI6ETL-10
     10 KE6FOA
      9 KC6YFG-4
      9 KC6JHF-2
      8 VA3SFA-7
      8 N6AMQ-2
      8 KM6FJZ-4
      8 AJ6KA-7
      7 N8QH-9
      7 KG4EGZ-9
      6 WU1Q-9
      6 W6ESL-12
      6 N0XFD-14
      6 KM4JQR-7
      6 K6LY-3
      6 GAPGTE
      5 W6BXN-3
      5 KM6SP-9
      5 KM6GAX
      4 WE6Z
      4 W1EJ-7
      4 KN6KBE-7
      4 KM6SJO-7
      4 KK6FEN-9
      4 KJ6GKC
      4 KH2SR-2
      4 KG6SGV
      4 KC6SSM-9
      4 KB6VDS-9
      4 ALDER
      3 WALT-9
      3 W3IV-9
      3 KN6MOS-9
      3 KI6WMS-8
      3 KI6PPU-9
      3 CARSON
      2 WY6NKL-9
      2 WB6WNI-7
      2 W6JOE-10
      2 N6BX-9
      2 KM6HBH-9
      2 KG6SQN-7
      2 KF6TYS-3
      1 W6TKD-7
      1 SLIDE
      1 NC6J-1
      1 N6VYT-6
      1 KN6MTF-7
      1 KE7GGD-5
      1 K6MLA-4
      1 K6MEU-10
      1 K1HLG-2



On 01/03/2022 01:20 AM, Alfredo Vania wrote:
Hello everybody,
first of all, happy new year!
I developed a web dashboard for direwolf. It parses the log file and extracts some statistics.
A realtime traffic monitor is also available.
It's a beta version and every additional test will be appreciated.
Code available here:
You can see the interface working here:
Feel free to suggest improvements and modifications.

I hope someone is interested.
73's
Alfredo IZ7BOJ


 

¿ªÔÆÌåÓý


Hello Alfredo,


How do you extract path information (WIDE, Trace, ecc...) not having the raw packet content?

My script parses the Direwolf STDOUT decoded log.? If the detail is in that log, it tracks it.


The csv log seems to mask the complete path and shows only the last repeater station ("heard" column).

I'm not sure what you are referring to here.? Maybe Ross's Grafana based tool?

--David
KI6ZHD


 

Hi David,
so, as far I can understand, you redirected the STDOUT to a log file, right?
My dashboard works on the log file generated when you execute direwolf specifying option "¨Cl" (lower case L) on the command line or using the "LOGDIR" option in the configuration file.
Rather than saving unreadable raw data, in this way the digested parts are saved in Comma Separated Value (CSV) format. The first line has the names of the fields.

chan, utime, isotime, source, heard, level, error, dti, name, symbol, latitude, longitude,speed, course, altitude, frequency, offset, tone ,system, status, comment

Further details are available in the manual.

I hope this helps,
73's
Alfredo


Il giorno mar 4 gen 2022 alle ore 17:13 David Ranch <direwolf-groupsio@...> ha scritto:

Hello Alfredo,


How do you extract path information (WIDE, Trace, ecc...) not having the raw packet content?

My script parses the Direwolf STDOUT decoded log.? If the detail is in that log, it tracks it.


The csv log seems to mask the complete path and shows only the last repeater station ("heard" column).

I'm not sure what you are referring to here.? Maybe Ross's Grafana based tool?

--David
KI6ZHD


 

Hi All,
If anyone wants to just see the direwolf "screen" as a webpage i have used gotty and tmux and it works well it can be setup as read only or write permissions.
It requires no log files its just a real time display of the screen session.
You can check out one at the following: https://vk3rbu-1.vk44.net/


 

¿ªÔÆÌåÓý

Cool feature ;-)

73 de Cyril - DF1CHB - F1MHV

Le 19 janv. 2022 ¨¤ 01:11, Tim VK3TIM <vk3tim@...> a ¨¦crit :

Hi All,
If anyone wants to just see the direwolf "screen" as a webpage i have used gotty and tmux and it works well it can be setup as read only or write permissions.
It requires no log files its just a real time display of the screen session.
You can check out one at the following:



 

Morning Tim,
Any chance you could share how to do this real-time display.
Rgd Stuart


 
Edited

Hi Stuart,
It is two applications Gotty and Tmux.

Gotty -https://github.com/yudai/gotty/releases
Example is for Linux amd64 -Choose the? file for you hardware.
cd /tmp
wget?
-Extract downloaded file.
tar xvf?gotty_2.0.0-alpha.3_linux_amd64.tar.gz
chmod? +x gotty
sudo mv gotty /usr/local/bin/

Tmux
-Follow the instructions for you environment -https://computingforgeeks.com/linux-tmux-cheat-sheet/
sudo apt-get update
sudo apt-get install tmux

-Make a gotty service file:
nano usr/lib/systemd/system/gotty.service
-Copy the following into the file:

[Unit]
Description=tmux default session (detached)
# Description=Place this file in /usr/lib/systemd/system
?
[Service]
Type=simple
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/tty7
ExecStart=/usr/local/bin/gotty tmux new -A -s gotty screen -D -m -r direwolf &
ExecReload=/bin/kill -2 $MAINPID
KillMode=process
RestartSec=2
?
[Install]
WantedBy=default.target

-Then enable and start the new service
systemctl enable gotty
systemctl start gotty

You now will have a web based terminal tmux gotty direwolf screen on port 8080 of the host.

Enjoy
Tim VK3TIM



 

¿ªÔÆÌåÓý

I would be very interested in that!

?

Thanks and 73,

?

  • Matt, WE1H

?

From: [email protected] <[email protected]> On Behalf Of Tim VK3TIM
Sent: Tuesday, January 18, 2022 7:11 PM
To: [email protected]
Subject: Re: [direwolf] Direwolf web dashboard

?

Hi All,
If anyone wants to just see the direwolf "screen" as a webpage i have used gotty and tmux and it works well it can be setup as read only or write permissions.
It requires no log files its just a real time display of the screen session.
You can check out one at the following:


 

To add to the offerings, I developed a shell script that processes the last day's worth of data, parses it out like below and emails it to me.? Not very pretty nor interactive per se but it does help keep an eye on key metrics like "top talkers", etc.

--David
Is you script publicly available? I would be interested in seeing it.

73, de KM4ACK


 

Bump


On Mon, Jan 3, 2022 at 08:39 AM, Alfredo Vania wrote:
Hello everybody,
first of all, happy new year!
I developed a web dashboard for direwolf. It parses the log file and extracts some statistics.
A realtime traffic monitor is also available.
It's a beta version and every additional test will be appreciated.
Code available here:
You can see the interface working here:
Feel free to suggest improvements and modifications.
?
I hope someone is interested.
73's
Alfredo IZ7BOJ


 

Thank you!


On Sun, Feb 13, 2022 at 9:11 PM J P Watters via <jpwatters=[email protected]> wrote:
Bump

On Mon, Jan 3, 2022 at 08:39 AM, Alfredo Vania wrote:
Hello everybody,
first of all, happy new year!
I developed a web dashboard for direwolf. It parses the log file and extracts some statistics.
A realtime traffic monitor is also available.
It's a beta version and every additional test will be appreciated.
Code available here:
You can see the interface working here:
Feel free to suggest improvements and modifications.
?
I hope someone is interested.
73's
Alfredo IZ7BOJ



--

73,
AB1PH
Don Rolph


 

Tim,

I followed your instructions and when I try to view my igate on port 8080 in a browser, it gives my a "connection closed" message. Any ideas?

Thanks,

Paul KK7BIZ


 

Disregard. I realized I installed version 1.0.1 and not 2.0.0 alpha.


 

And disregard my disregard. After loading 2.0.0 Alpha, I get the same result.


 

Variation on a theme, I decided my first foray into trying to write a script should be Direwolf related - apart from some C++ at university and Excel macros I've not coded anything.

I installed Alfredo's dashboard, which has proved to be very useful in showing the difference between what DW is RX and what gets through to aprs.fi.? Big thanks Alfredo for that.? It rather gave me inspiration to look at scripting.
When prop is good and e's are active, I see a lot of stations plus 100 miles. The intention in writing the script was to use the Direwolf log to alert to the possibility of DX on 2 metres rather than having to look at the dashboard.

I set the script to run every 5 minutes in a CRON job.? It reads the DW log into an array, calculates the distance to the source station and appends that to each row.? Then filters by distance (set-able in the script).? If the filter result is zero, quits, otherwise puts the output into an email and sends.? There is a small sub-routine to check when the last email was sent to prevent sending every 5 minutes (also set-able in the script) .? I set that to only send every 30 minutes.

It's not the most elegant of Python scripts, but it works for what I want it to do.

Code is here


There are two scripts in the repository - dxrx is the one to check and send mail according to distance.? ?Fulllog gets the log file, calculates and appends distance to source and sends email - I use that one once a day just for info.

73
Craig MM0NBW