Introduction
Project Name: Native Prometheus for Sia
Name of the organization or individual submitting the proposal: Bustedware LLC
Describe your project.
Sia data sources Grafana was presented to the community in early February 2024 based on forks of Sia’s main services, hostd, renterd, and walletd. The forked version of these services contain native Prometheus endpoints for use with the dashboards available from the sia grafana repo. Since early February work has already been performed for refactoring and merging into the official Sia repositories, having already completed hostd. Related PRs here:
- https://github.com/SiaFoundation/hostd/pull/300 - completed
- https://github.com/SiaFoundation/renterd/pull/1068 - in progress
- https://github.com/SiaFoundation/walletd/pull/56 - in progress
How does the projected outcome serve the Foundation’s mission of user-owned data?
This effort serves to supplement the Sia Grafana grant by making user-owned data more accessible. Having Prometheus endpoints natively integrated into hostd, renterd, and walletd services is more desirable since forks tend to lag a little behind features and bug fixes from the main repositories.
Grant Specifics
Amount of money requested and justification with a reasonable breakdown of expenses:
-
$24,000 for part time salary work over the next 6 months of both the Sia Grafana and refactor of forked code bases.
-
Q1 - Monitor for community feedback in Discord with questions related to Prometheus or Sia Grafana, fielding any questions along the way as well as integrating improvements based on the type of feedback being received.
- golang learning curve, sia code base learning curve for following proposed updates to sia core
- internal/prometheus.go is in every codebase hostd, renterd, walletd. this could potentially be moved to core? I don’t know anything about that codebase, so adding to core and updating hostd, renterd, walletd could be useful. Especially since there are many issues identified with the renterd PR already that need addressed which is present in hostd.
- similar for the writeResponse() method. move that into core and update hostd, renterd, walletd codebase
- PRs should be submitted for each service by the end of this quarter to start receiving feedback from the development team.
-
Q2 - Monitor for community feedback in Discord with questions related to Prometheus or Sia Grafana, fielding any questions along the way as well as integrating improvements based on the type of feedback being received.
- continue integrating
internal/prometheus.go
andwriteResponse()
into hostd, renterd, and walletd services. working through any issues identified by the development team in the PR - PRs should be merged for each service hostd, renterd, and walletd. All issues have been worked through for each repository
- continue integrating
What are the goals of this small grant?
-
Changes to any of the hostd, renterd, and walletd code base which may require an update with its Prometheus endpoint implementation and/or corresponding Sia Grafana dashboard panel
-
Bake in community feedback to the dashboard. Like we saw with hostd once the refactor work made it to the official hostd repository, various changes and improvements were made to the hostd dashboard as a result of community driven feedback. Sia Grafana also improved as a result as more community members started using it I found better ways for users to get started, such as changing the
siagrafana.json
schema to make it easier to configure all the required values before running any automation scripts -
I will also gain valuable knowledge from the various Sia code bases as well as learning to manage more complex Go lang projects like ones with external libraries such as Sia Core.
Potential risks that will affect the outcome of the project:
- If the community is not engaged with the dashboards or interested with Prometheus endpoints in general that will significantly hinder any ability to drive progress using insights gained from their perspectives.
- The ability to move the proposed implementation into sia core in time, get through any issues identified by dev team from subsequent PRs, is a lot to squeeze in for 6 months and 3 services accounting for my small golang learning curve and sia core learning curve.
Development Information
Will all of your project’s code be open-source?
Yes
Leave a link where code will be accessible for review.
https://github.com/SiaFoundation/hostd
https://github.com/SiaFoundation/renterd
https://github.com/SiaFoundation/walletd
Do you agree to submit monthly progress reports?
Yes
Contact info
Email: jbills@bustedware.com