IRIS Hub Monitor

Introduction

IRIShub can report and serve the Prometheus metrics, which can be consumed by Prometheus collector(s).

This functionality is disabled by default.

To enable the Prometheus metrics, set prometheus = true in your config file(config.toml). Metrics will be served under /metrics on 26660 port by default. This port can be changed in the config file (prometheus_listen_addr = ":26660").

Metrics

Application metrics, namespace: iris

NameTypeTagsDescription
module_stake_bonded_tokenGaugevalidator_addressTotal bonded token by validator
module_stake_loosen_tokenGaugeTotal loose tokens
module_stake_burned_tokenGaugeTotal burned token
module_stake_slashed_tokenCountervalidator_addressTotal slashed token by validator
module_stake_jailedGaugevalidator_addressJailed status by validator, either 0 (not jailed) or 1 (jailed)
module_stake_powerGaugevalidator_addressVoting power by validator
module_upgrade_upgradeGaugeWhether new software needs to be installed, either 0 (no) or 1 (yes)
module_upgrade_signalGaugevalidator_address, versionWhether validator have run the new version software, either 0 (no) or 1 (yes)
module_service_active_requestsGaugeNumber of active requests
module_gov_parameterGaugeparameter_keyParameter of governance
module_gov_proposal_statusGaugeproposal_idStatus of proposal, 0:DepositPeriod 1:VotingPeriod 2:Pass 3:Reject 4:Other
module_gov_voteGaugeproposal_id, validator_addressValidator vote result of a proposal, 0:Yes 1:No 2:NoWithVeto 3:Abstain
module_distribution_community_taxGaugeheightCommunity tax accumulation
v0_invariant_failureCountererrorInvariant failure stats

Consensus metrics, namespace: tendermint

NameTypeTagsDescription
consensus_heightGaugeHeight of the chain
consensus_failureCounterheightConsensus failure
consensus_validatorsGaugeNumber of validators
consensus_validators_powerGaugeTotal voting power of all validators
consensus_missing_validatorsGaugeNumber of validators who did not sign
consensus_missing_validators_powerGaugeTotal voting power of the missing validators
consensus_byzantine_validatorsGaugeNumber of validators who tried to double sign
consensus_byzantine_validators_powerGaugeTotal voting power of the byzantine validators
consensus_block_interval_secondsHistogramTime between this and last block (Block.Header.Time) in seconds
consensus_roundsGaugeNumber of rounds
consensus_num_txsGaugeNumber of transactions
consensus_block_partsCounterpeer_idNumber of blockparts transmitted by peer
consensus_latest_block_heightGauge/status sync_info number
consensus_fast_syncingGaugeEither 0 (not fast syncing) or 1 (syncing)
consensus_total_txsGaugeTotal number of transactions committed
consensus_block_size_bytesGaugeBlock size in bytes
p2p_peersGaugeNumber of peers node's connected to
p2p_peer_receive_bytes_totalCounterpeer_idNumber of bytes received from a given peer
p2p_peer_send_bytes_totalCounterpeer_idNumber of bytes sent to a given peer
p2p_peer_pending_send_bytesGaugepeer_idNumber of pending bytes to be sent to a given peer
p2p_num_txsGaugepeer_idNumber of transactions submitted by each peer_id
mempool_sizeGaugeNumber of uncommitted transactions
mempool_tx_size_bytesHistogramTransaction sizes in bytes
mempool_failed_txsCounterNumber of failed transactions
mempool_recheck_timesCounterNumber of transactions rechecked in the mempool
state_block_processing_timeHistogramTime between BeginBlock and EndBlock in ms
state_recheck_timeHistogramTime cost on recheck in ms
state_app_hash_conflictCounterproposer, heightApp hash conflict error

IRIShub metrics also contains tendermint metrics, Visit tendermint metricsopen in new window for more information.

Start Monitor

This is an example for getting started with the IRIShub Monitor by using docker.

Edit Prometheus config file

You can download the example prometheus.ymlopen in new window to the ~/volumes/prometheus/ and add a job under the scrape_configs of the prometheus.yml:

      - job_name: irishub
          static_configs:
          - targets: ['localhost:26660']
            labels:
              instance: myvalidator

TIP

The value of targets is the prometheus_listen_addr in your config.toml

Start Prometheus

docker run -d --name=prometheus -p 9090:9090 -v ~/volumes/prometheus:/etc/prometheus prom/prometheus

You should be able to browse to a status page about prometheus at http://localhost:9090open in new window

Start Grafana

docker run -d --name=grafana -p 3000:3000 grafana/grafana

You can visit http://localhost:3000/open in new window to open grafana and create your own dashboard.

TIP

The default username and password are both admin. We strongly recommend immediately changing your username & password after login.

A Grafana dashboard compatible with all the cosmos-sdk and tendermint based blockchains: cosmos-dashboardopen in new window