Skip to content

dsrvlabs/mina-performance-dashboard

Repository files navigation

Mina Performance Dashboard

Mina Performance Dashboard is a performance monitoring tool for Mina Protocol. It provides two functions, collecting and visualizing Block Producers' and Snarkers' performance data.

1. Features

  • Block Producer Performance Dashboard
  • Snarker Performance Dashboard

1-1. Screenshot

screenshot_dark_1 screenshot_dark_2 screenshot_light_1 screenshot_light_2

2. Install Guide

The Mina Performance Dashboard displays information of nodes through Prometheus and Grafana. Also, server information is collected using node_exporter.

You have to prepare 2 servers. Of course, you can install everything on one server. But it is not recommended.

2.1. Preparations

2.1.1. Install Docker

Prometheus and Grafana provides service through Docker.

apt install docker.io

2.1.2. Firewall Setting

  • Mina node
    • Open inbound 6060(Mina Metric) port from PROMETHEUM Server
    • Open inbound 9100(node_exporter) port from PROMETHEUM Server
  • Prometheum and Grafana Server
    • Open inbound 3000(Grafana) and 9090(Prometheum) port

2.2. Install Prometheus

2.2.2. Configure Prometheus

Create the Prometheum configuration file.

vi /tmp/prometheus-mina.yml

Paste the contents of the file below. At this time, change NODE_IP_ADDRESS to your own IP address.

global:
  scrape_interval: 15s # 15s will be enough, because block of time
  scrape_timeout: 15s
  evaluation_interval: 15s # Evaluate alerting
alerting:
  alertmanagers:
  - static_configs:
    - targets: []
    scheme: http
    timeout: 5s
scrape_configs:
  - job_name: 'mina-testnet'
    metrics_path: /metrics
    scheme: http
    static_configs:
      - targets: ['NODE_IP_ADDRESS:6060','NODE_IP_ADDRESS:9100'] ## Replace NODE_IP_ADDRESS to IP address of your server
        labels:
          hostname: 'mina-daemon'

You can also get this file prometheus-mina.yml here.

2.2.3. Run Prometheus through Docker

docker run \
    -d --name=prometheus-mina \
    -p 9090:9090 \
    -v /tmp/prometheus-mina.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus

Check Prometheus : http://PROMETHEUS_IP_ADDRESS:9090 prometheus

2.3. Install Grafana

2.3.1 Install and run Grafana

Run Grafana through Docker

docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_INSTALL_PLUGINS=fifemon-graphql-datasource" \
grafana/grafana

Add plugin(fifemon-graphql-datasource) : -e "GF_INSTALL_PLUGINS=fifemon-graphql-datasource"
it makes GraphQL data available to Grafana.

2.3.1 Configure Grafana

Login to Grafana

  • Visit : http://GRAFANA_IP_ADDRESS:3000

You can login to Grafana with username admin and default password admin. After you connect to Grafana for the first time, you will see a screen to set new password for your account.

Add data source

  • Configuration > Data Sources > Add data source > Prometheus
  • Type it below
    • Name : Prometheus-Mina
    • HTTP > URL : http://PROMETHEUS_IP_ADDRESS:9090
  • Click [Save & Test]

screenshot_light_3

Add a dashboard from template

screenshot_light_4

Now, you can see the dashboard

  • Dashboard > Home > Mina:BlockProducer Performance Dashboard

3. Automated Alerts sent to Telegram bot

4. Reference

About

Coda performance dashboard for block producer and snarker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published