Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
|
TODO: Add ToThrift() for conversion to an RPC-friendly format. More...
#include <metrics.h>
Public Member Functions | |
virtual | ~Metric () |
Empty virtual destructor. More... | |
virtual void | ToJson (rapidjson::Document *document, rapidjson::Value *val)=0 |
name, value, human_readable, description More... | |
virtual void | ToLegacyJson (rapidjson::Document *document)=0 |
This method is kept for backwards-compatibility with CM5.0. More... | |
virtual std::string | ToHumanReadable ()=0 |
const std::string & | key () const |
const std::string & | description () const |
Protected Member Functions | |
Metric (const std::string &key, const std::string &description) | |
void | AddStandardFields (rapidjson::Document *document, rapidjson::Value *val) |
Protected Attributes | |
const std::string | key_ |
Unique key identifying this metric. More... | |
const std::string | description_ |
Friends | |
class | MetricGroup |
TODO: Add ToThrift() for conversion to an RPC-friendly format.
A metric is a container for some value, identified by a string key. Most metrics are numeric, but this metric base-class is general enough such that metrics may be lists, maps, histograms or other arbitrary structures. Metrics must be able to convert themselves to JSON (for integration with our monitoring tools, and for rendering in webpages). See ToJson(), and also ToLegacyJson() which ensures backwards compatibility with older versions of CM. Metrics should be supplied with a description, which is included in JSON output for display by monitoring systems / Impala's webpages.
|
inlinevirtual |
|
inlineprotected |
|
protected |
Convenience method to add standard fields (name, description, human readable string) to 'val'.
Definition at line 46 of file metrics.cc.
References impala::name.
Referenced by impala::SetMetric< std::string >::ToJson(), impala::StatsMetric< double >::ToJson(), and impala::SimpleMetric< T, metric_kind >::ToJson().
|
inline |
Definition at line 72 of file metrics.h.
References description_.
|
inline |
Definition at line 71 of file metrics.h.
References key_.
Referenced by impala::SimpleMetric< T, metric_kind >::Increment().
|
pure virtual |
Writes a human-readable representation of this metric to 'out'. This is the representation that is often displayed in webpages etc.
Implemented in impala::StatsMetric< T >, impala::StatsMetric< double >, impala::SimpleMetric< T, metric_kind >, impala::SetMetric< T >, impala::SetMetric< std::string >, and impala::TimerMetric.
|
pure virtual |
name, value, human_readable, description
Builds a new Value into 'val', using (if required) the allocator from 'document'. Should set the following fields where appropriate:
Implemented in impala::SimpleMetric< T, metric_kind >, impala::StatsMetric< T >, impala::StatsMetric< double >, impala::SetMetric< T >, impala::SetMetric< std::string >, and impala::TimerMetric.
|
pure virtual |
This method is kept for backwards-compatibility with CM5.0.
Adds a new json value directly to 'document' of the form: "name" : "human-readable-string"
Implemented in impala::SimpleMetric< T, metric_kind >, impala::StatsMetric< T >, impala::StatsMetric< double >, impala::SetMetric< T >, impala::SetMetric< std::string >, and impala::TimerMetric.
|
friend |
|
protected |
Description of this metric. TODO: share one copy amongst metrics with the same description.
Definition at line 80 of file metrics.h.
Referenced by description().
|
protected |
Unique key identifying this metric.
Definition at line 76 of file metrics.h.
Referenced by key(), impala::SetMetric< std::string >::ToLegacyJson(), impala::StatsMetric< double >::ToLegacyJson(), and impala::SimpleMetric< T, metric_kind >::ToLegacyJson().