This repository is a one-stop solution to the decentralized world of The Graph. It spins up all the necessary containers on one single machine including monitoring solutions and a CLI container that allows you to interact with the graph-nodes or the indexer-agent.
A monitoring solution for hosting a graph node on a single Docker host with Prometheus, Grafana, cAdvisor, NodeExporter and alerting with AlertManager.
The monitoring configuration runs with Prometheus, Grafana, cAdvisor, NodeExporter and alerting with AlertManager, a K8S template provided by the Graph team in the mission control repository during the testnet, and later adapted for mainnet using this configuration.
The advantage of using Docker, as opposed to systemd bare-metal setups, is that Docker is easy to manipulate and scale up if needed. We personally ran the whole testnet infrastructure on the same machine, including an Erigon Archive Node (not included in this docker build).
For those that consider running their infras like we did, here are our observations regarding the necessary hardware specs:
From our experience during the testnet, the heaviest load was put onto Postgres at all times, whilst the other infrastructure parts had little to no load on them at times. Postgres loads the CPU enormously even with all the optimizations in the world. Even our 48 core EPYC was struggling to deliver a steady 100-150 queries per second for Uniswap during the testnet. Smaller subgraphs and less expensive queries will definitely not overload the database that much.
The best part of using Docker is that the data is stored in named volumes on the docker host and can be exported / copied over to a bigger machine once more performance is needed.
Note that you need access to an Ethereum Archive Node that supports EIP-1898.
The setup for the archive node is not included in this docker setup.
The minimum configuration should to be the CPX51 VPS at Hetzner. Feel free to sign up using our referral link -- you can save 20€ and we get 10€ bonus for setting up some testnet nodes to support the network growth. :)