Skip to content

G29-IS/e20-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ffd09e4 · Jun 17, 2024

History

88 Commits
Feb 5, 2024
Feb 7, 2024
Jan 30, 2024
Jan 31, 2024
Apr 26, 2024
Dec 12, 2023
Dec 12, 2023
May 26, 2024
Jun 17, 2024
Dec 12, 2023
Jan 30, 2024
Feb 5, 2024
Jan 30, 2024
Dec 12, 2023
Jan 19, 2024
Dec 12, 2023
Dec 12, 2023

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.