The accounting system accumulates and reports utilization of the different types of resources in the VI-SEEM infrastructure using standard metrics. The information that is relevant to the VI-SEEM resources usage is gathered and organized in one central database. Each resource manager node that holds a relevant information publishes information through an accounting client. For the accounting framework this is a client-type service.
The accounting system provides an API and publisher clients for this API written in Python. If needed each resource administrator can extend or write a new publisher based on their specific requirements and policies. For ease of deployment and simplicity the dependencies of the Python clients are kept to a minimum. The accounting publishers communicate with the server side via REST API. They can upload whole logs with accounting data or use directly the API. The server-side is implemented in Python using Flask web framework and offers both API and web UI. Each resource type has a standardized accounting format that is described under the API section in the web UI.
The hardware requirements for the client side are Python (2.6+, 3.3+). The server-side is installed on machine with CentOS7 with installed virtualenv for virtual environment for Python, Gunicorn as light and fast Python WSGI application server, Nginx as a reverse-proxy in-front providing a high-performance handling of the user requests and MySQL as database server.
User Interface
The access to the accounting reports is available via the web interface that supports the VI-SEEM central login via SAML. The user can access the information grouped in table by date, year, country, resource name, virtual research community and application in rows and columns. For each of the resource types will have separate view – compute data for HPC and GRID computing data, cloud data for cloud accounting and storage data for storage accounting. Each generated report is presented in table and simple charts grouped by the user choice.