Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Unified Diff: google_apis/gcm/monitoring/gcm_stats_recorder.cc

Issue 312553002: Rename GCMStatsRecorder to GCMStatsRecorderImpl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: google_apis/gcm/monitoring/gcm_stats_recorder.cc
diff --git a/google_apis/gcm/monitoring/gcm_stats_recorder.cc b/google_apis/gcm/monitoring/gcm_stats_recorder.cc
deleted file mode 100644
index f6c3e0f32ff87fd925494a50d566aabe7d6ad6f9..0000000000000000000000000000000000000000
--- a/google_apis/gcm/monitoring/gcm_stats_recorder.cc
+++ /dev/null
@@ -1,466 +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/format_macros.h"
-#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 item 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";
- }
-}
-
-// Helper for getting string representation of the
-// ConnectionFactory::ConnectionResetReason enum.
-std::string GetConnectionResetReasonString(
- gcm::ConnectionFactory::ConnectionResetReason reason) {
- switch (reason) {
- case gcm::ConnectionFactory::LOGIN_FAILURE:
- return "LOGIN_FAILURE";
- case gcm::ConnectionFactory::CLOSE_COMMAND:
- return "CLOSE_COMMAND";
- case gcm::ConnectionFactory::HEARTBEAT_FAILURE:
- return "HEARTBEAT_FAILURE";
- case gcm::ConnectionFactory::SOCKET_FAILURE:
- return "SOCKET_FAILURE";
- case gcm::ConnectionFactory::NETWORK_CHANGE:
- return "NETWORK_CHANGE";
- default:
- NOTREACHED();
- return "UNKNOWN_REASON";
- }
-}
-
-// Helper for getting string representation of the RegistrationRequest::Status
-// enum.
-std::string GetRegistrationStatusString(
- gcm::RegistrationRequest::Status status) {
- switch (status) {
- case gcm::RegistrationRequest::SUCCESS:
- return "SUCCESS";
- case gcm::RegistrationRequest::INVALID_PARAMETERS:
- return "INVALID_PARAMETERS";
- case gcm::RegistrationRequest::INVALID_SENDER:
- return "INVALID_SENDER";
- case gcm::RegistrationRequest::AUTHENTICATION_FAILED:
- return "AUTHENTICATION_FAILED";
- case gcm::RegistrationRequest::DEVICE_REGISTRATION_ERROR:
- return "DEVICE_REGISTRATION_ERROR";
- case gcm::RegistrationRequest::UNKNOWN_ERROR:
- return "UNKNOWN_ERROR";
- case gcm::RegistrationRequest::URL_FETCHING_FAILED:
- return "URL_FETCHING_FAILED";
- case gcm::RegistrationRequest::HTTP_NOT_OK:
- return "HTTP_NOT_OK";
- case gcm::RegistrationRequest::RESPONSE_PARSING_FAILED:
- return "RESPONSE_PARSING_FAILED";
- case gcm::RegistrationRequest::REACHED_MAX_RETRIES:
- return "REACHED_MAX_RETRIES";
- default:
- NOTREACHED();
- return "UNKNOWN_STATUS";
- }
-}
-
-// Helper for getting string representation of the RegistrationRequest::Status
-// enum.
-std::string GetUnregistrationStatusString(
- gcm::UnregistrationRequest::Status status) {
- switch (status) {
- case gcm::UnregistrationRequest::SUCCESS:
- return "SUCCESS";
- case gcm::UnregistrationRequest::URL_FETCHING_FAILED:
- return "URL_FETCHING_FAILED";
- case gcm::UnregistrationRequest::NO_RESPONSE_BODY:
- return "NO_RESPONSE_BODY";
- case gcm::UnregistrationRequest::RESPONSE_PARSING_FAILED:
- return "RESPONSE_PARSING_FAILED";
- case gcm::UnregistrationRequest::INCORRECT_APP_ID:
- return "INCORRECT_APP_ID";
- case gcm::UnregistrationRequest::INVALID_PARAMETERS:
- return "INVALID_PARAMETERS";
- case gcm::UnregistrationRequest::SERVICE_UNAVAILABLE:
- return "SERVICE_UNAVAILABLE";
- case gcm::UnregistrationRequest::INTERNAL_SERVER_ERROR:
- return "INTERNAL_SERVER_ERROR";
- case gcm::UnregistrationRequest::HTTP_NOT_OK:
- return "HTTP_NOT_OK";
- case gcm::UnregistrationRequest::UNKNOWN_ERROR:
- return "UNKNOWN_ERROR";
- default:
- NOTREACHED();
- return "UNKNOWN_STATUS";
- }
-}
-
-} // namespace
-
-GCMStatsRecorder::GCMStatsRecorder() : is_recording_(false), delegate_(NULL) {
-}
-
-GCMStatsRecorder::~GCMStatsRecorder() {
-}
-
-void GCMStatsRecorder::SetRecording(bool recording) {
- is_recording_ = recording;
-}
-
-void GCMStatsRecorder::SetDelegate(Delegate* delegate) {
- delegate_ = delegate;
-}
-
-void GCMStatsRecorder::Clear() {
- checkin_activities_.clear();
- connection_activities_.clear();
- registration_activities_.clear();
- receiving_activities_.clear();
- sending_activities_.clear();
-}
-
-void GCMStatsRecorder::NotifyActivityRecorded() {
- if (delegate_)
- delegate_->OnActivityRecorded();
-}
-
-void GCMStatsRecorder::RecordCheckin(
- const std::string& event,
- const std::string& details) {
- CheckinActivity data;
- CheckinActivity* inserted_data = InsertCircularBuffer(
- &checkin_activities_, data);
- inserted_data->event = event;
- inserted_data->details = details;
- NotifyActivityRecorded();
-}
-
-void GCMStatsRecorder::RecordCheckinInitiated(uint64 android_id) {
- if (!is_recording_)
- return;
- RecordCheckin("Checkin initiated",
- base::StringPrintf("Android Id: %" PRIu64, android_id));
-}
-
-void GCMStatsRecorder::RecordCheckinDelayedDueToBackoff(int64 delay_msec) {
- if (!is_recording_)
- return;
- RecordCheckin("Checkin backoff",
- base::StringPrintf("Delayed for %" PRId64 " msec",
- delay_msec));
-}
-
-void GCMStatsRecorder::RecordCheckinSuccess() {
- if (!is_recording_)
- return;
- RecordCheckin("Checkin succeeded", std::string());
-}
-
-void GCMStatsRecorder::RecordCheckinFailure(std::string status,
- bool will_retry) {
- if (!is_recording_)
- return;
- RecordCheckin("Checkin failed", base::StringPrintf(
- "%s.%s",
- status.c_str(),
- will_retry ? " Will retry." : "Will not retry."));
-}
-
-void GCMStatsRecorder::RecordConnection(
- const std::string& event,
- const std::string& details) {
- ConnectionActivity data;
- ConnectionActivity* inserted_data = InsertCircularBuffer(
- &connection_activities_, data);
- inserted_data->event = event;
- inserted_data->details = details;
- NotifyActivityRecorded();
-}
-
-void GCMStatsRecorder::RecordConnectionInitiated(const std::string& host) {
- if (!is_recording_)
- return;
- RecordConnection("Connection initiated", host);
-}
-
-void GCMStatsRecorder::RecordConnectionDelayedDueToBackoff(int64 delay_msec) {
- if (!is_recording_)
- return;
- RecordConnection("Connection backoff",
- base::StringPrintf("Delayed for %" PRId64 " msec",
- delay_msec));
-}
-
-void GCMStatsRecorder::RecordConnectionSuccess() {
- if (!is_recording_)
- return;
- RecordConnection("Connection succeeded", std::string());
-}
-
-void GCMStatsRecorder::RecordConnectionFailure(int network_error) {
- if (!is_recording_)
- return;
- RecordConnection("Connection failed",
- base::StringPrintf("With network error %d", network_error));
-}
-
-void GCMStatsRecorder::RecordConnectionResetSignaled(
- ConnectionFactory::ConnectionResetReason reason) {
- if (!is_recording_)
- return;
- RecordConnection("Connection reset",
- GetConnectionResetReasonString(reason));
-}
-
-void GCMStatsRecorder::RecordRegistration(
- const std::string& app_id,
- const std::string& sender_ids,
- const std::string& event,
- const std::string& details) {
- RegistrationActivity data;
- RegistrationActivity* inserted_data = InsertCircularBuffer(
- &registration_activities_, data);
- inserted_data->app_id = app_id;
- inserted_data->sender_ids = sender_ids;
- inserted_data->event = event;
- inserted_data->details = details;
- NotifyActivityRecorded();
-}
-
-void GCMStatsRecorder::RecordRegistrationSent(
- const std::string& app_id,
- const std::string& sender_ids) {
- UMA_HISTOGRAM_COUNTS("GCM.RegistrationRequest", 1);
- if (!is_recording_)
- return;
- RecordRegistration(app_id, sender_ids,
- "Registration request sent", std::string());
-}
-
-void GCMStatsRecorder::RecordRegistrationResponse(
- const std::string& app_id,
- const std::vector<std::string>& sender_ids,
- RegistrationRequest::Status status) {
- if (!is_recording_)
- return;
- RecordRegistration(app_id, JoinString(sender_ids, ","),
- "Registration response received",
- GetRegistrationStatusString(status));
-}
-
-void GCMStatsRecorder::RecordRegistrationRetryRequested(
- const std::string& app_id,
- const std::vector<std::string>& sender_ids,
- int retries_left) {
- if (!is_recording_)
- return;
- RecordRegistration(app_id, JoinString(sender_ids, ","),
- "Registration retry requested",
- base::StringPrintf("Retries left: %d", retries_left));
-}
-
-void GCMStatsRecorder::RecordUnregistrationSent(
- const std::string& app_id) {
- UMA_HISTOGRAM_COUNTS("GCM.UnregistrationRequest", 1);
- if (!is_recording_)
- return;
- RecordRegistration(app_id, std::string(), "Unregistration request sent",
- std::string());
-}
-
-void GCMStatsRecorder::RecordUnregistrationResponse(
- const std::string& app_id,
- UnregistrationRequest::Status status) {
- if (!is_recording_)
- return;
- RecordRegistration(app_id,
- std::string(),
- "Unregistration response received",
- GetUnregistrationStatusString(status));
-}
-
-void GCMStatsRecorder::RecordUnregistrationRetryDelayed(
- const std::string& app_id,
- int64 delay_msec) {
- if (!is_recording_)
- return;
- RecordRegistration(app_id,
- std::string(),
- "Unregistration retry delayed",
- base::StringPrintf("Delayed for %" PRId64 " msec",
- delay_msec));
-}
-
-void GCMStatsRecorder::RecordReceiving(
- const std::string& app_id,
- const std::string& from,
- int message_byte_size,
- const std::string& event,
- const std::string& details) {
- ReceivingActivity data;
- ReceivingActivity* inserted_data = InsertCircularBuffer(
- &receiving_activities_, data);
- inserted_data->app_id = app_id;
- inserted_data->from = from;
- inserted_data->message_byte_size = message_byte_size;
- inserted_data->event = event;
- inserted_data->details = details;
- NotifyActivityRecorded();
-}
-
-void GCMStatsRecorder::RecordDataMessageReceived(
- const std::string& app_id,
- const std::string& from,
- int message_byte_size,
- bool to_registered_app,
- ReceivedMessageType message_type) {
- if (to_registered_app)
- UMA_HISTOGRAM_COUNTS("GCM.DataMessageReceived", 1);
- if (!is_recording_)
- return;
- if (!to_registered_app) {
- RecordReceiving(app_id, from, message_byte_size, "Data msg received",
- to_registered_app ? std::string() :
- "No such registered app found");
- } else {
- switch(message_type) {
- case GCMStatsRecorder::DATA_MESSAGE:
- RecordReceiving(app_id, from, message_byte_size, "Data msg received",
- std::string());
- break;
- case GCMStatsRecorder::DELETED_MESSAGES:
- RecordReceiving(app_id, from, message_byte_size, "Data msg received",
- "Message has been deleted on server");
- break;
- default:
- NOTREACHED();
- }
- }
-}
-
-void GCMStatsRecorder::CollectActivities(
- RecordedActivities* recorder_activities) const {
- recorder_activities->checkin_activities.insert(
- recorder_activities->checkin_activities.begin(),
- checkin_activities_.begin(),
- checkin_activities_.end());
- recorder_activities->connection_activities.insert(
- recorder_activities->connection_activities.begin(),
- connection_activities_.begin(),
- connection_activities_.end());
- recorder_activities->registration_activities.insert(
- recorder_activities->registration_activities.begin(),
- registration_activities_.begin(),
- registration_activities_.end());
- recorder_activities->receiving_activities.insert(
- recorder_activities->receiving_activities.begin(),
- receiving_activities_.begin(),
- receiving_activities_.end());
- recorder_activities->sending_activities.insert(
- recorder_activities->sending_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;
- NotifyActivityRecorded();
-}
-
-void GCMStatsRecorder::RecordDataSentToWire(
- const std::string& app_id,
- const std::string& receiver_id,
- const std::string& message_id,
- int queued) {
- if (!is_recording_)
- return;
- 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_)
- return;
- 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_)
- return;
- RecordSending(app_id, receiver_id, message_id, "Received 'send error' msg",
- std::string());
-}
-
-} // namespace gcm
« no previous file with comments | « google_apis/gcm/monitoring/gcm_stats_recorder.h ('k') | google_apis/gcm/monitoring/gcm_stats_recorder_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698