Skip to content

Configuration: Graphene Reader

dark edited this page Sep 19, 2019 · 2 revisions

graphene-reader: cassandra backed metric storage reader

Motivation

This is a "dual" project to disthene. Though the data written by disthene can still be read and plotted by combination of cyanite & graphite-api, this schema introduces quite some overhead at least caused by serializing/deserializing to/from json. In cases when rendering a graph involves 10s of millions of data points this overhead is quite noticable. Besides that graphite-api as well as original graphite rendering could really be a bit faster. All in all, this project is about read and rendering performance exactly like disthene is about write performance.

What's in

The following APIs are supported:

  • /paths API for backward compatibility with graphite-api and cyanite
  • /metrics/find for Grafana
  • /metrics
  • /render mostly as per Graphite specification version 0.10.0

Support Graphite Function

Please check this document for the graphene-reader configuration

Compiling

This is a standard Java Gradle project.

gradle jar

will most probably do the trick.

Running

There are a couple of things you will need in runtime

  • Cassandra 2.x
  • Elasticsearch 2.x
  • Grafana using graphite as the datasource

Quick start for development

You can run the disthene-reader app by using the default setup value as shown below.

$ export GRAPHENE_HOME=$GRAPHENE_INSTALLED_DIR
$ cd $GRAPHENE_HOME
$ docker-compose up -d
$ docker exec -it cassandra cqlsh
# create the keyspace and table using $GRAPHENE_HOME/infra/cassandra/2.x/metric.cql
$ -c $GRAPHENE_HOME/graphene-reader/graphene-reader-sample.yaml -l $GRAPHENE_HOME/config/graphene-reader-log4j-sample.xml -t $GRAPHENE_HOME/config/throttling-sample.yaml   

Clone this wiki locally