Skip to content

Configuration

skovzhaw edited this page Nov 2, 2016 · 23 revisions

Installation

Before any configuration can take place you need to make sure all dependencies are installed.

If you want to have logging enabled, consult this guide.

Configuration

For RCB Cyclops framework and its individual micro services (UDR, RC and Billing) to function properly, the following needs to be configured. If you are running the whole framework on the same machine as its dependencies, you don't need to configure anything, as defaults (localhost) will be used.

In case that you are running the framework in a distributed manner, you will need to update configuration files of individual micro services to reflect your deployment. You can find these files in the config subdirectories. Like for example with UDR it is core/udr/config/udr.conf

Server port

All micro services are offering RESTful API either over address:port directly, or by registering to the load balancer. In any case, they are listening on a port that is specified in the configuration file:

  • ServerHTTPPort=portnumber

If you are orchestrating instantiation of individual services yourself, you can specify the port on the command line by passing it a numeric parameter (read more in deployment guide).

InfluxDB

Because of the nature of ingested and processed data the RCB Cyclops is working with time series databases. Once again, if you are running everything on the same machine and this database is accessible over localhost, you don't need to configure anything.

On top of the regular connection settings, these specific configuration parameters are present:

  • InfluxDBTSDB=cyclops.name - database where time series data will be stored
  • InfluxDBDefaultMeasurement=unknown - name if _class field is omitted
  • InfluxDBPageSizeLimit=500 - page limit size to guarantee performant queries

RabbitMQ

It is paramount to set up RabbitMQ and its binding properly, as all RCB Cyclops micro services rely on it. During the installation process RabbitMQ is installed as well as bind, so if you are running everything together and RabbitMQ is being accessed over localhost, you don't need to configure anything.

However, if you decide to host the RabbitMQ on separate server, you will need to bind it via

bash install/setup_bindings.sh address port

And configure individual core micro services (as well as your usage collectors) to connect to this RabbitMQ installation. To understand more about how individual flow of communication happens (data published on exchanges and consumed over queues) inspect setup_bindings.sh script.

In case that you decided to access RabbitMQ remotely, UDR, RC (Rate and CDR), as well as Billing micro services will have to know about the new location via their configuration files.

On top of the regular connection settings, these specific parameters are present for consuming:

  • ConsumerDataQueue=cyclops.name.consume
  • ConsumerCommandsQueue=cyclops.name.commands

In order to understand more about how consuming queues work, please refer to data structures and custom commands guides.

And these for publishing:

  • PublisherDispatchExchange=cyclops.name.dispatch
  • PublisherBroadcastExchange=cyclops.name.broadcast
  • PublisherByDefaultDispatchInsteadOfBroadcast=false
  • PublisherIncludeAlsoUnknown=false

If you are unsure what these parameters mean, please consult the write your own collector guide.

Clone this wiki locally