Package: nano-prom-exporter
nano-promA simple metrics exporter for a nano-node daemonRequirementspython 3.7+https://www.python.org/downloads/Installationpip3 install nano-prom-exporterUsagenano-prom [-h] [--rpchost RPCHOST] [--rpc_port rpc_port] [--datapath DATAPATH] [--push_gateway push_gateway] [--hostname JOBNAME] [--interval SEC] [--username USERNAME] [--password PASSWORD] [--config_path PATH/TO/config.ini]Optional Arguments-h, --helpshow this help message and exit--rpchostRPCHOST"[::1]"default host string--rpc_portrpc_port"7076"default rpc port--datapathDATAPATH"~/Nano/"as default--push_gatewaypush_gateway"http://localhost:9091"prometheus push gateway, for multiple use config.ini and --config_path--hostnameJOBNAMEsocket.gethostname()jobname to pass to gateway--intervalSEC"10"seconds between pushing--usernameUSERNAME""http_basic_auth username, for multiple use config.ini and --config_path--passwordPASSWORD""http_basic_auth password, for multiple use config.ini and --config_path--config_pathPATH/TO/config.ini""path to config.ini for multiple push gateway and basic_auth supportSample config.ini[DEFAULT]rpcIP=localhost; ip for rpcrpcPort=7076; port for rpcnodeDataPath=~/Nano/; path to Nano Directoryhostname=testing; hostname will default to socket.gethostname if not configuredinterval=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 portusername=test; username for basic authpassword=testing; password for basic authStats exposed:SourcePrometheus Series{tag}Inforpcnano_rpc_responsehistogram of rpc response by actionnano_active_difficultyActive Difficulty Multipliernano_active_difficulty_receiveActive Difficulty Receive Multipliernano_block_count{type}Block Count Statisticsnano_confirmation_history{count}Block Confirmation Average{count sample size}nano_node_frontier_countFrontier Countnano_node_quorum_deltaQuorum Delta From Confirmation Quorumnano_node_online_stake_totalOnline Stake Totalnano_node_peers_stake_totalPeered Stake Totalnan_node_trended_stake_totalTrended Stake Totalnano_node_peer_countraw peer countnano_uptimenode uptime(sec)nano_versionversion stringnano_stats_counters{type, detail, dir}stats counter entries by type detail and directionnano_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_blocksraw telemetry block count by endpointtelemetry_raw_cementedraw telemetry cemented count by endpointtelemetry_raw_uncheckedraw telemetry unchecked count by endpointtelemetry_raw_accountsraw telemetry account count by endpointtelemetry_raw_bandwidthraw telemetry bandwidth cap by endpointtelemetry_raw_peerraw telemetry peer count by endpointtelemetry_raw_protocolraw telemetry protocol version by endpointtelemetry_raw_majorraw telemetry major version by endpointtelemetry_raw_minorraw telemetry minor version by endpointtelemetry_raw_patchraw telemetry patch version by endpointtelemetry_raw_preraw telemetry pre-release version by endpointtelemetry_raw_uptimeraw telemetry uptime by endpointtelemetry_raw_makerraw telemetry maker by endpointtelemetry_raw_timestampraw 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 hostingDATAPATHfree|
| |nano_node_volume_used|size of volume hostingDATAPATHused|
| |nano_node_volume_total|size of volume hostingDATAPATHtotal|
| |nano_node_memory_vms{pid}|all memory used|
| |nano_node_memory_paged_pool{pid}| |Development Requirements:prometheus-clientpip3 install prometheus-clientrequestspip3 install requestspsutilpip3 install psutilDevelopment Installation using venv:python3 -m venv venv. /venv/bin/activatepip install -r requirements.txtpip3 install -e .from repo rootDEBUGGINGSettingNANO_PROM_DEBUGto1will print exceptions, useful for debugging