What is Blueflood?
Blueflood is a multi-tenant distributed metric processing system created by engineers at Rackspace.
It is used in production by the Rackspace Monitoring team to process metrics generated by their monitoring systems.
Blueflood is capable of ingesting, rolling up and serving metrics at a massive scale.
Simply put, Blueflood is a big, fast database for your metrics.
Data from Blueflood can be used to construct dashboards, generate reports, graphs or for any other use involving time-series data.
It focuses on near-realtime data, with data that is queryable mere milliseconds after ingestion.
Data is stored using Cassandra to make Blueflood fault-tolerant and highly-available.
In contrast to forebearers such as CarbonDB or RRDTool, your Blueflood cluster can expand as your metrics needs grow.
Simply add more Cassandra nodes.
How to run this container?
This image comes with a set of default environment variables, which runs the Blueflood container decently.
If you want to run it in production environment or with some other settings, you can always adjust to taste.
Here's the list of ENV variables and their description.
|CASSANDRA_HOST||IP address of Cassandra seed. (Required)||null|
|ELASTICSEARCH_HOST||IP address of Elasticsearch node. (Required)||null|
|CASSANDRA_DRIVER||Driver type for connecting to C* - astyanax for thrift protocol (recommended for C* < 2.1) datastax for cql native protocol (recommended for C* > 1.2)||astyanax|
|MAX_ROLLUP_THREADS||Maximum number of threads participating in rolling up the metrics||20|
|MAX_CASSANDRA_CONNECTIONS||Maximum number of connections with each Cassandra node||70|
|INGEST_MODE||Whether to start the Ingest service||true|
|ROLLUP_MODE||Whether to start the Rollup service||true|
|QUERY_MODE||Whether to start the Query service||true|
|LOG_LEVEL||BF services Logging Level. See here for detailed description: https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html||INFO|
|INITIAL_HEAP_SIZE||Initial size of the heap to be allocated to BF process.||1G|
|MAX_HEAP_SIZE||Maximum size of the heap to be allocated to BF process.||1G|
|GRAPHITE_HOST||IP address of the Graphite host to monitor your container||" "|
|GRAPHITE_PORT||Line port of the Graphite host to monitor your container||2003|
|GRAPHITE_PREFIX||Prefix for graphite metrics.||Host name of the container.|
If you want to play with the these variables at PRO level, here's the list of all the properties that you can use as ENV variables: https://github.com/rackerlabs/blueflood/blob/master/blueflood-core/src/main/java/com/rackspacecloud/blueflood/service/CoreConfig.java