Commit graph

139 commits

Author SHA1 Message Date
Leigh Phillips
0ed3e074db
Update README.md 2021-01-11 17:24:10 -08:00
Leigh Phillips
37988e0f4c
Add Grafana dashboard for Starlink Stats. 2021-01-11 17:15:09 -08:00
Leigh Phillips
8f8bbbd353
Merge pull request #3 from sparky8512/main
Bump up-to-date
2021-01-11 17:13:35 -08:00
sparky8512
b06a5973c1 Change default database name to starlinkstats
The README instructions @neurocis  added for the Docker container recommend this name, and I like that better than dishstats, so now it's the default.

"dish" can be useful to differentiate between the Starlink user terminal (dish) and the Starlink router, both of which expose gRPC services for polling status information, but that's more applicable to the measurement name (AKA series_name) and a hypothetical database that contained both would be more appropriately labelled "Starlink".
2021-01-11 13:03:19 -08:00
sparky8512
4af576fbae
Merge pull request #7 from neurocis/main
Migrate to in-script scheduling.
2021-01-11 11:10:47 -08:00
Leigh Phillips
eecc65a5ba
Update README.md 2021-01-11 00:01:50 -08:00
Leigh Phillips
d21b196f78
Update README.md 2021-01-11 00:00:49 -08:00
Leigh Phillips
d0fd5a0a2b
Update entrypoint.sh
Change to passthrough all args.
2021-01-10 23:57:06 -08:00
Leigh Phillips
7fb595bbda
Update Dockerfile 2021-01-10 23:41:44 -08:00
Leigh Phillips
21e9c010e2
Create entrypoint.sh 2021-01-10 23:41:05 -08:00
Leigh Phillips
ee1d19ce35
Delete dishStatusInflux_cron.py 2021-01-10 23:40:02 -08:00
Leigh Phillips
ff2d0eacb1
Merge pull request #2 from sparky8512/main
SSL/TLS support for InfluxDB and MQTT scripts
2021-01-10 21:53:32 -08:00
sparky8512
ce44f3c021 SSL/TLS support for InfluxDB and MQTT scripts
SSL/TLS support for InfluxDB and MQTT scripts

Copy the command line option handling into the status scripts to facilitate this. Also copy the setting from env from dishStatusInflux_cron.py.

Better error handling for failures while writing to the data backend. Error printing verbosity is now a bit inconsistent, but I'll address that separately.

Still to be done is dishStatusInflux_cron.py, pending a decision on what to do with that script, given that dishStatusInflux.py can now be run in one-shot mode.

This is related to issue #2.
2021-01-10 21:36:44 -08:00
Leigh Phillips
27ce46cb3c
Update README.md
Name & run docker in daemon mode.
2021-01-09 13:22:55 -08:00
Leigh Phillips
9e09b64881
Update Dockerfile
Name & run in daemon mode
2021-01-09 13:22:22 -08:00
Leigh Phillips
1996ad26d2
Merge pull request #1 from sparky8512/main
Bring up to date.
2021-01-09 13:21:25 -08:00
sparky8512
f067f08952 Add InfluxDB and MQTT history stats scripts
Unlike the status info scripts, these include support for setting host and database parameters via command line options. Still to be added is support for HTTPS/SSL.

Add a get_id function to the grpc parser module, so it can be used for tagging purposes.

Minor cleanups in some of the other scripts to make them consistent with the newly added scripts.
2021-01-09 12:03:37 -08:00
sparky8512
253d6e9250
Fix spelling error 2021-01-09 11:43:25 -08:00
sparky8512
66a5c05d95
Merge pull request #6 from neurocis/main
Dockerize ready for InfluxDB

Related to issue #1
2021-01-09 11:42:00 -08:00
Leigh Phillips
c28e025893
Update README.md 2021-01-08 22:41:57 -08:00
Leigh Phillips
fe3cf90612
Create dishStatusInflux_cron.py 2021-01-08 22:27:54 -08:00
Leigh Phillips
49cdcaa18c
Create Dockerfile 2021-01-08 22:26:52 -08:00
sparky8512
0ee39f61fd Small change to the interface between parser and calling scripts
Move the "samples" stat out of the ping drop group of stats and into a new general stats group.

This way, it  will make more sense if/when additional stat groups are added, since that stat will apply to all of them.
2021-01-08 19:17:34 -08:00
sparky8512
96b7634a3d
Merge pull request #4 from sparky8512/working
Mostly cosmetic cleanups and module reorganization
2021-01-06 11:59:24 -08:00
sparky8512
170dd2daae Reorganize history parsing logic into a separate module
Moves the parsing logic that will be shared by some upcoming scripts out into a separate module.

There's still just as much duplication between the JSON parser and the grpc parser as there was before, but this should at least prevent further duplication of this logic.

This also adds some proper documentation for what each of the stats means.
2021-01-06 11:46:50 -08:00
sparky8512
d165791559 Readability improvements (or so PEP 8 style guide claims...) 2021-01-06 10:12:56 -08:00
sparky8512
a5036db9e0 Don't allow a sample to be both unscheduled and obstructed
Doesn't ever seem to happen, but in case it does in the future, treat that case as just unscheduled. This way, the unclassified ping loss (AKA "Beta downtime") can be computed from the totals.
2020-12-30 13:09:24 -08:00
sparky8512
4ff6cfb5fa Fix line endings to be consistent with the other scripts 2020-12-30 13:01:41 -08:00
sparky8512
5c762e754b
Merge pull request #3 from sparky8512/working
Add scripts for status output to CSV, InfluxDB, and MQTT
2020-12-30 11:57:05 -08:00
sparky8512
f206a3ad91 Add a short blurb for the recently added scripts 2020-12-30 11:47:03 -08:00
sparky8512
e1a4c473c8 Handle errors on the gRPC connection
Also, actually do the thing I said I was doing in the prior checkin by writing state as a string instead of integer.

And a bit more cleanup.
2020-12-30 10:17:02 -08:00
sparky8512
61e9abf7d4 Add header comments and update README
Also, add a timestamp to the CSV output, similar to what is in the get_history equivalent.
2020-12-29 20:45:30 -08:00
sparky8512
c313134ba1
Scripts for CSV, InfluxDB, MQTT get_status output
Initial support for dumping status info in CSV format or to InfuxDB or MQTT servers.

InfluxDB script is largely what Equinox- posted into issue #2, but with a few things renamed, and the state info being recorded as a string of the enum value name, rather than the (integer) enum value.

All of these need header comments still and some need a bit more options handling, cleanup, and error handling.
2020-12-29 19:21:00 -08:00
sparky8512
f0aa1fe8dc Add (optional) run length stats
Add reporting of ping drop runs per length of run. Useful(?) for characterizing how long a typical "outage" is.
2020-12-24 14:58:28 -08:00
sparky8512
04b25d2da5
More example usage, commented out 2020-12-23 07:25:30 -08:00
sparky8512
d384481e46
Last of initial set of scripts 2020-12-22 20:16:33 -08:00
sparky8512
8d3aadad41
Fill out the README 2020-12-22 20:05:25 -08:00
sparky8512
a0f4ed2595
Initial upload of history parser and notes file 2020-12-22 15:51:37 -08:00
sparky8512
33e14d2073
Initial commit 2020-12-22 14:40:56 -08:00