Getting Started
- Create a new DO instance (whatever size, need to load test this)
- Setup ssh keys for the instance
- Clone https://github.com/nushackers/hnr-infra
- In a separate directory, clone https://github.com/nushackers/hnr-api
- Change the domain names and relative directory of api if needed.
- Run the
./deploy-up.sh
to start all the services, and./deploy-down.sh
to stop everything
Droplet Components
- Traefik + Let’s Encrypt
- This is the main proxy where all the traffic comes through and gets directed to different containers.
- See
config
for additional configurations on this
- Prometheus
- Where all the logs are aggregated. This is connected to an external Grafana instance for monitoring
- See prometheus.yml for the different services we’re monitoring
- hnr-api
- This is where out API is deployed
Observability Tools
- Traefik Metrics
- Node Exporter
- prometheus-net
Grafana Dashboards
- We have a couple of Grafana dashboards to visualize the time series data we can get from Prometheus. Tentatively, we have three main dashboards
- Node Exporter - This gives us info on system details: RAM, CPU Usage, Networking
- Traefik - This gives us overall incoming and outgoing traffic information
- ASP.NET Core Dashboard - This gives us detailed per controller information on the API calls - This isn’t very detailed, but is the best template I can find. Probably need to construct our own dashboard for this