All Projects โ†’ philippnormann โ†’ chia-monitor

philippnormann / chia-monitor

Licence: Apache-2.0 License
๐Ÿƒ A comprehensive monitoring and alerting solution for the status of your Chia farmer and harvesters.

Programming Languages

python
139335 projects - #7 most used programming language
Mako
254 projects

Projects that are alternatives of or similar to chia-monitor

Iota Prom Exporter
Iota Exporter for Prometheus Metrics
Stars: โœญ 33 (-74.81%)
Mutual labels:  metrics, grafana, prometheus
octane-exporter
Export Laravel Octane metrics using this Prometheus exporter.
Stars: โœญ 14 (-89.31%)
Mutual labels:  metrics, grafana, prometheus
Promcord
๐Ÿ“Š Analyze your entire discord guild in grafana using prometheus. Message, User, Game and Voice statistics...
Stars: โœญ 39 (-70.23%)
Mutual labels:  metrics, grafana, prometheus
Prometheus
Kubernetes Setup for Prometheus and Grafana
Stars: โœญ 824 (+529.01%)
Mutual labels:  metrics, grafana, prometheus
Github Monitoring
Monitor your GitHub Repos with Docker & Prometheus
Stars: โœญ 163 (+24.43%)
Mutual labels:  metrics, grafana, prometheus
Unifiedmetrics
Fully-featured metrics collection agent for Minecraft servers. Supports Prometheus and InfluxDB. Dashboard included out-of-box.
Stars: โœญ 29 (-77.86%)
Mutual labels:  metrics, grafana, prometheus
Pingprom
Prometheus uptime monitoring quickstart
Stars: โœญ 107 (-18.32%)
Mutual labels:  metrics, grafana, prometheus
Hastic Server
Hastic data management server for analyzing patterns and anomalies from Grafana
Stars: โœญ 292 (+122.9%)
Mutual labels:  metrics, grafana, prometheus
Appmetrics
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
Stars: โœญ 1,986 (+1416.03%)
Mutual labels:  metrics, grafana, prometheus
Heplify Server
HEP Capture Server
Stars: โœญ 110 (-16.03%)
Mutual labels:  metrics, grafana, prometheus
Grafterm
Metrics dashboards on terminal (a grafana inspired terminal version)
Stars: โœญ 613 (+367.94%)
Mutual labels:  metrics, grafana, prometheus
Docker Traefik Prometheus
A Docker Swarm Stack for monitoring Traefik with Promethues and Grafana
Stars: โœญ 215 (+64.12%)
Mutual labels:  metrics, grafana, prometheus
Swagger Stats
API Observability. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices.
Stars: โœญ 559 (+326.72%)
Mutual labels:  metrics, grafana, prometheus
flask prometheus metrics
Prometheus Metrics for Flask Web App
Stars: โœญ 17 (-87.02%)
Mutual labels:  metrics, grafana, prometheus
Docker monitoring logging alerting
Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting.
Stars: โœญ 479 (+265.65%)
Mutual labels:  metrics, grafana, prometheus
Citrix Adc Metrics Exporter
Export metrics from Citrix ADC (NetScaler) to Prometheus
Stars: โœญ 67 (-48.85%)
Mutual labels:  metrics, grafana, prometheus
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: โœญ 45,930 (+34961.07%)
Mutual labels:  metrics, grafana, prometheus
Prometheus Book
Prometheusๆ“ไฝœๆŒ‡ๅ—
Stars: โœญ 2,637 (+1912.98%)
Mutual labels:  metrics, grafana, prometheus
Netdata
Real-time performance monitoring, done right! https://www.netdata.cloud
Stars: โœญ 57,056 (+43454.2%)
Mutual labels:  notifications, grafana, prometheus
java-metrics
No description or website provided.
Stars: โœญ 31 (-76.34%)
Mutual labels:  metrics, prometheus

chia-monitor discord

A monitoring tool to collect all important metrics from your Chia farming node and connected harvesters.

These metrics are collected from the Chia daemon via RPC and WebSocket interfaces and can also be used to send you push notifications with regular status updates, alert you if something goes wrong, a proof is found, or you receive payments to your farmer wallet.

All metrics are exported to a Prometheus compatible /metrics endpoint and a Grafana dashboard is also provided:

grafana

This example dashboard displays almost all collected metrics and can be imported from grafana.com using the ID 14544 or using the grafana/dashboard.json from this repository.

How to Support

If you find this tool helpful and want to support the development, feel free to give this repo a โญ or donate some Chia (XCH) to my address: xch17gn0pwfzqs4m9c36hrf5vfunxsddqw2jpy7w5ppp847wjgtw6m4q89egd2

Notifications

To use notifications, please configure a status_service_url and alert_service_url for your desired notification service in the config.json. You can use most popular notifications services by creating a service specific webhook URL, following the instructions from this wiki. If you wish to disable notifications entirely, you can set the enable flag in the notifications section of the config.json to false.


Following notifications are currently sent to the status_service_url:

Farm summary (configurable interval in config.json)

