Sign inSign up

sch8ill/mystprom

By sch8ill

Updated almost 2 years ago

Monitor your Mysterium Network nodes using prometheus.

Image
Monitoring & observability
Web analytics
0

380

sch8ill/mystprom repository overview

mystprom

Release Go Report Card MIT license


mytsprom is a Prometheus exporter for monitoring Mysterium Network nodes using the my.mystnodes.com api.
mystprom offers all metrics found on my.mystnodes.com and more.
The monitored metrics include a wide range of vital statistics, including:

  • Node Online Status: Provides real-time information on whether a node is actively online.
  • Earning Statistics: Offers insights into earnings generated by each node and service.
  • Traffic Statistics: Tracks data transfer activities.
  • Bandwidth Statistics: Delivers detailed metrics on available internet bandwidth.
  • Version Monitoring: Keeps track of software versioning for nodes.

Installation

Docker
docker run -p 9300:9300 -e MYSTPROM_EMAIL="" -e MYSTPROM_PASSWORD="" sch8ill/mystprom:latest
Build

Requires:

go >= 1.22
make

Build command:

make build

Usage

Grafana

An example Grafana panel can be found in the grafana directory.

Prometheus config

Example prometheus.yml scrape config:

scrape_configs:
  - job_name: mystprom
    scrape_interval: 5m
    static_configs:
      - targets: [ "localhost:9300" ]
Metrics
namedescriptionlabelstype
myst_node_bandwidthInternet bandwidth of the nodeid, namembit/s
myst_node_trafficTraffic transferred by the node over the last 30 daysid, namegigabytes
myst_node_qualityQuality score assigned to the nodeid, namefloat
myst_node_servicewhether a service on the node is runningid, name, serviceboolean
myst_node_earningsEarnings by service of node over the last 30 daysid, name, serviceMYST
myst_node_earnings_lifetimeTotal lifetime earnings by nodeid, nameMYST
myst_node_earnings_settledTotal settled earnings by nodeid, nameMYST
myst_node_earnings_unsettledUnsettled earnings by nodeid, nameMYST
myst_node_sessionsNumber of sessions of the node over the last 30 daysid, name, service, countryint
myst_node_session_earingsEarnings by node, generated from session logid, name, service, countryMYST
myst_node_session_trafficTraffic served by node, generated from session logid, name, service, countrygigabyte
myst_node_session_durationsTotal duration of sessions over the last 30 daysid, name, service, countryseconds
myst_token_priceCurrent price of the MYST tokencurrencyEUR/USD
myst_node_locationLocation of the nodeid, name, locationcountry code
myst_node_external_ipExternal ip address of the nodeid, name, ipip
myst_node_local_ipLocal ip address of the nodeid, name, ipip
myst_node_ispInternet Service Provider of the nodeid, name, isp
myst_node_osOperating system the node is running onid, name, osos
myst_node_archSystem architecture of the nodeid, name, archarchitecture
myst_node_versionMyst version the node is running onid, name, versionversion
myst_node_launcher_versionLauncher version the node is running onid, name, versionversion
myst_node_vendorVendor of the nodeid, name, vendor
myst_node_updated_atLast time the node was updatedid, nameunix time
myst_node_ip_categoryIP category of the nodeid, name, categoryip category
myst_node_maliciouswhether the node is tagged a maliciousid, nameboolean
myst_node_ip_taggedwhether the node is ip taggedid, nameboolean
myst_node_onlinewhether the node is onlineid, nameboolean
myst_node_online_last_atLast time the node was onlineid, nameunix time
myst_node_monitoring_statusMonitoring status of the nodeid, name, status
myst_node_monitoring_failedwhether monitoring on the node failedid, nameboolean
myst_node_monitoring_failed_last_atLast time monitoring failed on nodeid, nameunix time
myst_node_available_atLast time the node was availableid, nameunix time
myst_node_status_created_atTime the node monitoring record was createdid, nameunix time
myst_node_status_updated_atLast time the node status was updatedid, nameunix time
myst_node_created_atTime the node was createdid, nameunix time
myst_node_terms_versionTerms version of the nodeid, name, versiongauge
myst_node_terms_accepted_atLast time terms were accepted by nodeid, nameunix time
myst_node_countTotal number of nodesgauge
myst_node_user_idUser ID of user of the nodeid, name, user_id
myst_node_deletedwhether the node is deletedid, nameboolean
CLI flags
   --email value, -m value     email address of the my.mystnodes.com account [$MYSTPROM_EMAIL]
   --password value, -p value  password of the my.mystnodes.com account [$MYSTPROM_PASSWORD]
   --interval value, -i value  interval the Mysterium Network api should be scraped in (default: 10m0s) [$MYSTPROM_INTERVAL]
   --metrics-address value     address the Prometheus metrics exporter listens on (default: ":9300") [$MYSTPROM_METRICS_ADDRESS]
   --refresh-file value        name of the file the refresh token is stored in (default: ".refresh_token.json") [$MYSTPROM_REFRESH_FILE]
   --help, -h                  show help

License

This package is licensed under the MIT License.

Tag summary

Content type

Image

Digest

sha256:2360aff18

Size

7.2 MB

Last updated

almost 2 years ago

docker pull sch8ill/mystprom:0.3.2