Skip to main content

Esse serviço é responsável por enviar para o Ozone dados estatísticos a respeito do uso do sistema (versão, módulos, licença, etc...).

Classes podem ser "coletáveis" implementando a interface LicenseControlledEntityInterface. O LicenseUpdater tem uma lista de classes desse tipo que sempre serão coletados + um interceptor para registro de classes dinamicamente.

LicenseControlledEntityInterface

É responsabilidade das classes que implementam essa interface informar, basicamente:

  • o seu próprio nome;
  • quanto o cliente poderia usar daquele recurso;
  • quando o cliente está usando daquele recurso;
  • o "quão próximo do limite" está o percentual de uso (success, warning, danger);

Por exemplo, a classe Controlador deve devolver algo parecido com :

{
"label": "Controladores",
"usage": 10,
"limit": 16,
"class": "warning",
"id": "Controlador"
}

Cada classe pode ter uma regra diferente para determinar success/warning/danger.

Além desses dados coletados de classes, são incluídos alguns dados estatísticos gerais, como versão do sistema, facility e datas do log de operação e log de eventos mais recentes.

Envio para o Ozone

Com todas essa informações coletadas e transformadas em um JSON, seleciona-se uma estratégia para fazer o envio para o Ozone:

  1. se o sistema é SaaS, é feito o envio através de um broker MQTT do Ozone.
  2. se o sistema é OnPremises, é feito o envio através de uma API MQTT do Ozone (mais garantido e não expõe credenciais MQTT).

Essas informações são coletadas/enviadas a cada hora.