Skip to content

clarkzjw/starlink_exporter

Folders and files

NameName
Last commit message
Last commit date
Aug 20, 2023
Mar 14, 2025
Aug 20, 2023
Aug 22, 2023
Aug 20, 2023
Aug 20, 2023
Aug 20, 2023
Aug 20, 2023
Oct 23, 2024
Apr 18, 2021
Jan 12, 2023
Dec 31, 2022
Aug 20, 2023
Apr 22, 2022
Apr 18, 2021
Aug 20, 2023
Aug 20, 2023
Oct 23, 2024
Oct 23, 2024

Repository files navigation

Starlink Prometheus Exporter Monitoring Stack


A Starlink exporter for Prometheus. Not affiliated with or acting on behalf of Starlink(™)

goreleaser build License Release GitHub go.mod Go version Go Report Card

Original repository:


gRPC last generated with firmware version: 87ed6ceb-4409-410a-b5f1-25886edf5966.uterm.release

Firmware tracking website: https://starlinktrack.com/firmware/dishy


Usage:

Flags

starlink_exporter is configured through the use of optional command line flags

$ ./starlink_exporter --help
Usage of starlink_exporter
  -address string
        IP address and port to reach dish (default "192.168.100.1:9200")
  -port string
        listening port to expose metrics on (default "9817")

Binaries

For pre-built binaries please take a look at the releases.

./starlink_exporter [flags]

Docker

Docker Images can be found at Dockerhub.

Example:

docker pull docker.io/clarkzjw/starlink_exporter:latest

docker run \
  -p 9817:9817 \
  docker.io/clarkzjw/starlink_exporter:latest [flags]

Setup Prometheus to scrape starlink_exporter

Configure Prometheus to scrape metrics from localhost:9817/metrics

...
scrape_configs
    - job_name: starlink
      scrape_interval: 3s
      scrape_timeout:  3s
      static_configs:
        - targets: ['localhost:9817']
...

Exported Metrics:

