A prometheus exporter for monitoring FIO nodeos nodes.

fio-prometheus-exporter

This is a simple prometheus exporter for FIO nodeos nodes. It can connect to multiple nodes to display a few critical statistics.

Data Provided

Note: not all of the APIs are enabled by default because they are dangerous, and could allow bad things to happen. If you enable the net or producer API plugins, be sure to block access to /v1/net/* and /v1/producer/* from outside connections!

Labels

By default the following labels are provided:

  • chain_id will be 'mainnet', 'testnet', or if not recognized, the hash.
  • version the friendly version string provided by the node.
  • host the hostname of the instance (provided because the {{instance}} variable will not be the actual host)

Any metrics related to a producer will have an addition label, aptly named producer

Standard endpoints (should work by default)

  • fio_info_head_block head block number from get_info endpoint

  • fio_info_head_lag seconds behind the head block

  • fio_info_lib last irreversible block number from get_info endpoint

  • fio_producer_is_active whether producer is set to active

  • fio_producer_is_top21 whether producer is in the top 21: 0 if false

  • fio_producer_last_bpclaim_delta seconds since last bpclaim

  • fio_producer_rank producer rank

  • fio_producer_schedule_active active producer schedule

  • fio_producer_schedule_pending pending producer schedule

  • fio_producer_schedule_proposed proposed producer schedule

  • fio_producer_votes producer votes in FIO

  • fio_runtime_max_transaction_time maximum transaction time (http_plugin)

Non standard endpoints:

Requires eosio::producer_api_plugin

  • fio_producer_producing if producer api is paused: 1 means actively signing blocks, otherwise null

Requires eosio::db_size_api_plugin

  • fio_db_free_bytes bytes remaining for memory state
  • fio_db_used_bytes bytes used by memory state

Requires eosio::net_api_plugin

  • fio_net_connected_peers number of connected peers
  • fio_net_disconnected_peers number of unreachable peers
  • fio_net_syncing_peers number of peers catching up

Grafana

A sample dashboard is available in the grafana folder in this repository:

grafana screenshot

Setup the job in the prometheus.yml like this:

scrape_configs:
  - job_name: 'fio'
    static_configs:
      - targets: ["your-node-here:13856"]

Running

Usage of fio-prometheus-exporter:
  -no-db
        do not attempt to use the db API
  -no-net
        do not attempt to use the net API
  -no-producer
        do not attempt to use the producer API
  -p int
        port to listen on (default 13856)
  -u string
        nodes to monitor, comma seperated list of http urls (default "http://localhost:8888")

Multiple hosts can be provided by seperating the urls with a comma, for example:

fio-prometheus-exporter -u http://nodeos1:8888,http://nodeos2:8888,http://nodeos3:8888

Docker

A Dockerfile is available, which will build a trimmed from-scratch container, with the openssl libraries and root certificates needed for connecting to a TLS-enabled host.

# build:
docker build -t fio-prometheus-exporter .
# run
docker run -d --restart unless-stopped -p 13856:13856 --name fio-prometheus-exporter fio-prometheus-exporter -u http://nodeos1:8888,http://nodeos2:8888,http://nodeos3:8888
Owner
Todd G
Security and Blockchain Enthusiast
Todd G
Similar Resources

Prometheus exporter for Amazon Elastic Container Service (ECS)

ecs_exporter 🚧 🚧 🚧 This repo is still work in progress and is subject to change. This repo contains a Prometheus exporter for Amazon Elastic Contai

Nov 27, 2022

Prometheus exporter for DeadMansSnitch

DeadMansSnitch Exporter Prometheus exporter for DeadMansSnitch information (snitches) Configuration Usage: deadmanssnitch-exporter [OPTIONS] Applic

Apr 6, 2022

A Prometheus exporter, written in Golang, for Magento 2

Magento 2 Prometheus Exporter A Prometheus exporter, written in Golang, for Magento 2. Philosophy It might be abnormal to start with the "philosophy"

May 3, 2022

Prometheus exporter for podman

Prometheus exporter for podman Exports the following metrics for each running container CPU Usage Memory Usage Netowrk Usage Block Usage Output Exampl

Jul 5, 2022

A Prometheus exporter which scrapes metrics from CloudLinux LVE Stats 2

A Prometheus exporter which scrapes metrics from CloudLinux LVE Stats 2

CloudLinux LVE Exporter for Prometheus LVE Exporter - A Prometheus exporter which scrapes metrics from CloudLinux LVE Stats 2 Help on flags: -h, --h

Nov 2, 2021

Prometheus exporter of Hetzner Cloud inventory

Hetzner Cloud inventory exporter Prometheus exporter of Hetzner Cloud inventory Build Using docker Requires docker make build Locally Requires go buil

Dec 14, 2022

A Prometheus metrics exporter for AWS that fills in gaps CloudWatch doesn't cover

YAAE (Yet Another AWS Exporter) A Prometheus metrics exporter for AWS that fills in gaps CloudWatch doesn't cover About This exporter is meant to expo

Dec 10, 2022

Prometheus exporter for IAAS daily billing information

Prometheus exporter for IAAS daily billing information

Multi-iaas-daily-billing-exporter Multi-iaas-daily-billing-exporter enables to collect, unify and expose daily billing from AWS and GCP providers. The

Dec 14, 2021

Prometheus metrics exporter for libvirt.

Libvirt exporter Prometheus exporter for vm metrics written in Go with pluggable metric collectors. Installation and Usage If you are new to Prometheu

Jul 4, 2022
Json-log-exporter - A Nginx log parser exporter for prometheus metrics

json-log-exporter A Nginx log parser exporter for prometheus metrics. Installati

Jan 5, 2022
Amplitude-exporter - Amplitude charts to prometheus exporter PoC

Amplitude exporter Amplitude charts to prometheus exporter PoC. Work in progress

May 26, 2022
Vulnerability-exporter - A Prometheus Exporter for managing vulnerabilities in kubernetes by using trivy
Vulnerability-exporter - A Prometheus Exporter for managing vulnerabilities in kubernetes by using trivy

Kubernetes Vulnerability Exporter A Prometheus Exporter for managing vulnerabili

Dec 4, 2022
Netstat exporter - Prometheus exporter for exposing reserved ports and it's mapped process

Netstat exporter Prometheus exporter for exposing reserved ports and it's mapped

Feb 3, 2022
Latest block exporter to monitor your own nodes !

Ethereum Block Prometheus Exporter Deeply copied from 31z4/ethereum-prometheus-exporter Thanks a lot for his work ! This service exports the latest bl

Nov 5, 2021
Github billing exporter - Billing exporter for GitHub organizations

GitHub billing exporter Forked From: https://github.com/borisputerka/github_bill

Nov 2, 2022
📡 Prometheus exporter that exposes metrics from SpaceX Starlink Dish
📡  Prometheus exporter that exposes metrics from SpaceX Starlink Dish

Starlink Prometheus Exporter A Starlink exporter for Prometheus. Not affiliated with or acting on behalf of Starlink(â„¢) ?? Starlink Monitoring System

Dec 19, 2022
Prometheus exporter for Chia node metrics

chia_exporter Prometheus metric collector for Chia nodes, using the local RPC API Building and Running With the Go compiler tools installed: go build

Sep 19, 2022
Nvidia GPU exporter for prometheus using nvidia-smi binary
Nvidia GPU exporter for prometheus using nvidia-smi binary

nvidia_gpu_exporter Nvidia GPU exporter for prometheus, using nvidia-smi binary to gather metrics. Introduction There are many Nvidia GPU exporters ou

Jan 5, 2023
NVIDIA GPU metrics exporter for Prometheus leveraging DCGM

DCGM-Exporter This repository contains the DCGM-Exporter project. It exposes GPU metrics exporter for Prometheus leveraging NVIDIA DCGM. Documentation

Dec 27, 2022