split logstash stash methods to stat types

This commit is contained in:
Stephen Birarda 2013-07-02 12:10:46 -07:00
parent 2a4d9c98ee
commit 64f3b55aaa
4 changed files with 26 additions and 6 deletions

View file

@ -138,7 +138,7 @@ int main(int argc, const char* argv[]) {
const char MIXER_LOGSTASH_METRIC_NAME[] = "audio-mixer-frame-time-usage";
float averageFrameTimePercentage = sumFrameTimePercentages / numStatCollections;
Logstash::stashValue(MIXER_LOGSTASH_METRIC_NAME, averageFrameTimePercentage);
Logstash::stashGaugeValue(MIXER_LOGSTASH_METRIC_NAME, averageFrameTimePercentage);
sumFrameTimePercentages = 0.0f;
numStatCollections = 0;

View file

@ -349,7 +349,7 @@ void Application::initializeGL() {
const char LOGSTASH_INTERFACE_START_TIME_KEY[] = "interface-start-time";
// ask the Logstash class to record the startup time
Logstash::stashValue(LOGSTASH_INTERFACE_START_TIME_KEY, startupTime);
Logstash::stashTimerValue(LOGSTASH_INTERFACE_START_TIME_KEY, startupTime);
}
// update before the first render

View file

@ -45,16 +45,32 @@ bool Logstash::shouldSendStats() {
return shouldSendStats;
}
void Logstash::stashValue(const char* key, float value) {
void Logstash::stashValue(char valueType, const char* key, float value) {
static char logstashPacket[MAX_PACKET_SIZE];
// load up the logstash packet with the key and the passed float value
// send it to 4 decimal places
int numPacketBytes = sprintf(logstashPacket, "%s %.4f", key, value);
int numPacketBytes = sprintf(logstashPacket, "%c %s %.4f", valueType, key, value);
AgentList *agentList = AgentList::getInstance();
if (agentList) {
agentList->getAgentSocket()->send(socket(), logstashPacket, numPacketBytes);
}
}
}
void Logstash::stashTimerValue(const char* key, float value) {
const char STAT_TYPE_TIMER = 't';
stashValue(STAT_TYPE_TIMER, key, value);
}
void Logstash::stashCounterValue(const char* key, float value) {
const char STAT_TYPE_COUNTER = 'c';
stashValue(STAT_TYPE_COUNTER, key, value);
}
void Logstash::stashGaugeValue(const char* key, float value) {
const char STAT_TYPE_GAUGE = 'g';
stashValue(STAT_TYPE_GAUGE, key, value);
}

View file

@ -18,8 +18,12 @@ class Logstash {
public:
static sockaddr* socket();
static bool shouldSendStats();
static void stashValue(const char* key, float value);
static void stashTimerValue(const char* key, float value);
static void stashCounterValue(const char* key, float value);
static void stashGaugeValue(const char* key, float value);
private:
static void stashValue(char valueType, const char* key, float value);
static sockaddr_in logstashSocket;
};