Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Export nano_node stats for prometheus

Project description

nano-prom

Requirements:

Installation:

  • pip3 install nano-prom-exporter

Usage:

nano-prom [-h] [--rpchost RPCHOST] [--rpcport RPCPORT] [--datapath DATAPATH] [--pushgateway PUSHGATEWAY] [--hostname JOBNAME] [--interval SEC] [--username USERNAME] [--password PASSWORD] [--config_path PATH/TO/config.ini]

Optional Arguments
-h, --help show this help message and exit
--rpchost RPCHOST "[::1]" default host string
--rpcport RPCPORT "7076" default rpc port
--datapath DATAPATH "~/Nano/" as default
--pushgateway PUSHGATEWAY "http://localhost:9091" prometheus push gateway, for multiple use config.ini and --config_path
--hostname JOBNAME socket.gethostname() jobname to pass to gateway
--interval SEC "10" seconds between pushing
--username USERNAME "" http_basic_auth username, for multiple use config.ini and --config_path
--password PASSWORD "" http_basic_auth password, for multiple use config.ini and --config_path
--config_path PATH/TO/config.ini "" path to config.ini for multiple push gateway and basic_auth support

Sample config.ini

[DEFAULT]
rpcIP = localhost ; ip for rpc
rpcPort = 7076 ; port for rpc
nodeDataPath = ~/Nano/ ; path to Nano Directory
hostname = testing ; hostname will default to socket.gethostname if not configured
interval = 10 ; default 10 seconds

;example showing push gateway with no auth
[http://127.0.0.1:9091] ; push gateway full url and port

;example showing push gateway with basic_auth
[http://127.0.0.1:9092] ; push gateway full url and port
username = test ; username for basic auth
password = testing ; password for basic auth 

Stats exposed:

Source Prometheus Series{tag} Info
rpc nano_rpc_response histogram of rpc response by action
nano_active_difficulty Active Difficulty Multiplier
nano_active_difficulty_receive Active Difficulty Receive Multiplier
nano_block_count{type} Block Count Statistics
nano_confirmation_history{count} Block Confirmation Average{count sample size}
nano_node_frontier_count Frontier Count
nano_node_online_stake_total Online Stake Total
nano_node_peers_stake_total Peered Stake Total
nano_node_peer_count raw peer count
nano_uptime node uptime(sec)
nano_version version string
nano_stats_counters{type, detail, dir} stats counter entries by type detail and direction
nano_stats_objects_count{l1,l2,l3} stats object count {l1,l2,l3}
nano_stats_objects_size{l1,l2,l3} stats object size {l1,l2,l3}
telemetry_raw_blocks raw telemetry block count by endpoint
telemetry_raw_cemented raw telemetry cemented count by endpoint
telemetry_raw_unchecked raw telemetry unchecked count by endpoint
telemetry_raw_accounts raw telemetry account count by endpoint
telemetry_raw_bandwidth raw telemetry bandwidth cap by endpoint
telemetry_raw_peer raw telemetry peer count by endpoint
telemetry_raw_protocol raw telemetry protocol version by endpoint
telemetry_raw_major raw telemetry major version by endpoint
telemetry_raw_minor raw telemetry minor version by endpoint
telemetry_raw_patch raw telemetry patch version by endpoint
telemetry_raw_pre raw telemetry pre-release version by endpoint
telemetry_raw_uptime raw telemetry uptime by endpoint
telemetry_raw_maker raw telemetry maker by endpoint
telemetry_raw_timestamp raw telemetry received timestamp by endpoint

|system|nano_node_memory_rss{pid}|allocated and in ram| | |nano_node_cpu_usage{pid}|percentage CPU usage| | |nano_node_threads{pid,tid}|percentage of total CPU per thread id | | |nano_node_database|size of database(bytes)| | |nano_node_volume_free|size of volume hosting DATAPATH free| | |nano_node_volume_used|size of volume hosting DATAPATH used| | |nano_node_volume_total|size of volume hosting DATAPATH total| | |nano_node_memory_vms{pid}|all memory used| | |nano_node_memory_paged_pool{pid}| |

Development Requirements:

  • prometheus-client pip3 install prometheus-client
  • requests pip3 install requests
  • psutil pip3 install psutil

Development Installation using venv:

  • python3 -m venv venv
  • . /venv/bin/activate
  • pip install -r requirements.txt
  • pip3 install -e . from repo root

DEBUGGING

Setting NANO_PROM_DEBUG to 1 will print exceptions, useful for debugging

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for nano-prom-exporter, version 0.1.8
Filename, size File type Python version Upload date Hashes
Filename, size nano_prom_exporter-0.1.8-py3-none-any.whl (10.0 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size nano_prom_exporter-0.1.8.tar.gz (9.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page