-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Graphene is a java version of Graphite. To
store metrics, it uses Cassandra
and Elasticsearch instead of
Whisper to handle data in
a scalable way. It is designed to be compatible with Graphite's API and
easily integrates with Grafana's Graphite datasource.
In a cloud environment, the metric key increases exponentially. To cope
with this, each metric needs to be managed by time and removed or
archived according to the policy. Graphene is a system that supports
these methods later to help you manage your metrics cost-effectively. It
also supports multi-tenancy for metrics later, so that large numbers of
metrics can be maintained and managed in isolated clusters.
Input refers to the various metric system interface for receiving metric data.
For example, you may have multiple inputs like Graphite and InfluxDB.
Each is based on a different data format and converted by MetricConverter from Graphite or InfluxDB to Graphene.
The Graphene Processor queues the GrapheneMetrics converted from the various inputs and immediately handles to process keys and data.
The Key refers to a value that can identify the metric.
It can also mean a Key in Graphite (foo.bar) or a tag and measurement like InfluxDB.
key concepts
아래의 그림에는 [NONE], [ORDER] 두 가지의 Tenant 를 Handling 하는 KeyStoreHandler 를 property 에서 정의한 경우 어떻게 동작하는지 나타내고 있습니다.
각각의 KeyStoreHandler 는 특정한 Tenant 에 대한 Key 저장을 책임지게 되며, IndexName:Tenant:[Date|CURRENT]
를 alias 로 사용하게 됩니다. 현재 Write 가 되고 있는 Alias 는 IndexName:Tenant:CURRENT 로 Date 가 아닌 값을 가지게 됩니다. KeyStoreHandler 는 단순하게 IndexName:Tenant:CURRENT
Alias 가 할당된 Index 에만 Metric key 를 저장하게 됩니다.
ES 의 Index 를 특정한 날짜기반으로 Rotating 할 수 있도록 도와주는 역할은 KeyStoreHandler 안에 존재하는 Rotator 가 수행하게 됩니다. 이 Rotator 는 자신이 담당하고 있는 Tenant 의 Alias 를 Rotating 전략에 따라 새로운 Index 를 생성하고 Alias 를 부여합니다. 이를 통해 Index 들은 Tenant 가 각각의 날짜별로 Rotating 됩니다.
각각의 [Tenant]
KeyStoreHandler 와 Rotator 는 별도의 ES Cluster 들에 Indexing 을 할 수도 있고, 동일한 Cluster 의 index 에 단순하게 Alias 만 부여할 수도 있습니다. 이는 사용자의 설정에 따라 Dynamic 하게 구성될 수 있습니다.
The numeric value of the actual metric.
Currently, we only support Handlers stored in Cassandra, and we plan to support Elasticsearch later.