Index: trunk/src/google_apis/gcm/monitoring/gcm_stats_recorder.cc |
=================================================================== |
--- trunk/src/google_apis/gcm/monitoring/gcm_stats_recorder.cc (revision 264317) |
+++ trunk/src/google_apis/gcm/monitoring/gcm_stats_recorder.cc (working copy) |
@@ -1,150 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "google_apis/gcm/monitoring/gcm_stats_recorder.h" |
- |
-#include <deque> |
-#include <vector> |
- |
-#include "base/logging.h" |
-#include "base/metrics/histogram.h" |
-#include "base/strings/string_util.h" |
-#include "base/strings/stringprintf.h" |
- |
-namespace gcm { |
- |
-const uint32 MAX_LOGGED_ACTIVITY_COUNT = 100; |
- |
-namespace { |
- |
-// Insert an itme to the front of deque while maintaining the size of the deque. |
-// Overflow item is discarded. |
-template <typename T> |
-T* InsertCircularBuffer(std::deque<T>* q, const T& item) { |
- DCHECK(q); |
- q->push_front(item); |
- if (q->size() > MAX_LOGGED_ACTIVITY_COUNT) { |
- q->pop_back(); |
- } |
- return &q->front(); |
-} |
- |
-// Helper for getting string representation of the MessageSendStatus enum. |
-std::string GetMessageSendStatusString( |
- gcm::MCSClient::MessageSendStatus status) { |
- switch (status) { |
- case gcm::MCSClient::QUEUED: |
- return "QUEUED"; |
- case gcm::MCSClient::SENT: |
- return "SENT"; |
- case gcm::MCSClient::QUEUE_SIZE_LIMIT_REACHED: |
- return "QUEUE_SIZE_LIMIT_REACHED"; |
- case gcm::MCSClient::APP_QUEUE_SIZE_LIMIT_REACHED: |
- return "APP_QUEUE_SIZE_LIMIT_REACHED"; |
- case gcm::MCSClient::MESSAGE_TOO_LARGE: |
- return "MESSAGE_TOO_LARGE"; |
- case gcm::MCSClient::NO_CONNECTION_ON_ZERO_TTL: |
- return "NO_CONNECTION_ON_ZERO_TTL"; |
- case gcm::MCSClient::TTL_EXCEEDED: |
- return "TTL_EXCEEDED"; |
- default: |
- NOTREACHED(); |
- return "UNKNOWN"; |
- } |
-} |
- |
-} // namespace |
- |
-GCMStatsRecorder::Activity::Activity() |
- : time(base::Time::Now()) { |
-} |
- |
-GCMStatsRecorder::Activity::~Activity() { |
-} |
- |
-GCMStatsRecorder::SendingActivity::SendingActivity() { |
-} |
- |
-GCMStatsRecorder::SendingActivity::~SendingActivity() { |
-} |
- |
-GCMStatsRecorder::GCMStatsRecorder() : is_recording_(false) { |
-} |
- |
-GCMStatsRecorder::~GCMStatsRecorder() { |
-} |
- |
-void GCMStatsRecorder::SetRecording(bool recording) { |
- is_recording_ = recording; |
-} |
- |
-void GCMStatsRecorder::Clear() { |
- sending_activities_.clear(); |
-} |
- |
-void GCMStatsRecorder::CollectSendingActivities( |
- std::vector<SendingActivity>* activities) const { |
- activities->insert(activities->begin(), |
- sending_activities_.begin(), |
- sending_activities_.end()); |
-} |
- |
-void GCMStatsRecorder::RecordSending(const std::string& app_id, |
- const std::string& receiver_id, |
- const std::string& message_id, |
- const std::string& event, |
- const std::string& details) { |
- SendingActivity data; |
- SendingActivity* inserted_data = InsertCircularBuffer( |
- &sending_activities_, data); |
- inserted_data->app_id = app_id; |
- inserted_data->receiver_id = receiver_id; |
- inserted_data->message_id = message_id; |
- inserted_data->event = event; |
- inserted_data->details = details; |
-} |
- |
-void GCMStatsRecorder::RecordDataSentToWire( |
- const std::string& app_id, |
- const std::string& receiver_id, |
- const std::string& message_id, |
- int queued) { |
- if (is_recording_) { |
- RecordSending(app_id, receiver_id, message_id, "Data msg sent to wire", |
- base::StringPrintf("Msg queued for %d seconds", queued)); |
- } |
-} |
- |
-void GCMStatsRecorder::RecordNotifySendStatus( |
- const std::string& app_id, |
- const std::string& receiver_id, |
- const std::string& message_id, |
- gcm::MCSClient::MessageSendStatus status, |
- int byte_size, |
- int ttl) { |
- UMA_HISTOGRAM_ENUMERATION("GCM.SendMessageStatus", status, |
- gcm::MCSClient::SEND_STATUS_COUNT); |
- if (is_recording_) { |
- RecordSending( |
- app_id, |
- receiver_id, |
- message_id, |
- base::StringPrintf("SEND status: %s", |
- GetMessageSendStatusString(status).c_str()), |
- base::StringPrintf("Msg size: %d bytes, TTL: %d", byte_size, ttl)); |
- } |
-} |
- |
-void GCMStatsRecorder::RecordIncomingSendError( |
- const std::string& app_id, |
- const std::string& receiver_id, |
- const std::string& message_id) { |
- UMA_HISTOGRAM_COUNTS("GCM.IncomingSendErrors", 1); |
- if (is_recording_) { |
- RecordSending(app_id, receiver_id, message_id, "Received 'send error' msg", |
- std::string()); |
- } |
-} |
- |
-} // namespace gcm |