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
Serveril nome dato al Docker container di Postgres, se stai usando il filedocker-compose-dev.ymlesso 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.
