Changes to the project.
- Support changing bind address with
METRICS_ADDR
environment variable (#11).
0.5.0 - 2020-02-10
- Avoid crash on
socket.timeout
errors. Retry the request in that case.
- Switch to python 3.8 and alpine for base image.
- Update docker container to use
nobody
instead of defaultroot
account. - Update shebang to use PATH (#6).
- Support loading bitcoin config from
BITCOIN_CONF_PATH
environment variable (#7). - Reuse the
Proxy
RPC client to avoid repeatedly looking for config file. - Config file examples in the docker-compose file.
- Retry on
ConnectionError
, not justConnectionRefusedError
(#9). - Pass
TIMEOUT
environment value to bitcoin client as well as retry library. - Rely on python-bitcoinlib to handle bitcoin config location detection (#10).
0.4.0 - 2020-01-05
- New counter metric
bitcoin_exporter_process_time_total
for time spent refreshing the metrics. - New
bitcoin_verification_progress
metric to track chain verification progress (#5). - Use
logging
for output messages and improve level of output for errors (#4). - Add docker-compose config with basic setup for testing regressions.
- Retry failed RPC calls with exponential timeout using riprova and keep track of retry exceptions using new
bitcoin_exporter_errors
metric. - Improved error message when credentials are incorrect.
- Make smartfee metrics configurable using
SMARTFEE_BLOCKS
environment variable. - Update script shebang to use PATH (#6)
- Prefer the
$HOME/.bitcoin/bitcoin.conf
file overBITCOIN_RPC_HOST
,BITCOIN_RPC_USER
, ... if it exists (#7). - Add pre-commit hooks for catching style and code issues.
- Added type annotations and no longer attempting to support less than Python 3.7.
- Avoid crashing on node restart by ignoring
bitcoin.rpc.InWarmupError
exception. - Prevent KeyError when smartfee values are not calculable (#2).
- Fix duplicate sleep call introduced in 5d83f9e (#3).
0.3.0 - 2019-11-25
- Include explicit 3-clause BSD LICENSE.
- New
bitcoin_latest_block_weight
andbitcoin_latest_block_height
metrics using value from getblock. - Include my rudimentary dashboard.
- Update
bitcoin_latest_block_txs
to use thenTx
value returned by getblock instead oflen(tx)
. No observed change in value.
- Dead code cleanup (
find_bitcoin_cli
andBITCOIN_CLI_PATH
).
0.2.0 - 2019-10-20
- New metrics from getmemoryinfo with the
bitcoin_meminfo_
prefix. bitcoin_size_on_disk
metric with data from getblockchaininfo.
- Move changelog to separate file.
- Make binding port configurable using
METRICS_PORT
environment variable.
- Fix example commands in README.
- Handle SIGTERM gracefully to avoid later SIGKILL.
0.1.0 - 2019-07-27
Initial release of project. Changes are relative to the bitcoin-monitor.md
gist, which was commited
as-is in the first commit.
- Packaged for docker and modified to pull settings from environment variables.
bitcoin_hashps_1
andbitcoin_hashps_neg1
for estimated hash rates associated with only the last block and for all blocks with the same difficulty.bitcoin_est_smart_fee_*
metrics for estimated fee per kilobyte for confirmation within a number of blocks.bitcoin_latest_block_value
for the transaction value of the last block.bitcoin_server_version
andbitcoin_protocol_version
to track upgrades of the bitcoin server.bitcoin_mempool_usage
metric.bitcoin_ban_created
andbitcoin_banned_until
to track peer bans.
- Use RPC calls using python-bitcoinlib instead of relying on the
bitcoin-cli
binary. - Remove need for
txindex=
to be set on the bitcoin server. Transactions are now pulled using thegetblock
call by settingverbosity=2
.