Coder Social home page Coder Social logo

msh100 / modem-stats Goto Github PK

View Code? Open in Web Editor NEW
25.0 4.0 4.0 118 KB

Process the channel diagnostics data from a DOCSIS modem for use in Telegraf or Prometheus

Go 93.27% Dockerfile 1.01% Shell 5.72%
docsis docsis-monitoring virgin-media-superhub telegraf docsis-modems prometheus-exporter ubee sagemcom

modem-stats's People

Contributors

finlaydag33k avatar msh100 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

modem-stats's Issues

Upstream and Downstream rates reversed? (Superhub 3)

Upstream and Downstream Traffic Rates reversed.

I am using a Virgin Media Superhub3 and the data rates for upstream and downstream seem to be reversed.
I am using the Binary for modem-stats-arm5 on a Raspbery pi 4 (but I dont think that is the issue).
The results are fed to a Telegraf instance and then on to Grafana.

I attach a screenshot of the SH3 modem status, which correctly shows the Upstream and Downstream rates (approx 270MB down and 26MB up).

The modem-stats (binary) returns these values reversed (see last couple of lines below).

ownstream,channel=22,id=29,modulation=QAM256,scheme=SC-QAM frequency=363000000,snr=403,power=-20,prerserr=44,postrserr=0
downstream,channel=23,id=30,modulation=QAM256,scheme=SC-QAM frequency=371000000,snr=403,power=-20,prerserr=21,postrserr=0
downstream,channel=24,id=31,modulation=QAM256,scheme=SC-QAM frequency=379000000,snr=403,power=-22,prerserr=18,postrserr=0
upstream,channel=1,id=2 frequency=43100000,power=445
upstream,channel=2,id=5 frequency=23600000,power=420
upstream,channel=3,id=4 frequency=30100039,power=430
upstream,channel=4,id=3 frequency=36600000,power=445
upstream,channel=5,id=1 frequency=49600000,power=445
config,config=upstream maxrate=287500061,maxburst=42600
config,config=downstream maxrate=27500061,maxburst=42600
shstatsinfo timems=1127

So when this comes into the Grafana screen, downstream and upstream rates are reversed in the GUI, though other measurements seem fine.

I also don't seem to get any results for PING's, despite having the PING_TARGETS environment variable set - but mabe that is not part of the compiled binary?

router-screenshot

Grafana screen

I have learned a LOT so far this last couple of days putting the various bits of this together - THANKS in advance and apologies if I am missing something obvious.

Bob

Superhub 4 parser stops working after some time

After querying for a while, the Superhub 4 parser stops working. This is because the statistics from the router itself is broken.

The output from http://192.168.0.1/php/ajaxGet_device_networkstatus_data.php becomes:

["","","","",null,"","","","","","","","","","","","","","","","[[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]]","[[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]]","[]","[[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]]","[[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]]","","","","",""]

This issue has been seen on both the Superhub 4s I have tested.

I've not been able to report this to Virgin yet.

Superhub 4 parser doesn't appear to include DOCSIS 3.1 upstream channels

I ran the command pointing to my Hub 4 and while I can see my full downstream channels (3.0 and 3.1) my upstream only shows my 3.0 channels

Command output

