Changes to the project.
BREAKING CHANGE: The bitcoin_ban_created
and bitcoin_banned_until
metrics are now disabled by default. Re-enable,
if desired, using BAN_ADDRESS_METRICS=true
.
- Update docker base image to be fully qualifed for better podman support (#25)
- Add metric for minimum fee (#31)
- Upgrade to Python 3.12
- Disable per-address metrics for banned peers. Add
bitcoin_banned_peers
metric for summary information. (#13)
0.7.0 - 2022-01-14
BREAKING CHANGE: Default port number has changed to 9332! Use METRICS_PORT=8334
to use old port.
- Add
bitcoin_rpc_active
stat for number of active RPC calls. - Add
bitcoin_txcount
stat for total number of transactions since the genesis block. - Support for Bitcoin Cash nodes (#22).
- Default port changed from
8334
to9332
to avoid conflicts with Bitcoin Tor port. - Update metrics on HTTP request, instead of timer (#12).
- Improve performance of block statistics.
- The number of blocks for the
bitcoin_hashps
metrics is now configurable viaHASHPS_BLOCKS
(#22).
0.6.0 - 2021-06-05
- Support changing bind address with
METRICS_ADDR
environment variable (#11). - Add
requirements.txt
file. - Set default
bad_reason
to "manually added" to support Bitcoin Core 0.20.1 (#16). - Remove premature URL encoding of bitcoind rpc credentials (#18).
- New metrics for Bitcoin Core 0.21.0.
- Support for ARM docker image builds via
buildx
.
- Fix port number in README (#17).
- Modify type annotations to run on python 3.5.
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
.