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.delayrepresents network latency. A high number might imply a busy network or unfair leaders.
forks.micro & gen_stats.microblocks.total
forks.micro & gen_stats.microblocks.totalforks.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
Was this helpful?