./modem-stats.x86 --modem=superhub4
downstream,channel=1,id=30,modulation=QAM256,scheme=SC-QAM frequency=371000000,snr=389,power=78,prerserr=0,postrserr=0
downstream,channel=2,id=1,modulation=QAM256,scheme=SC-QAM frequency=139000000,snr=389,power=95,prerserr=0,postrserr=0
downstream,channel=3,id=2,modulation=QAM256,scheme=SC-QAM frequency=147000000,snr=386,power=95,prerserr=2,postrserr=0
downstream,channel=4,id=3,modulation=QAM256,scheme=SC-QAM frequency=155000000,snr=389,power=94,prerserr=0,postrserr=0
downstream,channel=5,id=4,modulation=QAM256,scheme=SC-QAM frequency=163000000,snr=389,power=94,prerserr=0,postrserr=0
downstream,channel=6,id=5,modulation=QAM256,scheme=SC-QAM frequency=171000000,snr=386,power=90,prerserr=0,postrserr=0
downstream,channel=7,id=6,modulation=QAM256,scheme=SC-QAM frequency=179000000,snr=389,power=90,prerserr=0,postrserr=0
downstream,channel=8,id=7,modulation=QAM256,scheme=SC-QAM frequency=187000000,snr=386,power=90,prerserr=0,postrserr=0
downstream,channel=9,id=8,modulation=QAM256,scheme=SC-QAM frequency=195000000,snr=389,power=91,prerserr=0,postrserr=0
downstream,channel=10,id=9,modulation=QAM256,scheme=SC-QAM frequency=203000000,snr=389,power=90,prerserr=0,postrserr=0
downstream,channel=11,id=10,modulation=QAM256,scheme=SC-QAM frequency=211000000,snr=389,power=89,prerserr=0,postrserr=0
downstream,channel=12,id=11,modulation=QAM256,scheme=SC-QAM frequency=219000000,snr=386,power=86,prerserr=0,postrserr=0
downstream,channel=13,id=12,modulation=QAM256,scheme=SC-QAM frequency=227000000,snr=389,power=85,prerserr=0,postrserr=0
downstream,channel=14,id=13,modulation=QAM256,scheme=SC-QAM frequency=235000000,snr=389,power=81,prerserr=0,postrserr=0
downstream,channel=15,id=14,modulation=QAM256,scheme=SC-QAM frequency=243000000,snr=389,power=78,prerserr=0,postrserr=0
downstream,channel=16,id=15,modulation=QAM256,scheme=SC-QAM frequency=251000000,snr=386,power=78,prerserr=0,postrserr=0
downstream,channel=17,id=16,modulation=QAM256,scheme=SC-QAM frequency=259000000,snr=389,power=75,prerserr=0,postrserr=0
downstream,channel=18,id=17,modulation=QAM256,scheme=SC-QAM frequency=267000000,snr=386,power=78,prerserr=0,postrserr=0
downstream,channel=19,id=18,modulation=QAM256,scheme=SC-QAM frequency=275000000,snr=389,power=79,prerserr=0,postrserr=0
downstream,channel=20,id=19,modulation=QAM256,scheme=SC-QAM frequency=283000000,snr=389,power=80,prerserr=0,postrserr=0
downstream,channel=21,id=20,modulation=QAM256,scheme=SC-QAM frequency=291000000,snr=389,power=79,prerserr=0,postrserr=0
downstream,channel=22,id=21,modulation=QAM256,scheme=SC-QAM frequency=299000000,snr=389,power=78,prerserr=0,postrserr=0
downstream,channel=23,id=22,modulation=QAM256,scheme=SC-QAM frequency=307000000,snr=389,power=75,prerserr=0,postrserr=0
downstream,channel=24,id=23,modulation=QAM256,scheme=SC-QAM frequency=315000000,snr=389,power=74,prerserr=0,postrserr=0
downstream,channel=25,id=24,modulation=QAM256,scheme=SC-QAM frequency=323000000,snr=389,power=74,prerserr=0,postrserr=0
downstream,channel=26,id=25,modulation=QAM256,scheme=SC-QAM frequency=331000000,snr=389,power=76,prerserr=0,postrserr=0
downstream,channel=27,id=26,modulation=QAM256,scheme=SC-QAM frequency=339000000,snr=389,power=78,prerserr=0,postrserr=0
downstream,channel=28,id=27,modulation=QAM256,scheme=SC-QAM frequency=347000000,snr=389,power=80,prerserr=0,postrserr=0
downstream,channel=29,id=28,modulation=QAM256,scheme=SC-QAM frequency=355000000,snr=389,power=79,prerserr=0,postrserr=0
downstream,channel=30,id=29,modulation=QAM256,scheme=SC-QAM frequency=363000000,snr=389,power=79,prerserr=0,postrserr=0
downstream,channel=31,id=31,modulation=QAM256,scheme=SC-QAM frequency=379000000,snr=386,power=78,prerserr=0,postrserr=0
downstream,channel=1,id=159,modulation=QAM4096,scheme=OFDM frequency=96000000,snr=420,power=70,prerserr=1398995372,postrserr=0
upstream,channel=1,id=9 frequency=49600000,power=430
upstream,channel=2,id=13 frequency=23600000,power=430
upstream,channel=3,id=12 frequency=30100000,power=430
upstream,channel=4,id=11 frequency=36600000,power=430
upstream,channel=5,id=10 frequency=43100000,power=425
config,config=downstream maxrate=1200000450,maxburst=42600
config,config=upstream maxrate=55000270,maxburst=42600
shstatsinfo timems=2000

Output of /php/ajaxGet_device_networkstatus_data.php (pretty printed for your pleasure)

