-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
402 Payment Required #268
Comments
Thanks for reporting! cc @alsuren Did we hit the rate limit of stats collection? |
Yeah, vercel said we hit our http handler time limit. We could probably talk to vercel and get that bumped. |
Thank you! That's good to hear! |
Seems to be working again, closing. Thanks! Feel free to reopen if you want to use this issue as a reminder to ask them to bump the limit if you haven't yet or anything. |
Also ran into this problem. A clipping of logs that you may find useful:
(c) https://github.com/kamu-data/kamu-cli/actions/runs/10579077977/job/29310649600?pr=795#step:6:32 |
Thanks, this is simply because we are hitting the rate limit of vercel It's probably because cargo-binstall now reports for available every target on the machine. |
It seems like it's causing it to build from source instead of downloading a binary, is this expected? I haven't looked at the code yet, just you calling it "reporting" makes me wonder if it's something we could skip if it fails but still download a binary. |
No it isn't, the message is a bit confusing, but a failing telemetry does not have any influence over resolution. In this case it's due to a timeout, because binstall reaches the rate limit. Providing a github-token would fix it. |
Ah, so I'm guessing I was seeing long compile times were just because there was a new version of cargo leptos so there wasn't a binary generated yet. I had assumed the warning was related like it couldn't let quickinstall know of the new version to build or something. I'll add a note to the issue description to let users know it's just telemetry and any longer build times are unrelated. |
what is worse than this issue, is that even getting the binary from source does not work either
|
In this case you could either
Our default timeout is probably a bit too large, we should set it to something smaller, i.e. 30s |
@NobodyXu thank you, it worked pretty well after setting a |
Possibly a dumb question, as I'm not super familiar with exactly the kind of metrics that's collected via the vercel app. But since all downloads happen via GitHub releases, download counts can at least be fetched via GitHub's API for each release. Could be done as a scheduled GitHub action that just iterates over all releases and gathers the artifact download counts. admittedly with the number of releases you have, it could be a quite slow job to avoid hitting API rate limits. ¯\_(ツ)_/¯... Just throwing it out there incase it might be useful and/or spark some ideas. |
Hmmm that's an interesting idea. What quickinstall needs though, is the software to be build that we aren't providing yet, and then build and provide pre-built for it. We have a script for fetching popular crates from libs.rs, but it's not used in ci https://github.com/cargo-bins/cargo-quickinstall/blob/main/get-popular-crates.sh I suppose we could use that instead |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry for the delay in looking at this. Looks like they paused my account a couple of weeks ago for repeatedly going over the free tier allowance. I assume this is because of a change in how spammy cargo-binstall is with its stats? I have sent $20 in vercel's direction to unblock things. The price appears to be per-user-per-month rather than usage-related. This means that if I want to let anyone else help with the ops side of a stats server on vercel, it would be another $20/month per user? This does not fill me with joy. I will send a link to this thread to their support people and see whether they have an open source tier or something. In the next month, I think we need to do at least one of the following:
|
That's definitely doable in cargo-binstall |
For the stats reporting part, I'm also working on using crates-io daily db snapshot. I'm currently trying to put up a python script, using polars to do it. Since it's all csv and we only care about top n popular binary crates, it should be definitely doable. |
Using data from https://static.crates.io/db-dump.tar.gz I was able to write a python script for getting top 2000 popular binary crates: # execute this in 20xx-xx-xx-xxxxxx/data/
import polars as pl
(
pl.scan_csv("crate_downloads.csv")
.join(pl.scan_csv("crates.csv").select("id", "name"), left_on="crate_id", right_on="id")
.join(pl.scan_csv("default_versions.csv"), on="crate_id")
.join(
pl.scan_csv("versions.csv").select("id", "crate_id", "yanked", "bin_names"),
left_on=("crate_id", "version_id"),
right_on=("crate_id", "id"),
)
.filter(pl.col("bin_names") != "{}", pl.col("yanked") == "f")
.sort(by="downloads", descending=True)
.select("name")
.head(2000)
.collect(streaming=True)
) It can be combined with a I think it'd be a pretty good replacement for existing telemetry? |
cc @alsuren how does that look to you? It's true that crates-io does not collect target info, so perhaps we should just build it for every target we support. |
Looks good. I will try rewriting a bunch of this bash nonsense in python rather than rust. The crates.io dump is a bit huge, so I will make a weekly cronjob to dump the Sunday somewhere. How do we feel about using uv for managing our python environment? I have had some success using it in another you project of mine: https://github.com/alsuren/sixdofone/pull/8/files |
I think daily cronjob makes more sense? The crates.io dump is updated every day, with it we could avoid hitting crates.io API so often.
Using uv makes sense for me, though I'd like dependabot to be enabled it, and having some CI to ensure it works. |
quickinstall telemtry is overloaded cargo-bins/cargo-quickinstall#268, it only needs report when the pre-built is not available in upstream. Signed-off-by: Jiahao XU <[email protected]>
* Send telemetry report to quickinstall if no pre-built is found quickinstall telemtry is overloaded cargo-bins/cargo-quickinstall#268, it only needs report when the pre-built is not available in upstream. Signed-off-by: Jiahao XU <[email protected]> * Fix resolve.rs And optimize sending telemtry: Remove unnecessary `<Arc as Clone>::clone` Signed-off-by: Jiahao XU <[email protected]> * Fix fmt of resolve.rs Signed-off-by: Jiahao XU <[email protected]> --------- Signed-off-by: Jiahao XU <[email protected]>
Edit: This warning is just regarding telemetry and any longer build times are unrelated. For me it was building from source due to a new version of the crate just being released.
Getting this warning just now in our CI
It then builds it from source. It worked earlier today without this error.
The text was updated successfully, but these errors were encountered: