1
0
Fork 0

feat: add Chia support for Flexpool (#8)

- Update Telegraf to 1.19.2
- Use Flexpool API v2
- Update Flexpool miner, pool and worker dashboards accordingly
- Add COIN environment variable for Telegraf ("eth" or "xch" supported)
- Add coin variable in Grafana dashboards

BREAKING CHANGE: measurement names change between API v1 and v2 so the
Grafana dashboards must be updated accordingly to use new names.
Values in the past will not be shown by the updated dashboards.

Signed-off-by: Julien Riou <julien@riou.xyz>
This commit is contained in:
Julien Riou 2021-08-18 10:52:45 +02:00
parent 1bdcac5a88
commit 51374e9a92
No known key found for this signature in database
GPG key ID: FF42D23B580C89F7
10 changed files with 3393 additions and 1072 deletions

View file

@ -18,6 +18,26 @@
from = "ETH"
to = "USD"
[[inputs.http]]
name_override = "currencies"
urls = ["https://api.coingecko.com/api/v3/simple/price?ids=chia&vs_currencies=eur"]
data_format = "json"
tagexclude = ["url"]
json_query = "chia"
[inputs.http.tags]
from = "XCH"
to = "EUR"
[[inputs.http]]
name_override = "currencies"
urls = ["https://api.coingecko.com/api/v3/simple/price?ids=chia&vs_currencies=usd"]
data_format = "json"
tagexclude = ["url"]
json_query = "chia"
[inputs.http.tags]
from = "XCH"
to = "USD"
[[processors.rename]]
namepass = ["currencies"]
[[processors.rename.replace]]

View file

@ -1,51 +1,49 @@
[[inputs.http]]
name_override = "flexpool_miner_balance"
urls = ["https://flexpool.io/api/v1/miner/${MINER_ADDRESS}/balance"]
urls = ["https://api.flexpool.io/v2/miner/balance?coin=${COIN}&address=${MINER_ADDRESS}"]
data_format = "json"
tagexclude = ["url"]
[inputs.http.tags]
miner = "${MINER_ADDRESS}"
[[inputs.http]]
name_override = "flexpool_miner_stats"
urls = ["https://flexpool.io/api/v1/miner/${MINER_ADDRESS}/stats"]
data_format = "json"
fieldpass = ["*hashrate", "*shares"]
tagexclude = ["url"]
json_query = "result"
[inputs.http.tags]
miner = "${MINER_ADDRESS}"
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_miner_stats"
urls = ["https://api.flexpool.io/v2/miner/stats?coin=${COIN}&address=${MINER_ADDRESS}"]
data_format = "json"
fieldpass = ["*Hashrate", "*Shares"]
tagexclude = ["url"]
json_query = "result"
[inputs.http.tags]
miner = "${MINER_ADDRESS}"
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_miner_workers"
urls = ["https://flexpool.io/api/v1/miner/${MINER_ADDRESS}/workers"]
urls = ["https://api.flexpool.io/v2/miner/workers?coin=${COIN}&address=${MINER_ADDRESS}"]
data_format = "json"
tagexclude = ["url"]
fieldpass = ["*hashrate", "*shares"]
fieldpass = ["*Hashrate", "*Shares"]
tag_keys = ["name"]
json_query = "result"
[inputs.http.tags]
miner = "${MINER_ADDRESS}"
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_miner_paid"
urls = ["https://flexpool.io/api/v1/miner/${MINER_ADDRESS}/totalPaid"]
data_format = "json"
tagexclude = ["url"]
[inputs.http.tags]
miner = "${MINER_ADDRESS}"
[[inputs.http]]
name_override = "flexpool_miner_daily_revenue_estimation"
urls = ["https://flexpool.io/api/v1/miner/${MINER_ADDRESS}/estimatedDailyRevenue"]
urls = ["https://api.flexpool.io/v2/miner/paymentsStats?coin=${COIN}&address=${MINER_ADDRESS}"]
data_format = "json"
tagexclude = ["url"]
json_query = "result"
[inputs.http.tags]
miner = "${MINER_ADDRESS}"
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_miner_payments"
urls = ["https://flexpool.io/api/v1/miner/${MINER_ADDRESS}/payments/?page=0"]
urls = ["https://api.flexpool.io/v2/miner/payments?coin=${COIN}&address=${MINER_ADDRESS}&page=0"]
data_format = "json"
tagexclude = ["url"]
json_query = "result.data"
@ -53,3 +51,4 @@
json_time_key = "timestamp"
[inputs.http.tags]
miner = "${MINER_ADDRESS}"
coin = "${COIN}"

View file

@ -1,18 +1,22 @@
[[inputs.http]]
name_override = "flexpool_pool_block_count"
urls = ["https://flexpool.io/api/v1/pool/blockCount"]
name_override = "flexpool_pool_blocks_chart"
urls = ["https://api.flexpool.io/v2/pool/blocksChart?coin=${COIN}"]
data_format = "json"
tagexclude = ["url"]
json_query = "result"
json_time_format = "unix"
json_time_key = "timestamp"
[inputs.http.tags]
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_pool_blocks"
urls = [
"https://flexpool.io/api/v1/pool/blocks/?page=0",
"https://flexpool.io/api/v1/pool/blocks/?page=1",
"https://flexpool.io/api/v1/pool/blocks/?page=2",
"https://flexpool.io/api/v1/pool/blocks/?page=3",
"https://flexpool.io/api/v1/pool/blocks/?page=4"
"https://api.flexpool.io/v2/pool/blocks?coin=${COIN}&page=0",
"https://api.flexpool.io/v2/pool/blocks?coin=${COIN}&page=1",
"https://api.flexpool.io/v2/pool/blocks?coin=${COIN}&page=2",
"https://api.flexpool.io/v2/pool/blocks?coin=${COIN}&page=3",
"https://api.flexpool.io/v2/pool/blocks?coin=${COIN}&page=4"
]
data_format = "json"
tagexclude = ["url"]
@ -20,35 +24,38 @@
json_time_format = "unix"
json_time_key = "timestamp"
tag_keys = ["miner"]
[inputs.http.tags]
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_pool_hashrate"
urls = ["https://flexpool.io/api/v1/pool/hashrate"]
urls = ["https://api.flexpool.io/v2/pool/hashrate?coin=${COIN}"]
data_format = "json"
tagexclude = ["url"]
json_query = "result"
[inputs.http.tags]
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_pool_miners_online"
urls = ["https://flexpool.io/api/v1/pool/minersOnline"]
name_override = "flexpool_pool_miners_count"
urls = ["https://api.flexpool.io/v2/pool/minerCount?coin=${COIN}"]
data_format = "json"
tagexclude = ["url"]
[inputs.http.tags]
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_pool_workers_online"
urls = ["https://flexpool.io/api/v1/pool/workersOnline"]
name_override = "flexpool_pool_workers_count"
urls = ["https://api.flexpool.io/v2/pool/workerCount?coin=${COIN}"]
data_format = "json"
tagexclude = ["url"]
[[inputs.http]]
name_override = "flexpool_pool_average_luck_round_time"
urls = ["https://flexpool.io/api/v1/pool/avgLuckRoundtime"]
data_format = "json"
tagexclude = ["url"]
json_query = "result"
[inputs.http.tags]
coin = "${COIN}"
[[inputs.http]]
name_override = "flexpool_pool_current_luck"
urls = ["https://flexpool.io/api/v1/pool/currentLuck"]
urls = ["https://api.flexpool.io/v2/pool/currentLuck?coin=${COIN}"]
data_format = "json"
tagexclude = ["url"]
[inputs.http.tags]
coin = "${COIN}"