Re:Fly.io: The reclaimer of Heroku's magic
by TJSomething on Monday May 16, 2022 @02:04AM
(#31394032)
Yup. Not too hard. This outputs the current bandwidth in gigabytes when you pass your app name.
#!/usr/bin/env bash
set -euo pipefail
QUERY=$(cat <<EOF
{
"variables":{
"app":"$1",
"start":"$(date +%Y-%m)",
"end":"$(date -d "$(date +%Y%m01) +1 month -1 day" +%Y-%m-%d)"
},
"query":"query (\$app: String!, \$start: ISO8601DateTime!, \$end: ISO8601DateTime!) { app(name: \$app) { organization { billables(startDate: \$start, endDate: \$end) { edges { node { app { id } category quantity } } } } } } "
}
EOF
)
curl https://api.fly.io/graphql \
-H "Authorization: Bearer $(fly auth token)" \
-H 'content-type: application/json' \
--compressed \
-X POST \
--data-raw "$QUERY" \
--silent |
jq '[.data.app.organization.billables.edges[].node | select(.app.id == "'"$1"'" and .category == "data_out") | .quantity] | add'
Cloudflare shouldn't restrict media (video, images, and audio) from its unlimited bandwidth promise for Workers and R2 (though, ToS doesn't yet reflect that).
https://news.ycombinator.com/item?id=28682885
> But the reality is – having an unlimited bandwidth promise is perfect for for a fire and forget blog site
I think, an auto flyctl pause -a <myapp> when myapp exceeds $x in charges (with an auto-resume when the billing rolls over) may serve as a viable interim solution. May be this is already possible with fly.io's graphql api?