Giter VIP home page Giter VIP logo

Comments (7)

sparky8512 avatar sparky8512 commented on August 19, 2024

It is a little confusing, I admit. This is how I currently have seconds_obstructed documented (emphasis added):

The amount of time within the history buffer (currently the smaller of 12 hours or since last reboot), in seconds that the user terminal determined to be obstructed, regardless of whether or not packets were able to be transmitted or received. ...

I tried to make it clear that seconds_obstructed does not necessarily mean downtime. The dish has some algorithm for determining whether or not a sample period is "obstructed" or not that I can only guess involves how often the direction between it and the satellite during that second experienced packet loss (ping drop) in the past. seconds_obstructed, as well as count_obstructed in the ping_drop history stats group, and the obstructed flag in the bulk history data are all raw indications of this determination. They need to be combined with the pop_ping_drop_rate history data to get to the total numbers listed under "Last 12 hours" in the app.

If you're looking to record that data over time into a dashboard, you should look at the count_full_obstructed_ping_drop, count_full_unscheduled_ping_drop, and count_full_ping_drop fields of the ping_drop mode group, which should reflect Obstructed, No Satellites, and total Obstructed+No Satellites+Beta Downtime, respectively. I think you'll probably need to use both --all-samples and --no-counter command line options, too. I wasn't really thinking of that use case when I made counter tracking the default for ping history stats.

BTW: The "Last 24 hours" label in the web app is misleading. The web app appears to still be an older version. The Android and iOS apps fixed that some time ago to correctly reflect the amount of valid history data, which will be 12 hours or number of hours since reboot if that is less than 12.

from starlink-grpc-tools.

dustin avatar dustin commented on August 19, 2024

Oooh, that makes a lot of sense. I did want this number, but not necessarily in a big red box on my UI.

I'm not finding the ping counters, though. I've turned on all the things I can find:

docker run --rm -t --name='starlink-grpc-tools' -e INFLUXDB_HOST=X -e INFLUXDB_PORT=8086 -e INFLUXDB_DB=starlink neurocis/starlink-grpc-tools dish_grpc_influx.py -t 10 --all-samples --no-counter -v status obstruction_detail ping_drop ping_run_length ping_latency ping_loaded_latency usage alert_detail

And that yields the following:

> show field keys from "spacex.starlink.user_terminal.status"
name: spacex.starlink.user_terminal.status
fieldKey                          fieldType
--------                          ---------
alert_mast_not_near_vertical      boolean
alert_motors_stuck                boolean
alert_slow_ethernet_speeds        boolean
alert_thermal_shutdown            boolean
alert_thermal_throttle            boolean
alert_unexpected_location         boolean
alerts                            integer
currently_obstructed              boolean
downlink_throughput_bps           float
fraction_obstructed               float
hardware_version                  string
pop_ping_drop_rate                float
pop_ping_latency_ms               float
raw_wedges_fraction_obstructed_0  float
raw_wedges_fraction_obstructed_1  float
raw_wedges_fraction_obstructed_10 float
raw_wedges_fraction_obstructed_11 float
raw_wedges_fraction_obstructed_2  float
raw_wedges_fraction_obstructed_3  float
raw_wedges_fraction_obstructed_4  float
raw_wedges_fraction_obstructed_5  float
raw_wedges_fraction_obstructed_6  float
raw_wedges_fraction_obstructed_7  float
raw_wedges_fraction_obstructed_8  float
raw_wedges_fraction_obstructed_9  float
seconds_obstructed                float
seconds_to_first_nonempty_slot    float
snr                               float
software_version                  string
state                             string
uplink_throughput_bps             float
uptime                            integer
valid_s                           float
wedges_fraction_obstructed_0      float
wedges_fraction_obstructed_1      float
wedges_fraction_obstructed_10     float
wedges_fraction_obstructed_11     float
wedges_fraction_obstructed_2      float
wedges_fraction_obstructed_3      float
wedges_fraction_obstructed_4      float
wedges_fraction_obstructed_5      float
wedges_fraction_obstructed_6      float
wedges_fraction_obstructed_7      float
wedges_fraction_obstructed_8      float
wedges_fraction_obstructed_9      float

from starlink-grpc-tools.

sparky8512 avatar sparky8512 commented on August 19, 2024

Those go to a different measurement / series name. Try spacex.starlink.user_terminal.ping_stats. I guess I should add that detail to the script module docs.

from starlink-grpc-tools.

dustin avatar dustin commented on August 19, 2024

Oh yes, I see now.

I also tried out the mqtt thing, which is pretty nice. I may consider just running that one since I've got a lot of infrastructure around mqtt, though your influxdb app does all the important things (e.g., spooling since my influxdb is on the other side of a vpn).

Thanks for all this work.

from starlink-grpc-tools.

sparky8512 avatar sparky8512 commented on August 19, 2024

Cool. Let me know if you poke at the MQTT support and find it lacking. I mostly just implemented that because it was mentioned as a possibility and I already have a MQTT broker running on my home network (and because it was easy enough), but I don't use it for anything like what these tools spit out.

from starlink-grpc-tools.

sparky8512 avatar sparky8512 commented on August 19, 2024

I just added the note about measurement names, as I mentioned a few comments back. I was going to try to add some clarify text to starlink_grpc, too, but I think that would be better served by a Wiki article, probably just expanding a bit on my first comment above. I'll leave this issue open until I get around to that.

from starlink-grpc-tools.

sparky8512 avatar sparky8512 commented on August 19, 2024

So... it turns out that eight months of procrastination was sufficient to render any further documentation on this obsolete. The seconds_obstructed data is no longer being provided by the dish firmware. I still have some ambition to improve the documentation for this project, but this particular topic is no longer relevant.

from starlink-grpc-tools.

Related Issues (20)

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.