Skip to content

Commit

Permalink
Send telemetry about storage consistency
Browse files Browse the repository at this point in the history
This adds telemetry events about basic storage consistency, so we can start to
get an idea of how often IndexedDB eviction occurs in the field.

Fixes element-hq/element-web#9272
  • Loading branch information
jryans committed Mar 27, 2019
1 parent 7f90607 commit d06fb0d
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/utils/StorageManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ limitations under the License.
*/

import Matrix from 'matrix-js-sdk';
import Analytics from '../Analytics';

const localStorage = window.localStorage;

Expand All @@ -37,6 +38,10 @@ function error(msg) {
console.error(`StorageManager: ${msg}`);
}

function track(action) {
Analytics.trackEvent("StorageManager", action);
}

export async function checkConsistency() {
log("Checking storage consistency");
log(`Local storage supported? ${!!localStorage}`);
Expand All @@ -52,6 +57,7 @@ export async function checkConsistency() {
} else {
healthy = false;
error("Local storage cannot be used on this browser");
track("Local storage disabled");
}

if (indexedDB && localStorage) {
Expand All @@ -62,6 +68,7 @@ export async function checkConsistency() {
} else {
healthy = false;
error("Sync store cannot be used on this browser");
track("Sync store disabled");
}

if (indexedDB) {
Expand All @@ -72,6 +79,7 @@ export async function checkConsistency() {
} else {
healthy = false;
error("Crypto store cannot be used on this browser");
track("Crypto store disabled");
}

if (dataInLocalStorage && !dataInCryptoStore) {
Expand All @@ -80,11 +88,14 @@ export async function checkConsistency() {
"Data exists in local storage but not in crypto store. " +
"IndexedDB storage has likely been evicted by the browser!",
);
track("Crypto store evicted");
}

if (healthy) {
log("Storage consistency checks passed");
track("Consistency checks passed");
} else {
error("Storage consistency checks failed");
track("Consistency checks failed");
}
}

0 comments on commit d06fb0d

Please sign in to comment.