** ๐Ÿ‘จโ€๐ŸŒพ Farm Status ๐Ÿ‘ฉโ€๐ŸŒพ **
๐ŸŒพ OG Plot Count: 3797
๐ŸŒพ Portable Plot Count: 50
๐Ÿงบ OG Plot Size: 375.828 TiB
๐Ÿงบ Portable Plot Size: 4.948 TiB
๐Ÿšœ Plot Change 24h: +86 (+8.511 TiB)
โŒ›๏ธ Signage Points Per Minute: 6.30
๐Ÿ”Ž Passed Filters Per Minute: 49.30
โœ… Total Proofs found: 73
๐Ÿ’ฐ Total Balance: 2.00001 XCH
๐Ÿ•ฐ๏ธ Time To Win: 2 weeks and 4 days
๐Ÿ’พ Current Netspace: 30.706 EiB
๐Ÿ”๏ธ Peak Height: 544594
๐Ÿงฎ Mempool Size: 15
๐Ÿ“ถ Full Node Peer Count: 8
๐Ÿ”„ Synced: True

Proof found alert

Triggers when a new partial or full proof is found. To limit the amount of notifications when pooling, this can be disabled in the config using the disable_proof_found_alert setting.

** ๐Ÿค‘ Proof found! ๐Ÿค‘ **
Your farm found a new partial or full proof

Following notifications are currently sent to the alert_service_url:

Sync lost alert

** ๐Ÿšจ Farmer Lost Sync! ๐Ÿšจ **
It seems like your farmer lost its connection to the Chia Network

Sync recovery alert

** โœ… Farmer Synced! โœ… **
Your farmer is successfully synced to the Chia Network again

Plots lost alert

Triggers when the total plot count of your farm drops below a configurable threshold (default: 1).

The corresponding lost_plots_alert_threshold parameter can be adjusted in the config.json.

** ๐Ÿšจ Farmer Lost Plots! ๐Ÿšจ **
It seems like your farmer lost some plots
Expected: 130, Found: 124

Plots recovery alert

** โœ… Farmer Plots recoverd! โœ… **
Your farmer's plot count has recovered to its previous value

Payment alert

** ๐Ÿค‘ Payment received! ๐Ÿค‘ **
Your wallet received a new payment
๐ŸŒฑ +0.10240 XCH

Metrics

The following statistics are collected from your local Chia node using the RPC and WebSocket APIs and are then exported via a Prometheus compatible /metrics HTTP endpoint on the exporter_port from your config.json.

Supported wallet metrics

  • Total balance (chia_confirmed_total_mojos)
  • Total farmed (chia_farmed_total_mojos)

Supported full node metrics

  • Sync status (chia_sync_status)
  • Peak height (chia_peak_height)
  • Mempool size (chia_mempool_size)
  • Difficulty (chia_diffculty)
  • Total netspace (chia_network_space)
  • Connection count (chia_connections_count)

Supported harvester metrics

  • OG plot count (chia_plot_count)
  • OG plot size (chia_plot_size)
  • Portable plot count (chia_portable_plot_count)
  • Portable plot size (chia_portable_plot_size)

Supported farmer metrics

  • Received signage points (chia_signage_points)
  • Received signage point index (chia_signage_point_index)
  • Attempted challenges (chia_block_challenges)
  • Plots passed filter (chia_plots_passed_filter)
  • Proofs found (chia_proofs_found)
  • Lookup time (chia_lookup_time_seconds)

Supported pooling metrics

  • Current Points (chia_current_pool_points)
  • Current difficulty (chia_current_pool_difficulty)
  • Points found (chia_pool_points_found_since_start)
  • Points acknowledged (chia_pool_points_acknowledged_since_start)
  • Points found 24h (chia_pool_points_found_24h)
  • Points acknowledged 24h (chia_pool_points_acknowledged_24h)
  • Pool errors 24h (chia_num_pool_errors_24h)

All pooling metrics support the following labels:

  • P2 singleton address (p2)
  • Pool URL (url)

Supported price metrics

  • USD price (chia_price_usd_cent)
  • EUR price (chia_price_eur_cent)
  • BTC price (chia_price_btc_satoshi)
  • ETH price (chia_price_eth_gwei)

Prerequisites

To run this tool, we need the following things:

  • Python 3
  • Pipenv

Linux (Ubuntu)

sudo apt install python3 pipenv

Installation

  1. Clone the repository
git clone https://github.com/philippnormann/chia-monitor.git
cd chia-monitor
  1. Install the required dependecies
pipenv install 
  1. Initialize the SQLite database
pipenv run alembic upgrade head
  1. Copy the example config file
cp config-example.json config.json
  1. Open up config.json and configure it to your preferences.

Updating

  1. Pull the latest release from git
cd chia-monitor
git reset origin/main --hard
git pull
  1. Update the required dependecies
pipenv install
  1. Upgrade the SQLite database model
pipenv run alembic upgrade head
  1. Import (Overwrite) the Grafana dashboard using the ID 14544 or using the grafana/dashboard.json

Usage

To use the tool, run the monitor module using pipenv from the chia-monitor directory

cd chia-monitor
pipenv run python -m monitor

Note: To run the tool in the background, you can run it as a service or in a detached screen.

Basic Prometheus Configuration

Add a block to the scrape_configs of your prometheus.yml config file:

scrape_configs:
  - job_name: chia_monitor
    static_configs:
    - targets: ['<<CHIA-MONITOR-HOSTNAME>>:8000']

and adjust the host name accordingly.

Architecture

architecture

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].