Skip to content

Instantly share code, notes, and snippets.

@CallMeFoxie
Created March 23, 2021 20:04
Show Gist options
  • Save CallMeFoxie/901a722d9afc3d3e774247781c6657d6 to your computer and use it in GitHub Desktop.
Save CallMeFoxie/901a722d9afc3d3e774247781c6657d6 to your computer and use it in GitHub Desktop.
Gridcoin prometheus metrics
#!/bin/bash
difficulty=$(gridcoinresearchd getmininginfo | jq .difficulty.current)
tts=$(gridcoinresearchd getmininginfo | jq '."time-to-stake_days"')
pending=$(gridcoinresearchd getmininginfo | jq .BoincRewardPending)
blocks=$(gridcoinresearchd getmininginfo | jq .blocks)
echo "# TYPE gridcoin_network_difficulty gauge"
echo "gridcoin_network_difficulty $difficulty"
echo "# TYPE gridcoin_tts_days gauge"
echo "gridcoin_tts_days $tts"
echo "# TYPE gridcoin_reward_pending gauge"
echo "gridcoin_reward_pending $pending"
echo "# TYPE gridcoin_network_block gauge"
echo "gridcoin_network_block $blocks"
echo "# TYPE gridcoin_peers_count gauge"
while read -r c v; do
echo "gridcoin_peers_count{version=\"$v\"} $c"
done < <(gridcoinresearchd getpeerinfo | jq .[].subver -r | cut -d":" -f2 | cut -d'/' -f1 | sort | uniq -c)
laststake_secs=$(gridcoinresearchd getlaststake | jq .elapsed_seconds)
laststake_mint=$(gridcoinresearchd getlaststake | jq .mint)
echo "# TYPE gridcoin_laststake_seconds gauge"
echo "gridcoin_laststake_seconds $laststake_secs"
echo "# TYPE gridcoin_laststake_mint gauge"
echo "gridcoin_laststake_mint $laststake_mint"
@cyrossignol
Copy link

cyrossignol commented Mar 23, 2021

May I suggest...

gridcoinresearchd getmininginfo | jq -r '"
# TYPE gridcoin_network_difficulty
gridcoin_network_difficulty \(.difficulty.current)
# TYPE gridcoin_tts_days gauge
gridcoin_tts_days \(."time-to-stake_days")
# TYPE gridcoin_reward_pending gauge
gridcoin_reward_pending \(.BoincRewardPending)
# TYPE gridcoin_network_block
gridcoin_network_block \(.blocks)
"'

echo '# TYPE gridcoin_peers_count gauge'
gridcoinresearchd getpeerinfo | jq -r 'group_by(.subver)
  | map("gridcoin_peers_count{version=\"\(.[0].subver | capture("(?<v>[0-9.]+)").v)\"} \(length)")
  | join("\n")'

gridcoinresearchd getlaststake | jq -r '"
# TYPE gridcoin_laststake_seconds gauge
gridcoin_laststake_seconds \(.elapsed_seconds)
# TYPE gridcoin_laststake_mint gauge
gridcoin_laststake_mint \(.mint)
"'

...to squeeze out more cycles for ol' BOINC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment