Network Monitoring
This document describes how to configure network monitoring within the node provided by aemon
application.
Configuration
By default monitoring is disabled. To turn it on monitoring.publisher.pubkey
and monitoring.active = true
need to be setup. To start posting transaction setup monitoring.publisher.autostart
to true
.
To post transactions account's public and private key is needed. For online processing only public key needs to be configured. Offline post-processing can be done by filtering transaction by publisher public key.
Metrics configuration
Monitoring uses statsd backend provided by apps/aecore/src/aec_metrics.erl
. See metrics metrics.*
configuration keys in apps/aeutils/priv/aeternity_config_schema.json
Metrics
Each metric uses ae.epoch.aemon.
prefix.
confirmation.delay
histogram
Number of keyblock created before signing transaction
forks.micro.count
counter
Count of observed micro-forks
forks.micro.height
histogram
Height difference of observed micro-forks
gen_stats.microblocks.total
histogram
Number of microblocks in a generation
gen_stats.tx.monitoring
histogram
Number of monitoring transactions in a generation
gen_stats.tx.total
histogram
Number of transactions in a generation
publisher.balance
gauge
Publisher balance
publisher.post_tx.max_adjustment
counter
Transaction posting error:
publisher.post_tx.nonce_too_high
counter
Transaction posting error:
publisher.post_tx.nonce_too_low
counter
Transaction posting error:
publisher.post_tx.success
counter
Successful transaction posts
publisher.queue.size
histogram
Number of transactions posted but not signed on chain
publisher.queue.ttl_expired
histogram
Number of transactions with expired ttl
block.propagation_time.key
histogram
Time until key-blocks reached this node in milliseconds
block.propagation_time.micro
histogram
Time until micro-blocks reached this node in milliseconds
block.time_since_prev.key
histogram
Time between key-blocks in milliseconds
block.time_since_prev.micro
histogram
Time between micro-blocks in milliseconds
block.tx.total.micro
histogram
Number of transactions in a microblock
block.gas.total.micro
histogram
Gas used per microblock
block.gas.per_tx.micro
histogram
Gas used per transaction in a microblock
block.size.per_tx.micro
histogram
Size of transactions in a microblock in bytes
chain.top.difficulty
gauge
Difficulty of the top block
How to read metrics
confirmation.delay
confirmation.delay
represents network latency. A high number might imply a busy network or unfair leaders.
forks.micro
& gen_stats.microblocks.total
forks.micro
& gen_stats.microblocks.total
forks.micro
represents the length of microfork. It shows a minimum number observed by monitoring, not an exact one. Based on behaviour observed in mainnet in the first half of 2019, roughly 33% of microblocks transactions are rewritten to the next generation. Use gen_stats.microblocks.total
as a reference.
gen_stats.microblocks.total
and gen_stats.tx.{monitoring,total}
gen_stats.microblocks.total
and gen_stats.tx.{monitoring,total}
Statistic metrics can be used to measure network saturation
publisher.post_tx.*
publisher.post_tx.*
Metrics can be used to monitor mempool's transaction propagation. When publisher.post_tx.nonce_too_high
is preset you might want to check mempool.nonce_offset
configuration/
publisher.queue.*
publisher.queue.*
For further network transaction propagation investigation. All transactions accepted by mempool are tracked by *.size
. Over time it should correlate with gen_stats.tx.monitoring
.
*.ttl_expired
might imply low transaction fee or busy network.
Last updated