Skip to content

G29-IS/e20-api

Repository files navigation


E-20
api

REST api per E-20.

Esecuzione in locale e development

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 file docker-compose-dev.yml esso sarà e20-dev-env-postgres.

Il database di default è e20devdb

Swagger UI

Swagger è disponibile all'url localhost:$PORT/swagger

Grafana

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.

Sicurezza

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.

Aggiungere Prometheus come data source

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

Creare una dashboard per il monitoraggio delle api

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

Error logging

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.