# HELP starlink_dish_alert_install_pending Installation Pending
# TYPE starlink_dish_alert_install_pending gauge
starlink_dish_alert_install_pending 0
# HELP starlink_dish_alert_is_heating Is Heating
# TYPE starlink_dish_alert_is_heating gauge
starlink_dish_alert_is_heating 0
# HELP starlink_dish_alert_mast_not_near_vertical Status of mast position
# TYPE starlink_dish_alert_mast_not_near_vertical gauge
starlink_dish_alert_mast_not_near_vertical 0
# HELP starlink_dish_alert_motors_stuck Status of motor stuck
# TYPE starlink_dish_alert_motors_stuck gauge
starlink_dish_alert_motors_stuck 0
# HELP starlink_dish_alert_roaming Status of roaming
# TYPE starlink_dish_alert_roaming gauge
starlink_dish_alert_roaming 0
# HELP starlink_dish_alert_slow_eth_speeds Status of ethernet
# TYPE starlink_dish_alert_slow_eth_speeds gauge
starlink_dish_alert_slow_eth_speeds 0
# HELP starlink_dish_alert_thermal_shutdown Status of thermal shutdown
# TYPE starlink_dish_alert_thermal_shutdown gauge
starlink_dish_alert_thermal_shutdown 0
# HELP starlink_dish_alert_thermal_throttle Status of thermal throttling
# TYPE starlink_dish_alert_thermal_throttle gauge
starlink_dish_alert_thermal_throttle 0
# HELP starlink_dish_alert_unexpected_location Status of location
# TYPE starlink_dish_alert_unexpected_location gauge
starlink_dish_alert_unexpected_location 0
# HELP starlink_dish_anti_rollback_version Starlink Dish Anti Rollback Version.
# TYPE starlink_dish_anti_rollback_version counter
starlink_dish_anti_rollback_version 0
# HELP starlink_dish_boot_count Starlink Dish boot count.
# TYPE starlink_dish_boot_count counter
starlink_dish_boot_count 22
# HELP starlink_dish_bore_sight_azimuth_deg azimuth in degrees
# TYPE starlink_dish_bore_sight_azimuth_deg gauge
starlink_dish_bore_sight_azimuth_deg 3.60064435005188
# HELP starlink_dish_bore_sight_elevation_deg elevation in degrees
# TYPE starlink_dish_bore_sight_elevation_deg gauge
starlink_dish_bore_sight_elevation_deg 63.590576171875
# HELP starlink_dish_class_of_service User class of service
# TYPE starlink_dish_class_of_service gauge
starlink_dish_class_of_service{class_of_service="UNKNOWN_USER_CLASS_OF_SERVICE"} 1
# HELP starlink_dish_currently_obstructed Status of view of the sky
# TYPE starlink_dish_currently_obstructed gauge
starlink_dish_currently_obstructed 0
# HELP starlink_dish_dish_config Dish Config
# TYPE starlink_dish_dish_config gauge
starlink_dish_dish_config{level_dish_mode="TILT_LIKE_NORMAL",location_request_mode="LOCAL",power_save_mode="false",snow_melt_mode="AUTO"} 1
# HELP starlink_dish_dish_stow_requested stow requested
# TYPE starlink_dish_dish_stow_requested gauge
starlink_dish_dish_stow_requested 0
# HELP starlink_dish_downlink_throughput_bytes Amount of bandwidth in bytes per second download
# TYPE starlink_dish_downlink_throughput_bytes gauge
starlink_dish_downlink_throughput_bytes 42303.75
# HELP starlink_dish_eth_speed ethernet speed
# TYPE starlink_dish_eth_speed untyped
starlink_dish_eth_speed 1000
# HELP starlink_dish_first_nonempty_slot_seconds Seconds to next non empty slot
# TYPE starlink_dish_first_nonempty_slot_seconds gauge
starlink_dish_first_nonempty_slot_seconds 0
# HELP starlink_dish_fraction_obstruction_ratio Percentage of obstruction
# TYPE starlink_dish_fraction_obstruction_ratio gauge
starlink_dish_fraction_obstruction_ratio 0.09876814484596252
# HELP starlink_dish_gps_sats Number of GPS Sats.
# TYPE starlink_dish_gps_sats gauge
starlink_dish_gps_sats 14
# HELP starlink_dish_gps_valid GPS Status.
# TYPE starlink_dish_gps_valid gauge
starlink_dish_gps_valid 1
# HELP starlink_dish_info Running software versions and IDs of hardware
# TYPE starlink_dish_info gauge
starlink_dish_info{bootcount="22",country_code="CA",device_id="ut01000000-00000000-006d707e",hardware_version="rev3_proto2",manufactured_version="",software_version="87ed6ceb-4409-410a-b5f1-25886edf5966.uterm.release",utc_offset="-17999"} 1
# HELP starlink_dish_info_debug Debug Dish Info
# TYPE starlink_dish_info_debug gauge
starlink_dish_info_debug{count_by_reason="map[]",count_by_reason_delta="map[]",last_count="0",last_reason="BOOT_REASON_UNKNOWN"} 1
# HELP starlink_dish_is_dev Starlink Dish is Dev.
# TYPE starlink_dish_is_dev gauge
starlink_dish_is_dev 0
# HELP starlink_dish_is_hit Starlink Dish is Hit.
# TYPE starlink_dish_is_hit gauge
starlink_dish_is_hit 0
# HELP starlink_dish_location_info Dish Location Info (GPS/Starlink)
# TYPE starlink_dish_location_info gauge
starlink_dish_location_info{alt="70.97999999954364",lat="45.319438635558356",location_source="GPS",lon="-75.9437835"} 1
# HELP starlink_dish_mobility_class Dish mobility class
# TYPE starlink_dish_mobility_class gauge
starlink_dish_mobility_class{mobility_class="STATIONARY"} 1
# HELP starlink_dish_outage_did_switch Starlink Dish Outage Information
# TYPE starlink_dish_outage_did_switch gauge
starlink_dish_outage_did_switch 0
# HELP starlink_dish_outage_duration Starlink Dish Outage Information
# TYPE starlink_dish_outage_duration gauge
starlink_dish_outage_duration{cause="UNKNOWN",start_time="0"} 0
# HELP starlink_dish_pop_ping_drop_ratio Percent of pings dropped
# TYPE starlink_dish_pop_ping_drop_ratio gauge
starlink_dish_pop_ping_drop_ratio 0
# HELP starlink_dish_pop_ping_latency_seconds Latency of connection in seconds
# TYPE starlink_dish_pop_ping_latency_seconds gauge
starlink_dish_pop_ping_latency_seconds 0.03209523856639862
# HELP starlink_dish_prolonged_obstruction_duration_seconds Average in seconds of prolonged obstructions
# TYPE starlink_dish_prolonged_obstruction_duration_seconds gauge
starlink_dish_prolonged_obstruction_duration_seconds 2.9845340251922607
# HELP starlink_dish_prolonged_obstruction_interval_seconds Average prolonged obstruction interval in seconds
# TYPE starlink_dish_prolonged_obstruction_interval_seconds gauge
starlink_dish_prolonged_obstruction_interval_seconds 583.7838134765625
# HELP starlink_dish_prolonged_obstruction_valid Average prolonged obstruction is valid
# TYPE starlink_dish_prolonged_obstruction_valid gauge
starlink_dish_prolonged_obstruction_valid 0
# HELP starlink_dish_ready_state Dish ready states
# TYPE starlink_dish_ready_state gauge
starlink_dish_ready_state{aap="true",cady="true",l1l2="true",rf="true",scp="true",xphy="true"} 1
# HELP starlink_dish_scrape_duration_seconds Time to scrape metrics from starlink dish
# TYPE starlink_dish_scrape_duration_seconds gauge
starlink_dish_scrape_duration_seconds 0.161926935
# HELP starlink_dish_software_partitions_equal Starlink Dish Software Partitions Equal.
# TYPE starlink_dish_software_partitions_equal gauge
starlink_dish_software_partitions_equal 0
# HELP starlink_dish_up Was the last query of Starlink dish successful.
# TYPE starlink_dish_up gauge
starlink_dish_up 1
# HELP starlink_dish_uplink_throughput_bytes Amount of bandwidth in bytes per second upload
# TYPE starlink_dish_uplink_throughput_bytes gauge
starlink_dish_uplink_throughput_bytes 116165.4453125
# HELP starlink_dish_uptime_seconds Dish running time
# TYPE starlink_dish_uptime_seconds counter
starlink_dish_uptime_seconds 259142
# HELP starlink_dish_valid_seconds Unknown
# TYPE starlink_dish_valid_seconds counter
starlink_dish_valid_seconds 256210

Example Grafana Dashboard:

dashboard.json