# 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

Name Type Tags Description
module_stake_bonded_token Gauge validator_address Total bonded token by validator
module_stake_loosen_token Gauge Total loose tokens
module_stake_burned_token Gauge Total burned token
module_stake_slashed_token Counter validator_address Total slashed token by validator
module_stake_jailed Gauge validator_address Jailed status by validator, either 0 (not jailed) or 1 (jailed)
module_stake_power Gauge validator_address Voting power by validator
module_upgrade_upgrade Gauge Whether new software needs to be installed, either 0 (no) or 1 (yes)
module_upgrade_signal Gauge validator_address, version Whether validator have run the new version software, either 0 (no) or 1 (yes)
module_service_active_requests Gauge Number of active requests
module_gov_parameter Gauge parameter_key Parameter of governance
module_gov_proposal_status Gauge proposal_id Status of proposal, 0:DepositPeriod 1:VotingPeriod 2:Pass 3:Reject 4:Other
module_gov_vote Gauge proposal_id, validator_address Validator vote result of a proposal, 0:Yes 1:No 2:NoWithVeto 3:Abstain
module_distribution_community_tax Gauge height Community tax accumulation
v0_invariant_failure Counter error Invariant failure stats

Consensus metrics, namespace: tendermint

Name Type Tags Description
consensus_height Gauge Height of the chain
consensus_failure Counter height Consensus failure
consensus_validators Gauge Number of validators
consensus_validators_power Gauge Total voting power of all validators
consensus_missing_validators Gauge Number of validators who did not sign
consensus_missing_validators_power Gauge Total voting power of the missing validators
consensus_byzantine_validators Gauge Number of validators who tried to double sign
consensus_byzantine_validators_power Gauge Total voting power of the byzantine validators
consensus_block_interval_seconds Histogram Time between this and last block (Block.Header.Time) in seconds
consensus_rounds Gauge Number of rounds
consensus_num_txs Gauge Number of transactions
consensus_block_parts Counter peer_id Number of blockparts transmitted by peer
consensus_latest_block_height Gauge /status sync_info number
consensus_fast_syncing Gauge Either 0 (not fast syncing) or 1 (syncing)
consensus_total_txs Gauge Total number of transactions committed
consensus_block_size_bytes Gauge Block size in bytes
p2p_peers Gauge Number of peers node's connected to
p2p_peer_receive_bytes_total Counter peer_id Number of bytes received from a given peer
p2p_peer_send_bytes_total Counter peer_id Number of bytes sent to a given peer
p2p_peer_pending_send_bytes Gauge peer_id Number of pending bytes to be sent to a given peer
p2p_num_txs Gauge peer_id Number of transactions submitted by each peer_id
mempool_size Gauge Number of uncommitted transactions
mempool_tx_size_bytes Histogram Transaction sizes in bytes
mempool_failed_txs Counter Number of failed transactions
mempool_recheck_times Counter Number of transactions rechecked in the mempool
state_block_processing_time Histogram Time between BeginBlock and EndBlock in ms
state_recheck_time Histogram Time cost on recheck in ms
state_app_hash_conflict Counter proposer, height App hash conflict error

IRIShub metrics also contains tendermint metrics, Visit tendermint metrics (opens 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.yml (opens 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:9090 (opens new window)

# Start Grafana

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

You can visit http://localhost:3000/ (opens 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-dashboard (opens new window)