[client-app] Measure and report sending times

Summary: See title

Test Plan: manual

Reviewers: spang, halla, evan

Reviewed By: halla, evan

Differential Revision: https://phab.nylas.com/D4014
This commit is contained in:
Juan Tejada 2017-02-22 09:47:17 -08:00
parent 4c57fcfab4
commit ae9aede300

View file

@ -32,6 +32,14 @@ export default class SendDraftTask extends BaseDraftTask {
return "Sending message";
}
performLocal() {
return super.performLocal()
.then(() => {
this._timerKey = `send-draft-${this.draftClientId}`
NylasEnv.timer.start(this._timerKey)
})
}
performRemote() {
return this.refreshDraftReference()
.then(this.assertDraftValidity)
@ -198,10 +206,26 @@ export default class SendDraftTask extends BaseDraftTask {
if (this.playSound && NylasEnv.config.get("core.sending.sounds")) {
SoundRegistry.playSound('send');
}
if (NylasEnv.timer.isPending(this._timerKey)) {
Actions.recordPerfMetric({
action: 'send-draft',
actionTimeMs: NylasEnv.timer.stop(this._timerKey),
maxValue: 60 * 1000,
succeeded: true,
})
}
return Promise.resolve(Task.Status.Success);
}
onError = (err) => {
if (NylasEnv.timer.isPending(this._timerKey)) {
Actions.recordPerfMetric({
action: 'send-draft',
actionTimeMs: NylasEnv.timer.stop(this._timerKey),
maxValue: 60 * 1000,
succeeded: false,
})
}
if (err instanceof BaseDraftTask.DraftNotFoundError) {
return Promise.resolve(Task.Status.Continue);
}