REST api per E-20.
Questa api richiede i seguenti servizi:
- PostgreSQL
- Redis
- Prometheus
- Grafana
Un Docker compose file per scopi di development locale è disponibile nella directory, alla root del progetto, chiamata docker-compose-dev.yml
Esso crea tutti i servizi richiesti con un eventuale web dashboard:
Service | username | password | endpoint | web dashboard |
---|---|---|---|---|
PostgreSQL | e20DevUser | e20DevPassword | localhost:5432 | localhost:8081 |
Redis | localhost:6379 | localhost:8082 | ||
Prometheus | localhost:9090 | |||
Grafana | admin | admin | localhost:3000 |
Un file .env
per lo sviluppo si trova in /env/.env.development
, copialo nella root directory e modifica le variabili necessarie.
Per utilizzare la web dashboard di Postgres inserisci nel campo
Server
il nome dato al Docker container di Postgres, se stai usando il filedocker-compose-dev.yml
esso saràe20-dev-env-postgres
.Il database di default è
e20devdb
Swagger è disponibile all'url localhost:$PORT/swagger
Attraverso grafana è possibile visualizzare le metriche sull'utilizzo delle API di e-20 ed il carico del relativo server.
Per farlo bisogna configurare un data source
, queste api utilizzano Prometheus.
Quando di connetti alla dashboard Grafana ti verrà chiesto di cambiare la password!
Per lo sviluppo locale non è un problema tenere admin
come password, ma è importante settare una password sicura in ambiente di production o in ogni modo pubblici.
Dalla homepage della dashboard di Grafana, clicca Add your first datasource
e seleziona Prometheus, oppure seleziona Connections > Add new connection > Prometheus
e clicca Add new datasource
.
Scegli un name
(indifferente), specifica l'url, con il setup di docker compose dev dovrebbe essere http://localhost:9090
, scorri in fondo alla pagina e clicca Save & Test
Ci sono diverse dashboard già esistenti che si possono usare.
Una dashboard fatta abbastanza bene è questa qui
Per crearla clicca nell'hamburger menu a sinistra della home di Grafana, poi clicca Dashboards
e successivamente New > New dashboard
in alto a destra, poi Import dashboard
ed inserisci il seguente ID a sinistra del pulsante Load
: 4701
Per il monitoraggio degli errori viene utilizzato Sentry.
È necessario avere la variabile di ambiente SENTRY_AUTH_TOKEN
impostata per permettere un corretto funzionamento del tracking degli errori.
Un Auth token
può essere ottenuto a questo link.