[
   "371000000",
   "49600000",
   "Locked",
   "ACTIVE",
   6,
   "true",
   "1",
   "true",
   "3.1",
   "wrkldJKDHSUBsgvca69834ncx",
   "20269",
   "1200000450",
   "42600",
   "0",
   "20268",
   "55000270",
   "42600",
   "0",
   "16320",
   "bestEffort",
   "[[\"30\",\"371000000\",\"7.699997\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"1\",\"139000000\",\"9.400002\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"2\",\"147000000\",\"9.599998\",\"38.605377\",\"QAM256\",\"Locked\",\"38.605377\",\"0\",\"0\"],[\"3\",\"155000000\",\"9.300003\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"4\",\"163000000\",\"9.300003\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"5\",\"171000000\",\"9.000000\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"6\",\"179000000\",\"9.000000\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"7\",\"187000000\",\"8.900002\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"8\",\"195000000\",\"9.099998\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"9\",\"203000000\",\"8.900002\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"10\",\"211000000\",\"8.800003\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"11\",\"219000000\",\"8.599998\",\"38.605377\",\"QAM256\",\"Locked\",\"38.605377\",\"0\",\"0\"],[\"12\",\"227000000\",\"8.400002\",\"38.605377\",\"QAM256\",\"Locked\",\"38.605377\",\"0\",\"0\"],[\"13\",\"235000000\",\"8.099998\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"14\",\"243000000\",\"7.699997\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"15\",\"251000000\",\"7.699997\",\"38.605377\",\"QAM256\",\"Locked\",\"38.605377\",\"0\",\"0\"],[\"16\",\"259000000\",\"7.500000\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"17\",\"267000000\",\"7.699997\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"18\",\"275000000\",\"7.800003\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"19\",\"283000000\",\"7.900002\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"20\",\"291000000\",\"7.800003\",\"38.605377\",\"QAM256\",\"Locked\",\"38.605377\",\"0\",\"0\"],[\"21\",\"299000000\",\"7.699997\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"22\",\"307000000\",\"7.400002\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"23\",\"315000000\",\"7.199997\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"24\",\"323000000\",\"7.300003\",\"38.605377\",\"QAM256\",\"Locked\",\"38.605377\",\"0\",\"0\"],[\"25\",\"331000000\",\"7.500000\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"26\",\"339000000\",\"7.699997\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"27\",\"347000000\",\"8.000000\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"28\",\"355000000\",\"7.800003\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"],[\"29\",\"363000000\",\"7.800003\",\"38.605377\",\"QAM256\",\"Locked\",\"38.605377\",\"0\",\"0\"],[\"31\",\"379000000\",\"7.800003\",\"38.983261\",\"QAM256\",\"Locked\",\"38.983261\",\"0\",\"0\"]]",
   "[[\"9\",\"49600000\",\"42.520599\",\"5120 KSym\\\/sec\",\"64QAM\",\"US_TYPE_STDMA\",\"0\",\"0\",\"1\",\"0\"],[\"13\",\"23600000\",\"43.020599\",\"5120 KSym\\\/sec\",\"64QAM\",\"US_TYPE_STDMA\",\"0\",\"0\",\"4\",\"0\"],[\"12\",\"30100000\",\"43.020599\",\"5120 KSym\\\/sec\",\"64QAM\",\"US_TYPE_STDMA\",\"0\",\"0\",\"1\",\"0\"],[\"11\",\"36600000\",\"43.020599\",\"5120 KSym\\\/sec\",\"64QAM\",\"US_TYPE_STDMA\",\"0\",\"0\",\"6\",\"0\"],[\"10\",\"43100000\",\"43.020599\",\"5120 KSym\\\/sec\",\"64QAM\",\"US_TYPE_STDMA\",\"0\",\"0\",\"5\",\"0\"]]",
   "[]",
   "[[\"159\",\"96\",\"4K\",\"1880\",\"QAM4096\",\"759\",\"Locked\",\"41\",\"6.9\",\"1399128308\",\"0\"]]",
   "[[\"14\",\"10.0\",\"37.0\",\"2K\",\"QAM8\",\"OFDMA\",\"200\",\"53.9\",\"6\",\"0\"]]",
   "5",
   "31",
   "1",
   "1",
   "SC-QAM"
]

multi-arch build

Hey

Thanks for making this exporter, I just tried it with Prometheus and it works so was hoping to roll it out to my and my friend's environment but need a Raspberry PI docker image, is it possible for you to update the build pipeline for multi-arch and maybe upgrade go? I just built it no problem with 1.18.2 but I'm sure it would work fine with latest.

Perhaps an image without Telegraf would also be good for those Prometheus only scenarios.

I'll build a dashboard for Prometheus data source when I get it running and contribute it back.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.