Passa al contenuto principale

servicecontrolplane

Cosa fa

servicecontrolplane espone API centralizzate di controllo operativo, in particolare per la gestione dei service_flags usati dai microservizi.

Ruoli e responsabilita

  • API CRUD su service_flags (env + microservice + enabled + note);
  • integrazione con datahub per persistenza configurazioni runtime;
  • esposizione endpoint standard di stato/configurazione del servizio;
  • supporto osservabilita tramite Redis bus e logger shared.

Porta esposta

  • Porta interna servizio: 3016
  • Esposizione via Traefik: https://api.trading.expovin.it/servicecontrolplane/*

Architettura grafica

Operatori / Frontend

Gestiscono feature flag e stato operativo

Traefik + AuthForward

Protegge /servicecontrolplane/*

REST API control-plane
servicecontrolplane

ServiceControlPlane + ServiceFlags router/client

  • CRUD flag per env/microservice
  • standard status/settings endpoints
  • Redis bus + logger shared
datahub

tabella service_flags via /api/table/*

Redis

status, metrics, logs e canali runtime

Microservizi backend

consumano i flag per comportamento runtime

Configurazione (docker-compose.paper.yml)

servicecontrolplane:
image: expovin/servicecontrolplane:${SERVICECONTROLPLANE_VERSION}
restart: unless-stopped
profiles: ["servicecontrolplane"]
environment:
- LOG_LEVEL=${LOG_LEVEL}
- ENV=${ENV}
- LOG_BATCH_MAX_BYTES=${LOG_BATCH_MAX_BYTES}
- ENABLE_DB_LOG=${ENABLE_DB_LOG}
- MYSQL_HOST=${MYSQL_HOST}
- MYSQL_PORT=${MYSQL_PORT}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- REDIS_URL=${REDIS_URL}
- DBMANAGER_URL=${DBMANAGER_URL}
- CACHEMANAGER_URL=${CACHEMANAGER_URL}
- ALERTINGSERVICE_URL=${ALERTINGMANAGER_URL}
- TICKERSCANNER_URL=${TICKERSCANNER_URL}
- SCHEDULER_URL=${SCHEDULER_URL}
- AUTHSERVICE_URL=${AUTHSERVICE_URL}
- TZ=${TIMEZONE}
depends_on:
dbmanager:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3016/status/health"]
labels:
- "traefik.enable=true"
- "traefik.http.routers.servicecontrolplane.rule=Host(`api.trading.expovin.it`) && PathPrefix(`/servicecontrolplane`)"
- "traefik.http.services.servicecontrolplane.loadbalancer.server.port=3016"
- "traefik.http.routers.servicecontrolplane.middlewares=servicecontrolplane-stripprefix,cors-default@docker,auth-forward@docker"

Variabili d'ambiente

Infrastruttura

Variabili obbligatorie gestite da BaseService (comune a tutti i microservizi).

VariabileDefaultDescrizione
DATAHUB_URLhttp://datahub:3000URL del servizio datahub (ex DBMANAGER_URL, ancora accettato come alias).
REDIS_URLURI Redis (es. redis://redis:6379). Obbligatorio per il bus eventi e i canali di stato.
LOG_LEVELinfoLivello di log: trace, debug, info, warning, error.
ENVDEVAmbiente di esecuzione (local, paper, prod). Usato nel prefisso dei canali Redis.
LOG_BATCH_MAX_BYTESDimensione massima batch per il log su DB (funzionalità dbLogger).
ENABLE_DB_LOGSe true, abilita la scrittura dei log su DB via datahub.
TZTimezone di sistema del container (es. America/New_York).

URL microservizi gestiti

servicecontrolplane mantiene i riferimenti agli URL di tutti i microservizi del sistema per operazioni di controllo e orchestrazione. Tutte queste variabili hanno un default che punta al nome del container Docker interno.

VariabileDefaultDescrizione
DBMANAGER_URLhttp://datahub:3000Alias legacy per DATAHUB_URL. Ancora accettato per retrocompatibilità.
CACHEMANAGER_URLhttp://cachemanager:3006URL del cachemanager.
ALERTINGSERVICE_URLhttp://alertingservice:3008URL dell'alertingservice.
AUTHSERVICE_URLhttp://authService:3015URL dell'authservice.
TICKERSCANNER_URLhttp://tickerscanner:3013URL del tickerscanner.
SCHEDULER_URLhttp://scheduler:3014URL dello scheduler.
MARKETSIMULATOR_URLhttp://marketsimulator:3003URL del marketsimulator.
ORDERSIMULATOR_URLhttp://ordersimulator:3004URL dell'ordersimulator.
ORDERLISTNER_URLhttp://orderlistner:3005URL dell'orderlistner.
STRATEGYUTILS_URLhttp://strategyUtils:3007URL delle strategyUtils.
CAPITALMANAGER_URLhttp://capitalmanager:3009URL del capitalmanager.
SMA_URLhttp://sma:3010URL del servizio sma.
SLTP_URLhttp://sltp:3011URL del servizio sltp.
LIVEMARKETLISTNER_URLhttp://livemarketlistner:3012URL del livemarketlistner.
SERVICECONTROLPLANE_URLhttp://servicecontrolplane:3016URL del servizio stesso (auto-riferimento).

Pagine dedicate