Vai al contenuto

Personalizzazione della configurazione

Informazioni generali

Il Sistema è stato realizzato per poterne configurare a proprio piacimento i servizi in esecuzione in una stessa macchina.

Per iniziare aprire il file compose.yml, file yaml contenente i servizi che saranno avviati mediante Docker.G I seguenti servizi sono obbligatori per l'esecuzione di qualsiasi altro microservizio:

  • collector;
  • loki;
  • prometheus.

Questi tre servizi offrono le funzionalitàG telemetriche e non possono perciò essere rimossi.

Il servizio natsG avvia un'istanza di un server NATS:G se rimosso è bene eliminare tale servizio dal campo depends-on presente in alcuni altri servizi.

I servizi che possono essere aggiunti e rimossi a piacimento sono:

  • api-gateway: servizio che avvia un'istanza del microservizio omonimo;
  • warehouse-1: servizio che avvia un'istanza del microservizio warehouse.G Dal momento che il nome del servizio è non vincolante, il nome può essere cambiato in base alle proprie esigenze (per garantire l'utilizzo offline è consigliato unire, ad un'istanza di warehouseG, un'istanza di apiG gateway e una di natsG sulla stessa macchina);
  • catalog: servizio che avvia un'istanza del microservizio omonimo;
  • order: servizio che avvia un'istanza del microservizio omonimo, che gestisce gli ordini e i trasferimenti;
  • authenticator: servizio che avvia un'istanza del microservizio omonimo;
  • notification: servizio che avvia un'istanza del microservizio omonimo;
  • GrafanaG: servizio per visualizzare la telemetria con una comoda Graphic User Interface.

Tutti i servizi appena elencati possiedono tre variabili d'ambiente configurabili in base alle proprie esigenze, presenti sotto la voce environment:

  • ENV_BROKER_URL: l'indirizzo di un'istanza NATSG (default: nats://nats:4222);
  • ENV_SERVICE_ID: l'identificativo del servizio;
  • OTLP_URL: l'indirizzo di un'istanza di collector (default: collector:4317);

IMPORTANTE

Prestare attenzione alla configurazione di ENV_SERVICE_ID: l'impostazione di due o più istanze con stesso identificativo IMPEDIRÀ la distinzione dei dati telemetrici di un'istanza dalle altre. Se omesso, il Sistema genererà un identificativo causale, tuttavia questo sarà resettato al riavvio dell'istanza, determinandone un cambiamento: tale modo d'impiego è dunque caldamente sconsigliato.
La generazione automatica non è abilitata per i magazzini, che non entreranno in esecuzione se la variabile d'ambiente non è impostata.

Alcuni dei servizi sviluppati presentano la seguente dicitura:

build: { args: { SERVICE: valore } }

questo significa che il servizio verrà compilato dai file localmente disponibili. Il campo valore deve essere sostituito con il nome della cartella dove si trovano i file da compilare per quel microservizio (ad esempio, scrivere api_gateway per compilare e avviare un servizio che esegue Api gateway).

Nel caso un servizio richiederà ulteriori configurazioni, questo sarà ora descritto.

Api gateway

Possiede queste ulteriori variabili d'ambiente:

  • ENV_АPI_PORT: porta АPI (default: 8080);
  • HTTP_HOST: host del Sistema (default: 0.0.0.0);
  • HTTP_PORT: porta http (default: 8080).

Influxdb

Possiede queste ulteriori variabili d'ambiente:

Notifications

Possiede queste ulteriori variabili d'ambiente:

  • INFLUXDB_TOKEN: stesso valore inserito al servizio influxdb (default: my-token);
  • INFLUXDB_ORG: stesso valore inserito al servizio influxdb (default: my-org);
  • INFLUXDB_URL: Indirizzo del servizio Influxdb (default: http://influxdb:8086)
  • INFLUXDB_BUCKET: stesso valore inserito al servizio influxdb (default: stockdb);
  • RULE_CHECKER_TIMER: il valore impostato determinerà ogni quanto tempo vengono controllate le soglie e le quantità globali disponibili di una merce per inviare o meno una notifica (default 5s).

Affinché Notifications funzioni correttamente è necessario sia attiva un'istanza del microservizio catalog: qualora non sia presente il microservizio non riuscirà a completare la procedura di avvio.

Se nello stesso file compose.yml non è presente il microservizio catalog, eliminare la dicitura catalog dalle voci elencate su depends_on, discorso analogo se Influxdb è in esecuzione su un'altra macchina.