Skip to content
MatTim314 edited this page Nov 14, 2023 · 12 revisions

The whole accounting system is responsible for fetching accounting data and exporting them to the required format.

goat-diagram

The accounting system is divided into 2 components:

  • Client
  • Server

Client

The accounting client is a command-line tool that connects to a cloud, extracts data, filters them accordingly and then sends them to a server for further processing.

At the moment, the Goat project implemented Goat-one client for OpenNebula cloud computing platform. For more information, see here.

Server

The accounting server is a service that is running in the background and waiting for a connection from a compatible client. Once the server receives accounting data, it is transformed into the configured format and writes them to the destination file. Multiple clients can use the server at once.

The Goat server supports 3 structures and all of them are transformed into the specific format. Virtual machines are transformed according to the predefined template. The template is specified by the CLI flag before the server starts. The example of a template is here. Virtual networks are transformed into JSON format, and storages are transformed into XML format.

Consumer

The generated files are processed by the consumer. It collects data into a central accounting database where it is processed to generate statistical summaries.