NodesMonitoring is a node monitoring system with Grafana dashboards and Prometheus metrics collection. It allows you to track node latency (ping) and availability, as well as export metrics to Prometheus.
git clone https://gitlab.bubki.zip/d3156/NodesMonitoring/
cd NodesMonitoring
sh download_plugins.sh
# Optional: edit example configs in ./configs/*
docker compose up -d --build
After starting:
- Grafana is available at: http://127.0.0.1:13000/dashboards
- Default credentials:
- Login:
admin - Password:
admin
- Login:
Replace the URLs with your domain:
environment:
GF_SERVER_ROOT_URL: http://localhost:13000/
GF_SERVER_HTTP_EXTERNAL_URL: http://localhost:13000/
Add the following location block to your server section in nginx.conf to properly reverse-proxy Grafana under /grafana/:
location /grafana/ {
proxy_pass http://127.0.0.1:13000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http://127.0.0.1:13000/ /grafana/;
}Notes:
proxy_pass points to your Grafana container’s internal port.
proxy_redirect ensures Grafana correctly rewrites URLs when accessed through /grafana/.
X-Forwarded-* headers preserve client information and protocol.
- Ping Node — displays node latency and availability metrics.
Example:
statisticInterval— statistics collection interval (seconds)stopThreadTimeout— thread stop timeout (ms)
ping_interval_sec— ping intervaltimeout_ms— ICMP response timeouticmp_payload— ICMP packet contentnodes— list of nodes to monitor
mode— operation mode:pull(Prometheus scrapes) orpush(Push Gateway)pull_port— port for pull metricspush_gateway_url— Prometheus Push Gateway addressjob— Prometheus job name
The following diagram illustrates the flow of data and metrics inside the PluginCore architecture:
Description of the dataflow:
- ModelStorage — global storage of models/interfaces for plugins.
- PingNodeModel registers itself in
ModelStorage. - PingNodePlugin interacts with
PingNodeModelto collect and process node data, and sends metrics toMetricsModel. - MetricsModel also stores its data in
ModelStorage. - PrometheusExporterPlugin reads metrics from
MetricsModeland exports them to Prometheus. - PluginLoader orchestrates the plugins and ensures metrics are exported to Prometheus.
- Prometheus serves metrics to Grafana for visualization.
This diagram clarifies how data flows from node monitoring plugins through the models and exporters to the visualization layer.

