CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
perf::TelemetryAggregator Class Referenceabstract

#include <telemetry_aggregator.h>

Inheritance diagram for perf::TelemetryAggregator:
Collaboration diagram for perf::TelemetryAggregator:

Public Member Functions

virtual ~TelemetryAggregator ()
void Spawn ()

Static Public Member Functions

static TelemetryAggregatorCreate (Statistics *statistics, int send_rate, OptionsManager *options_mgr, const std::string &fqrn, const TelemetrySelector type)

Protected Member Functions

 TelemetryAggregator (Statistics *statistics, int send_rate_sec, const std::string &fqrn)
virtual void PushMetrics ()=0

Static Protected Member Functions

static void * MainTelemetry (void *data)

Protected Attributes

const int send_rate_sec_
int pipe_terminate_ [2]
pthread_t thread_telemetry_
std::string fqrn_
bool is_zombie_
uint64_t timestamp_
std::map< std::string, int64_t > counters_

Private Member Functions

 FRIEND_TEST (T_TelemetryAggregator, EmptyCounters)
 FRIEND_TEST (T_TelemetryAggregator, FailCreate)
 FRIEND_TEST (T_TelemetryAggregator, ExtraFields_Tags)
 FRIEND_TEST (T_TelemetryAggregator, UpdateCounters_WithExtraFields_Tags)
- Private Member Functions inherited from SingleCopy
 SingleCopy ()

Detailed Description

Definition at line 41 of file telemetry_aggregator.h.

Constructor & Destructor Documentation

perf::TelemetryAggregator::~TelemetryAggregator ( )

Definition at line 53 of file

Here is the call graph for this function:

perf::TelemetryAggregator::TelemetryAggregator ( Statistics statistics,
int  send_rate_sec,
const std::string &  fqrn 

Base constructor taking care of threading infrastructure. Must always be called in the constructor of the custom telemetry classes.

Definition at line 96 of file telemetry_aggregator.h.

Member Function Documentation

TelemetryAggregator * perf::TelemetryAggregator::Create ( Statistics statistics,
int  send_rate,
OptionsManager options_mgr,
const std::string &  fqrn,
const TelemetrySelector  type 

Creates the requested telemetry aggregator. This function is also used to register new classes to aggregate telemetry.

Returns the newly created TelemetryAggregator or NULL if the creation was not successful.

Definition at line 20 of file

Referenced by MountPoint::SetupBehavior().

Here is the call graph for this function:

Here is the caller graph for this function:

perf::TelemetryAggregator::FRIEND_TEST ( T_TelemetryAggregator  ,
perf::TelemetryAggregator::FRIEND_TEST ( T_TelemetryAggregator  ,
perf::TelemetryAggregator::FRIEND_TEST ( T_TelemetryAggregator  ,
perf::TelemetryAggregator::FRIEND_TEST ( T_TelemetryAggregator  ,
void * perf::TelemetryAggregator::MainTelemetry ( void *  data)

Main loop executed by the telemetry thread. Checks every x seconds if the telemetry thread should continue running. If yes, takes a snapshot of all statistic counters that are not 0 and calls PushMetrics()

PushMetrics() is defined by the custom telemetry classes and performs all operation on the statistic counters to send/store them.

Definition at line 71 of file

Referenced by Spawn().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void perf::TelemetryAggregator::PushMetrics ( )
protectedpure virtual

PushMetrics is called after the snapshot of the counters. It should perform all manipulations needed for the counters and the sending/storing of the counters.

Needs to be implemented in the custom telemetry class.

Implemented in perf::TelemetryAggregatorInflux.

Referenced by MainTelemetry().

Here is the caller graph for this function:

void perf::TelemetryAggregator::Spawn ( )

Spawns the telemetry thread.

Definition at line 62 of file

Referenced by Spawn().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

std::map<std::string, int64_t> perf::TelemetryAggregator::counters_
std::string perf::TelemetryAggregator::fqrn_
bool perf::TelemetryAggregator::is_zombie_
int perf::TelemetryAggregator::pipe_terminate_[2]
const int perf::TelemetryAggregator::send_rate_sec_

Definition at line 69 of file telemetry_aggregator.h.

Referenced by MainTelemetry(), and Spawn().

Statistics* perf::TelemetryAggregator::statistics_

Definition at line 68 of file telemetry_aggregator.h.

Referenced by MainTelemetry().

pthread_t perf::TelemetryAggregator::thread_telemetry_

Definition at line 71 of file telemetry_aggregator.h.

Referenced by Spawn(), TelemetryAggregator(), and ~TelemetryAggregator().

uint64_t perf::TelemetryAggregator::timestamp_

The documentation for this class was generated from the following files: