inigoflores / helium-miner-log-analyzer

Small tool that extracts witness data from Helium miner logs.
MIT License
41 stars 19 forks source link

light spot version #16

Open burakarslann opened 2 years ago

burakarslann commented 2 years ago

Hello, There will be a light hotspot version of this analyzer? Thank you.

steakneedy commented 2 years ago

New logs dont have much data, you could count how many per day / hour and how many failed. For showing the single witnesses at least there is RSSI and SNR data available.

2022-05-12 06:33:32.624 156 [info] <0.2991.0>@miner_onion_server_light:decrypt:{230,13} sending witness at RSSI: -117, Frequency: 868.1, SNR: -1.2

uros76 commented 2 years ago

I am also seeing the witness list report stopped working since light miner deployment. Is there a workaround or a new version of this analyzer?

steakneedy commented 2 years ago

I am also seeing the witness list report stopped working since light miner deployment. Is there a workaround or a new version of this analyzer?

@inigoflores will have to adjust his script to the new log format

But as I said above there is not a lot of information anymore like before, since no more dialing challengers. All your miner is doing is submitting a witness once to a validator. For now you you can only analyze by hand, put its pretty simple, just need to count the lines with "sending witness at [...]".

uros76 commented 2 years ago

Thanks @steakneedy. Hope the script does get adjusted. Is that "sending witness at" line a definitive indication of successfully sent data? Sorry I am not really an expert, just trying to relate to the old report

steakneedy commented 2 years ago

Thanks @steakneedy. Hope the script does get adjusted. Is that "sending witness at" line a definitive indication of successfully sent data? Sorry I am not really an expert, just trying to relate to the old report

It is unsuccessful if in the following lines in the log you find this: 2022-05-12 06:54:18.377 156 [warning] <0.15814.1>@miner_poc_grpc_client_statem:send_report:{539,5} failed to submit report. OnionKeyHash: <<xxxxxxxxx>>, Report: {blockchain_poc_witness_v1_pb,<<xxxxxxxxxxx>>,xxxxxxxxxxxx,-126,<<xxxxxxxxxxx>>,<<>>,-10.5,867.9,4,<<"SF12BW125">>} otherwise it was successful.

In the failed line you can compare the RSSI SNR to the "sending witness at" line before (-126 / -10.5). So this has to be implemented in the script to check if submitting the witness has failed.

inigoflores commented 2 years ago

Thanks for the input, very useful. I am waiting to gather some data in the logs to make sense of what can be used before I start coding. I agree that, unfortunately, it's not much.

I'll try to have a beta version ready in the next 24 hours.

In the meantime, depending on your hotspot brand/model, this may work https://github.com/inigoflores/lora-packet-forwarder-analyzer .

inigoflores commented 2 years ago

I have now made the changes that will allow the tool to work on light hotspots. Let me know if you find any issues.

I will try to add more features if I discover any other useful stuff in the logs.

steakneedy commented 2 years ago

I have now made the changes that will allow the tool to work on light hotspots. Let me know if you find any issues.

I will try to add more features if I discover any other useful stuff in the logs.

That was fast 😄

Great job, can confirm its working with Sensecap logs. Thanks for your efforts.

uros76 commented 2 years ago

Great job, works with controllino just fine.

poisike commented 2 years ago

I have now made the changes that will allow the tool to work on light hotspots. Let me know if you find any issues. I will try to add more features if I discover any other useful stuff in the logs.

That was fast 😄

Great job, can confirm its working with Sensecap logs. Thanks for your efforts.

How did you install php on Sensecap. I can't figure this out.

inigoflores commented 2 years ago

How did you install php on Sensecap. I can't figure this out.

You have to run it inside the container. Instructions here https://github.com/inigoflores/helium-miner-log-analyzer/issues/10#issuecomment-1111427165

poisike commented 2 years ago

How did you install php on Sensecap. I can't figure this out.

You have to run it inside the container. Instructions here #10 (comment)

That worked, thank you!

martinbenze commented 2 years ago

Hi,

Thanks for the script it is very helpful. How easy would it be to add the spreading Factor (SF) variable from a witness? This will help to see if the SNR is actually decent compared to the SF that was used e.g. SF7 used for close hotspots as it provides the best data speeds 5470bps and thus less air time but the min RSSI -125 and SNR -7.5. Where as a witness using SF12 would only have a bit rate of 250 bps but can travel further and min RSSI -137 and SNR -20.

In the console logs it appears as the following SF7BW125, SF8BW125,SF9BW125,SF10BW125,SF11BW125,SF12BW125

https://www.thethingsnetwork.org/docs/lorawan/rssi-and-snr/snr-demodulation-limits.png

inigoflores commented 2 years ago

How easy would it be to add the spreading Factor (SF)

I will add the spreading factor to the list (the new miner versions seem to produce more useful log data).

However, if I'm not mistaken, PoC beacons are only transmitted using SF12BW125 data rate (I'm in Europe, not sure if it's different in other regions). Please provide log examples of a different data rates for received witnesses (data packets can use any).

Thanks

martinbenze commented 2 years ago

However, if I'm not mistaken, PoC beacons are only transmitted using SF12BW125 data rate (I'm in Europe, not sure if it's different in other regions). Please provide log examples of a different data rates for received witnesses (data packets can use any).

I think you may be right, I was using the following command "grep -i '{<<"freq">>,' /mnt/data/docker/volumes/x_miner-log/_data/console.log" and I could see lots of SF7 and a few SF12. The SF12 ones match up with witnesses. I think maybe the SF7 traffic was possibly for data transferred packets for IOT devices or P2P.

franklyIdontgiveadamn commented 2 years ago

I ran a grep on my data and compared it with your results, and apparently you're not capturing everything. With grep I got 235 witness reports, but with your php only 217. I have copies of the output, so you can see the missing items. I highlighted the first 3 that I found missing from your report in an excel spreadsheet. php-data.txt shows the output of your program, so you can compare the output which might help you debug it. Initially, I used the following command, but when I saw a discrepancy in the count, I dug deeper. grep "miner_onion_server_light:decrypt:" console.log.4 | grep "sending witness at RSSI"|wc -l

I hope you find this helpful. I don't know php at all, so I can't really help with the code directly.

grep-data.xls php-data.txt