Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sch8ill/mystprom
Monitor your Mysterium Network nodes using prometheus
https://github.com/sch8ill/mystprom
metrics myst mysterium-network mysteriumnetwork prometheus-exporter
Last synced: about 18 hours ago
JSON representation
Monitor your Mysterium Network nodes using prometheus
- Host: GitHub
- URL: https://github.com/sch8ill/mystprom
- Owner: Sch8ill
- License: mit
- Created: 2024-04-24T18:45:54.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-04-25T14:44:42.000Z (7 months ago)
- Last Synced: 2024-04-25T20:21:14.910Z (7 months ago)
- Topics: metrics, myst, mysterium-network, mysteriumnetwork, prometheus-exporter
- Language: Go
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mystprom
[![Release](https://img.shields.io/github/release/sch8ill/mystprom.svg?style=flat-square)](https://github.com/sch8ill/mystprom/releases)
[![Go Report Card](https://goreportcard.com/badge/github.com/sch8ill/mystprom)](https://goreportcard.com/report/github.com/sch8ill/mystprom)
![MIT license](https://img.shields.io/badge/license-MIT-green)---
`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
```bash
docker run -p 9300:9300 -e MYSTPROM_EMAIL="" -e MYSTPROM_PASSWORD="" sch8ill/mystprom:latest
```### Build
Requires:
```
go >= 1.22
make
```Build command:
```bash
make build
```---
## Usage
### Grafana
An [example Grafana panel](https://github.com/sch8ill/mystprom/blob/master/grafana/dashboard.json) can be found in
the [grafana directory](https://github.com/sch8ill/mystprom/blob/master/grafana).### Prometheus config
Example `prometheus.yml` scrape config:
```yaml
scrape_configs:
- job_name: mystprom
scrape_interval: 5m
static_configs:
- targets: [ "localhost:9300" ]
```### Metrics
| name | description | labels | type |
|-------------------------------------|-------------------------------------------------------|--------------------|--------------|
| myst_node_bandwidth | Internet bandwidth of the node | id, name | mbit/s |
| myst_node_traffic | Traffic transferred by the node over the last 30 days | id, name, service, country | gigabytes |
| myst_node_quality | Quality score assigned to the node | id, name | float |
| myst_node_service | whether a service on the node is running | id, name, service | boolean |
| myst_node_earnings | Earnings by service of node over the last 30 days | id, name, service | MYST |
| myst_token_price | Current price of the MYST token | currency | EUR/USD |
| myst_node_location | Location of the node | id, name, location | country code |
| myst_node_external_ip | External ip address of the node | id, name, ip | ip |
| myst_node_local_ip | Local ip address of the node | id, name, ip | ip |
| myst_node_isp | Internet Service Provider of the node | id, name, isp | |
| myst_node_os | Operating system the node is running on | id, name, os | os |
| myst_node_arch | System architecture of the node | id, name, arch | architecture |
| myst_node_version | Myst version the node is running on | id, name, version | version |
| myst_node_launcher_version | Launcher version the node is running on | id, name, version | version |
| myst_node_vendor | Vendor of the node | id, name, vendor | |
| myst_node_updated_at | Last time the node was updated | id, name | unix time |
| myst_node_ip_category | IP category of the node | id, name, category | ip category |
| myst_node_malicious | whether the node is tagged a malicious | id, name | boolean |
| myst_node_ip_tagged | whether the node is ip tagged | id, name | boolean |
| myst_node_online | whether the node is online | id, name | boolean |
| myst_node_online_last_at | Last time the node was online | id, name | unix time |
| myst_node_monitoring_status | Monitoring status of the node | id, name, status | |
| myst_node_monitoring_failed | whether monitoring on the node failed | id, name | boolean |
| myst_node_monitoring_failed_last_at | Last time monitoring failed on node | id, name | unix time |
| myst_node_available_at | Last time the node was available | id, name | unix time |
| myst_node_status_created_at | Time the node monitoring record was created | id, name | unix time |
| myst_node_status_updated_at | Last time the node status was updated | id, name | unix time |
| myst_node_created_at | Time the node was created | id, name | unix time |
| myst_node_terms_version | Terms version of the node | id, name, version | gauge |
| myst_node_terms_accepted_at | Last time terms were accepted by node | id, name | unix time |
| myst_node_count | Total number of nodes | | gauge |
| myst_node_user_id | User ID of user of the node | id, name, user_id | |
| myst_node_deleted | whether the node is deleted | id, name | boolean |### 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](LICENSE).