Sirikata
|
An implementation of TimeSeries which reports data to Graphite (actually to graphites underlying storage carbon + whisper). More...
#include <GraphiteTimeSeries.hpp>
Public Member Functions | |
GraphiteTimeSeries (Context *ctx, const String &host, uint16 port) | |
virtual | ~GraphiteTimeSeries () |
virtual void | report (const String &name, float64 val) |
Private Member Functions | |
void | connect () |
void | handleResolve (const boost::system::error_code &err, Network::TCPResolver::iterator endpoint_iterator) |
void | tryConnect (Network::TCPResolver::iterator endpoint_iterator) |
void | handleConnect (const boost::system::error_code &err, Network::TCPResolver::iterator endpoint_iterator) |
void | startSend () |
void | handleSent (const boost::system::error_code &err) |
void | cleanup () |
Private Attributes | |
String | mHost |
uint16 | mPort |
Network::TCPResolver * | mResolver |
Network::TCPSocket * | mSocket |
bool | mConnecting |
bool | mTransmitting |
std::queue< String > | mUpdates |
String | mCurrentUpdate |
An implementation of TimeSeries which reports data to Graphite (actually to graphites underlying storage carbon + whisper).
Graphite provides storage of numeric time-series data where resolution is reduced with age, allowing for fixed total storage. It also provides nice graphing utilities for exploring and inspecting the reported data. See http://graphite.wikidot.com.
Sirikata::Trace::GraphiteTimeSeries::GraphiteTimeSeries | ( | Context * | ctx, |
const String & | host, | ||
uint16 | port | ||
) |
Sirikata::Trace::GraphiteTimeSeries::~GraphiteTimeSeries | ( | ) | [virtual] |
References cleanup().
void Sirikata::Trace::GraphiteTimeSeries::cleanup | ( | ) | [private] |
References mConnecting, mResolver, mSocket, and mTransmitting.
Referenced by connect(), handleConnect(), handleResolve(), handleSent(), and ~GraphiteTimeSeries().
void Sirikata::Trace::GraphiteTimeSeries::connect | ( | ) | [private] |
References cleanup(), Sirikata::Logging::error, handleResolve(), Sirikata::Context::ioService, mConnecting, Sirikata::Trace::TimeSeries::mContext, mHost, mPort, and mResolver.
Referenced by report().
void Sirikata::Trace::GraphiteTimeSeries::handleConnect | ( | const boost::system::error_code & | err, |
Network::TCPResolver::iterator | endpoint_iterator | ||
) | [private] |
References cleanup(), Sirikata::Logging::error, GRAPHITE_LOG, mConnecting, mHost, mSocket, and tryConnect().
Referenced by tryConnect().
void Sirikata::Trace::GraphiteTimeSeries::handleResolve | ( | const boost::system::error_code & | err, |
Network::TCPResolver::iterator | endpoint_iterator | ||
) | [private] |
References cleanup(), Sirikata::Logging::error, GRAPHITE_LOG, Sirikata::Context::ioService, Sirikata::Trace::TimeSeries::mContext, mHost, mSocket, and tryConnect().
Referenced by connect().
void Sirikata::Trace::GraphiteTimeSeries::handleSent | ( | const boost::system::error_code & | err | ) | [private] |
References cleanup(), Sirikata::Logging::error, GRAPHITE_LOG, mTransmitting, mUpdates, and startSend().
Referenced by startSend().
void Sirikata::Trace::GraphiteTimeSeries::report | ( | const String & | name, |
float64 | val | ||
) | [virtual] |
Reimplemented from Sirikata::Trace::TimeSeries.
References connect(), Sirikata::Timer::getSpecifiedDate(), mConnecting, Sirikata::Trace::TimeSeries::mContext, mSocket, mTransmitting, mUpdates, Sirikata::Context::recentRealTime(), and startSend().
void Sirikata::Trace::GraphiteTimeSeries::startSend | ( | ) | [private] |
References Sirikata::Logging::error, handleSent(), mConnecting, mCurrentUpdate, mSocket, and mUpdates.
Referenced by handleSent(), and report().
void Sirikata::Trace::GraphiteTimeSeries::tryConnect | ( | Network::TCPResolver::iterator | endpoint_iterator | ) | [private] |
References Sirikata::Logging::error, handleConnect(), and mSocket.
Referenced by handleConnect(), and handleResolve().
bool Sirikata::Trace::GraphiteTimeSeries::mConnecting [private] |
Referenced by cleanup(), connect(), handleConnect(), report(), and startSend().
String Sirikata::Trace::GraphiteTimeSeries::mCurrentUpdate [private] |
Referenced by startSend().
String Sirikata::Trace::GraphiteTimeSeries::mHost [private] |
Referenced by connect(), handleConnect(), and handleResolve().
uint16 Sirikata::Trace::GraphiteTimeSeries::mPort [private] |
Referenced by connect().
Referenced by cleanup(), handleConnect(), handleResolve(), report(), startSend(), and tryConnect().
bool Sirikata::Trace::GraphiteTimeSeries::mTransmitting [private] |
Referenced by cleanup(), handleSent(), and report().
std::queue<String> Sirikata::Trace::GraphiteTimeSeries::mUpdates [private] |
Referenced by handleSent(), report(), and startSend().