danopstech / starlink_exporter Goto Github PK
View Code? Open in Web Editor NEW๐ก Prometheus exporter that exposes metrics from SpaceX Starlink Dish
License: GNU General Public License v3.0
๐ก Prometheus exporter that exposes metrics from SpaceX Starlink Dish
License: GNU General Public License v3.0
Is your feature request related to a problem? Please describe.
I tried running your pre-build Docker image on a Raspberry Pi... but it unfortunately didn't work.
Describe the solution you'd like
It would be really amazing if you could use the GitHub Actions BuildX action to build a cross-platform Docker image (see an example in action here: https://github.com/geerlingguy/docker-debian10-ansible/blob/master/.github/workflows/build.yml#L53
Describe alternatives you've considered
I could set up an X86 server instead, but that makes me sad. I could also build my own Docker image based on an ARM64 base image instead, but that means I have to basically maintain a forked image.
Additional context
I loved your post on Reddit, and have been trying to beef up my own in-home monitoring. I'd love to have a dashboard like yours set up so I can have some really good data available for my full Starlink review in a few weeks.
Hello, I'm running an ancient rasberry pi 2 which only supports the armv6 instruction set. I'm really excited about using your grafana dashboard and the exporter.
Could you do a build for Linux armv6, or else give me some pointers on setting up my go environment so I can build it myself?
Thanks!
Is your feature request related to a problem? Please describe.
I'm looking to include Roaming as a statistic in the exporter. It is not presently being recorded in the .pb.go
files and given those are generated files, I don't want to manually update them.
Describe the solution you'd like
Could you provide a quick set of instructions or a rough guide on how to source the proto
files used to generate the spacex/api/device
files?
Is your feature request related to a problem? Please describe.
I'd like to use this exporter data elsewhere, and parsing the prometheus lines is not as easy as JSON
Describe the solution you'd like
/metrics_json -> same data as JSON
Potential solution:
https://gist.github.com/ionutvilie/6ff915d19eaa3116b9b796463276c6dd
I can possibly do a PR, but since this is all docker-ized and integrated and such, It's not super straightforward.
Thanks for this project- looks great in the docs. But I'm having trouble getting the exporter to start.
FATA[0003] could not start exporter: error creating underlying gRPC connection to starlink dish: context deadline exceeded
The mobile app is working on the same network, and I've tried specifying the address manually. Any thoughts? Thx!
Raspberry Pi 4 Model B Rev 1.4
Raspbian GNU/Linux 11 (bullseye)
ARMv7 Processor rev 3 (v7l)
Describe the bug
Since the latest Dishy update earlier this morning to 9f4d05a4-65b6-411b-ba6b-8dd91c64e02c.uterm.release
the exporter is unable to collect data via gRPC.
Running in a standard Starlink setup without further parameters it successfully gets the dish ID
time="2021-06-24T22:15:59+02:00" level=info msg="dish id: ut01000000-00000000-00013135" source="main.go:28"
However, each time /metrics of the exporter is queried, it returns the following:
# HELP starlink_dish_up Was the last query of Starlink dish successful.
# TYPE starlink_dish_up gauge
starlink_dish_up 0
The console/log shows the following error:
time="2021-06-24T22:15:59+02:00" level=error msg="failed to collect context from dish: rpc error: code = PermissionDenied desc = " source="exporter.go:290"
It worked fine with the previous release a4908729-5051-4d3b-aacc-446ef9b26cdc.uterm.release
.
Data is still available fine when accessing the web UI normally.
I didn't have time yet to look further into it, so sorry for the somewhat unqualified bug ticket.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The extractor to collect/poll the required metrics.
Screenshots
Not applicable, see log excerpt above.
Additional context
Add any other context about the problem here.
New fields added to getDishStatus, would be good to have collected
"avgProlongedObstructionDurationS": 0.905022,
"avgProlongedObstructionIntervalS": 459.4299,
"boresightAzimuthDeg": 0.587069,
"boresightElevationDeg": 67.196815
Describe the bug
Some field are reporting 0 or 1. They are uptime, cell ID, gateway ID, Satellite ID, The state is shown "Unknown" and the DishID variable doesn't populate. Some of the data is populating.
I just setup Prometheus and starlink_exporter today for the first time. Both docker containers.
Describe the bug
starlink_dish_uplink_throughput_bytes and starlink_dish_downlink_throughput_bytes are calling API that returns unit in bits
Expected behavior
If we want to keep the same metric names, starlink_dish_uplink_throughput_bytes and starlink_dish_downlink_throughput_bytes, we probably should divide the return values from API by 8. Otherwise, we should consider renaming them to starlink_dish_uplink_throughput_bits and starlink_dish_downlink_throughput_bits
How do you update which metrics are scraped? I'd like to track how often and how long the heater is running.
When trying to run the starlink_exporter in Docker Desktop, it should allow me to supply the port 9817 (see screenshot)**
Goto Docker desktop select image to load/run, select run options (see screenshot)
Using version danopstech/starlink_exporter:v0.0.5
Mac: Apple M3 Max
Sonoma 14.4.1
Docker Desktop 4.28.0 (139021)
The Prometheus image, Grafana image and the Blackbox image are all working correctly.
I have noticed that the Grafana app when accessed from localhost:3000 does not let me access the dashboards in the following location: /Users/**********/Documents/GitHub/starlink/config/grafana/provisioning/dashboards
Not sure if there is any activity on this app these days, but it looked like an interesting subject to persue.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.