Prometheus Exporter for Solana

This is a Prometheus exporter for Solana based on the Golang original by CertusOne. It is the basis for Grafana dashboards and status alerts.

Build

Run

Run this as a systemd service by a non-root user with a script like this one: ``` [Unit] Description=Solana Exporter After=solana.service Requires=solana.service

[Service] User=solana TimeoutStartSec=20 Restart=always ExecStart=%h/.cargo/bin/solana-exporter

[Install] WantedBy=multi-user.target ```

Examples

Dashboard

A starting point can be the dashboard by CertusOne.

Sample output to the Prometheus target endpoint

Some repetitive lines are ellipsed for brevity in the example below. ```

HELP prometheusexporterrequestdurationseconds The HTTP request latencies in seconds.

TYPE prometheusexporterrequestdurationseconds histogram

prometheusexporterrequestdurationsecondsbucket{le="0.005"} 11 prometheusexporterrequestdurationsecondsbucket{le="0.01"} 11 prometheusexporterrequestdurationsecondsbucket{le="0.025"} 11 prometheusexporterrequestdurationsecondsbucket{le="0.05"} 11 prometheusexporterrequestdurationsecondsbucket{le="0.1"} 11 ... prometheusexporterrequestdurationsecondssum 0.0000105 prometheusexporterrequestdurationseconds_count 11

HELP prometheusexporterrequests_total Number of HTTP requests received.

TYPE prometheusexporterrequests_total counter

prometheusexporterrequests_total 11

HELP prometheusexporterresponsesizebytes The HTTP response sizes in bytes.

TYPE prometheusexporterresponsesizebytes gauge

prometheusexporterresponsesizebytes 136373

HELP solanaactivevalidators Total number of active validators

TYPE solanaactivevalidators gauge

solanaactivevalidators{state="current"} 324 solanaactivevalidators{state="delinquent"} 36

HELP solanavalidatoractivated_stake Activated stake of a validator

TYPE solanavalidatoractivated_stake gauge

solanavalidatoractivatedstake{pubkey="13HNYUVBVHgJSfNKvgXgKia3bywzXabGzQjFyMQxLMjS"} 59998397935959 solanavalidatoractivatedstake{pubkey="1gqv7KGm888nQXsJoNFwGaDkNERUBztuekjzK3J3T7a"} 250002741550967 solanavalidatoractivated_stake{pubkey="21ryEourynXqhpLe1DsFz8yoeFKSXE14T8bKBFmzcYzt"} 2993151360 ...

HELP solanavalidatoris_delinquent Whether a validator is delinquent

TYPE solanavalidatoris_delinquent gauge

solanavalidatorisdelinquent{pubkey="13HNYUVBVHgJSfNKvgXgKia3bywzXabGzQjFyMQxLMjS"} 0 solanavalidatorisdelinquent{pubkey="1gqv7KGm888nQXsJoNFwGaDkNERUBztuekjzK3J3T7a"} 0 solanavalidatoris_delinquent{pubkey="21ryEourynXqhpLe1DsFz8yoeFKSXE14T8bKBFmzcYzt"} 1 ...

HELP solanavalidatorlast_vote Last voted slot of a validator

TYPE solanavalidatorlast_vote gauge

solanavalidatorlastvote{pubkey="13HNYUVBVHgJSfNKvgXgKia3bywzXabGzQjFyMQxLMjS"} 58788403 solanavalidatorlastvote{pubkey="1gqv7KGm888nQXsJoNFwGaDkNERUBztuekjzK3J3T7a"} 58788443 solanavalidatorlast_vote{pubkey="21ryEourynXqhpLe1DsFz8yoeFKSXE14T8bKBFmzcYzt"} 7393690 ...

HELP solanavalidatorroot_slot Root slot of a validator

TYPE solanavalidatorroot_slot gauge

solanavalidatorrootslot{pubkey="13HNYUVBVHgJSfNKvgXgKia3bywzXabGzQjFyMQxLMjS"} 58788362 solanavalidatorrootslot{pubkey="1gqv7KGm888nQXsJoNFwGaDkNERUBztuekjzK3J3T7a"} 58788379 solanavalidatorroot_slot{pubkey="21ryEourynXqhpLe1DsFz8yoeFKSXE14T8bKBFmzcYzt"} 7393659 ... ```