Cyclops 3.0 release with rule engine

Our flagship open-source framework for cloud billing – Cyclops has matured to version 3.0 today. Over the past several months, Cyclops team at SPLab has gathered community feedback, updated the architecture, changed the database backends and improved the reliability of the framework.

Cyclops 3.0 release includes:

  • New pricing and billing rule engine
  • PostgreSQL/TimescaleDB database backend
  • HTTPS support and message acknowledgments
  • More robust and failure resilient microservices

Continue reading

Developers onboarding and how to write your own usage collector for RCB Cyclops

It has been a month since the RCB team released Cyclops 2.0, its flagship open source framework for cloud billing and service providers. The release itself was very successful, as it attracted many new users and generated a substantial growth in the number of Github views and unique visitors.

Last week we carried out our first developers on-boarding session over Google Hangouts, focusing on how to write your own collector for RCB Cyclops. In this blog post we will go over a hypothetical use case of PaaS (Pigeon as a Service), which as you will see is very similar to OpenStack Events collection we already support. The idea is to show how easy it is to implement both discrete rating, as well as event processing (where pigeon receives events similar to OpenStack).

Continue reading

InfluxDB design guidelines to avoid performance issues

Cyclops, ICCLab’s Rating-Charging-Billing solution for Cloud providers, capable of collecting usage records from both OpenStack and CloudStack, has been working with time series data from the very beginning. Our choice for database technology that is highly optimised to handle such data was InfluxDB written in GO.

Time series data is generally a sequence of data points – in our case either Usage Data Records or Charge Data Records. These datasets often have hundreds of millions of rows, including timestamps and large quantities of immutable fields. Entries do not typically change after they are added to the database, where new entries are being appended rather than operated on. Continue reading