Report unnarrow times as well as narrow times

(imported from commit b3a889aa11dc112508c5a1d213f68e5223a879fc)
This commit is contained in:
Leo Franchi 2014-02-13 12:49:44 -05:00
parent 91445035bc
commit acec697fe7
4 changed files with 43 additions and 0 deletions

View File

@ -54,3 +54,7 @@ stats.timers.<app>.endtoend.displayed_time.all.<type> (5) = sum stats.timers.<ap
stats.timers.<app>.narrow.initial_core.all.<type> (5) = sum stats.timers.<app>.narrow.initial_core.*.<type> stats.timers.<app>.narrow.initial_core.all.<type> (5) = sum stats.timers.<app>.narrow.initial_core.*.<type>
stats.timers.<app>.narrow.initial_free.all.<type> (5) = sum stats.timers.<app>.narrow.initial_free.*.<type> stats.timers.<app>.narrow.initial_free.all.<type> (5) = sum stats.timers.<app>.narrow.initial_free.*.<type>
stats.timers.<app>.narrow.network.all.<type> (5) = sum stats.timers.<app>.narrow.network.*.<type> stats.timers.<app>.narrow.network.all.<type> (5) = sum stats.timers.<app>.narrow.network.*.<type>
# Do the same for unnarrow times
stats.timers.<app>.unnarrow.initial_core.all.<type> (5) = sum stats.timers.<app>.unnarrow.initial_core.*.<type>
stats.timers.<app>.unnarrow.initial_free.all.<type> (5) = sum stats.timers.<app>.unnarrow.initial_free.*.<type>

View File

@ -3,6 +3,7 @@ var narrow = (function () {
var exports = {}; var exports = {};
var current_filter; var current_filter;
var unnarrow_times;
// A small concession to unit testing follows: // A small concession to unit testing follows:
exports._set_current_filter = function (filter) { exports._set_current_filter = function (filter) {
@ -116,6 +117,26 @@ function maybe_report_narrow_time(msg_list) {
} }
function report_unnarrow_time() {
if (unnarrow_times === undefined ||
unnarrow_times.start_time === undefined ||
unnarrow_times.initial_core_time === undefined ||
unnarrow_times.initial_free_time === undefined) {
return;
}
var initial_core_time = unnarrow_times.initial_core_time - unnarrow_times.start_time;
var initial_free_time = unnarrow_times.initial_free_time - unnarrow_times.start_time;
channel.post({
url: '/json/report_unnarrow_time',
data: {"initial_core": initial_core_time.toString(),
"initial_free": initial_free_time.toString()}
});
unnarrow_times = {};
}
exports.activate = function (raw_operators, opts) { exports.activate = function (raw_operators, opts) {
var start_time = new Date(); var start_time = new Date();
var was_narrowed_already = exports.active(); var was_narrowed_already = exports.active();
@ -386,6 +407,7 @@ exports.deactivate = function () {
if (current_filter === undefined) { if (current_filter === undefined) {
return; return;
} }
unnarrow_times = {start_time: new Date()};
blueslip.debug("Unnarrowed"); blueslip.debug("Unnarrowed");
if (ui.actively_scrolling()) { if (ui.actively_scrolling()) {
@ -464,6 +486,12 @@ exports.deactivate = function () {
compose_fade.update_message_list(); compose_fade.update_message_list();
$(document).trigger($.Event('narrow_deactivated.zulip', {msg_list: current_msg_list})); $(document).trigger($.Event('narrow_deactivated.zulip', {msg_list: current_msg_list}));
unnarrow_times.initial_core_time = new Date();
setTimeout(function () {
unnarrow_times.initial_free_time = new Date();
report_unnarrow_time();
});
}; };
exports.restore_home_state = function () { exports.restore_home_state = function () {

View File

@ -1711,6 +1711,16 @@ def json_report_narrow_time(request, user_profile,
statsd.timing("narrow.network.%s" % (statsd_key(user_profile.realm.domain, clean_periods=True),), network) statsd.timing("narrow.network.%s" % (statsd_key(user_profile.realm.domain, clean_periods=True),), network)
return json_success() return json_success()
@authenticated_json_post_view
@has_request_variables
def json_report_unnarrow_time(request, user_profile,
initial_core=REQ(converter=to_non_negative_int),
initial_free=REQ(converter=to_non_negative_int)):
request._log_data["extra"] = "[%sms/%sms]" % (initial_core, initial_free)
statsd.timing("unnarrow.initial_core.%s" % (statsd_key(user_profile.realm.domain, clean_periods=True),), initial_core)
statsd.timing("unnarrow.initial_free.%s" % (statsd_key(user_profile.realm.domain, clean_periods=True),), initial_free)
return json_success()
@authenticated_json_post_view @authenticated_json_post_view
@has_request_variables @has_request_variables
def json_report_error(request, user_profile, message=REQ, stacktrace=REQ, def json_report_error(request, user_profile, message=REQ, stacktrace=REQ,

View File

@ -130,6 +130,7 @@ urlpatterns += patterns('zerver.views',
url(r'^json/report_error$', 'json_report_error'), url(r'^json/report_error$', 'json_report_error'),
url(r'^json/report_send_time$', 'json_report_send_time'), url(r'^json/report_send_time$', 'json_report_send_time'),
url(r'^json/report_narrow_time$', 'json_report_narrow_time'), url(r'^json/report_narrow_time$', 'json_report_narrow_time'),
url(r'^json/report_unnarrow_time$', 'json_report_unnarrow_time'),
url(r'^json/update_message_flags$', 'messages.json_update_flags'), url(r'^json/update_message_flags$', 'messages.json_update_flags'),
url(r'^json/register$', 'json_events_register'), url(r'^json/register$', 'json_events_register'),
url(r'^json/upload_file$', 'json_upload_file'), url(r'^json/upload_file$', 'json_upload_file'),