Export nano_node stats for prometheus
Project description
nano-prom
Requirements:
- python 3.7+ https://www.python.org/downloads/
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nano_prom_exporter-0.1.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b46bdfa55e1463a757dc7fbbcbe616ee26c5ad6ce9d39d39c4d935d72a7a619 |
|
MD5 | 45592e294a1ceb6d3ee8b81a0fd69e96 |
|
BLAKE2b-256 | bbdeaa2319e8c330f79269be034a67ab677588f0f695e1b96ac49dfe8226a78b |