Explorar el Código

HUE-6077 [frontend] Centralized analytics functionalities

Enrico Berti hace 8 años
padre
commit
115454f

+ 0 - 6
apps/beeswax/src/beeswax/static/beeswax/js/beeswax.vm.js

@@ -1060,9 +1060,3 @@ function clickHard(el) {
     }
   }, 100);
 }
-
-function logGA(page) {
-  if (typeof trackOnGA == 'function'){
-    trackOnGA('beeswax/' + page);
-  }
-}

+ 10 - 10
apps/beeswax/src/beeswax/templates/execute.mako

@@ -1475,7 +1475,7 @@ $(document).ready(function () {
     if ($(e.target).attr("href") != "#results" && $(e.target).attr("href") != "#columns"){
       $($(e.target).attr("href")).css('height', 'auto');
       if ($(e.target).attr("href") == "#chart") {
-        logGA('results/chart');
+        hueAnalytics.log('beeswax', 'results/chart');
         predictGraph();
       }
     } else {
@@ -2281,7 +2281,7 @@ function trySaveDesign() {
   viewModel.design.query.value(query);
   if (viewModel.design.id() && viewModel.design.id() != -1) {
     viewModel.saveDesign();
-    logGA('design/save');
+    hueAnalytics.log('beeswax', 'design/save');
   }
 }
 
@@ -2297,7 +2297,7 @@ function trySaveAsDesign() {
     viewModel.saveDesign();
     $('#saveAs').find('.help-inline').text('');
     $('#saveAs').find('.control-group').removeClass('error');
-    logGA('design/save-as');
+    hueAnalytics.log('beeswax', 'design/save-as');
   } else if (viewModel.design.name()) {
     $.jHueNotify.error("${_('No query provided to save.')}");
     $('#saveAs').modal('hide');
@@ -2321,7 +2321,7 @@ function trySaveResults() {
       $("#saveResultsModal .loader").hide();
     });
   }
-  logGA('results/save');
+  hueAnalytics.log('beeswax', 'results/save');
 }
 
 $(document).on('saved.results', function() {
@@ -2353,7 +2353,7 @@ function tryExecuteQuery() {
     viewModel.executeQuery();
   }
 
-  logGA('query/execute');
+  hueAnalytics.log('beeswax', 'query/execute');
 }
 
 function tryExecuteNextStatement() {
@@ -2373,7 +2373,7 @@ function tryExecuteNextStatement() {
     viewModel.executeNextStatement();
   }
 
-  logGA('query/execute_next');
+  hueAnalytics.log('beeswax', 'query/execute_next');
 }
 
 function tryExecuteParameterizedQuery() {
@@ -2389,7 +2389,7 @@ function tryExplainQuery() {
   viewModel.design.query.value(query);
   viewModel.explainQuery();
 
-  logGA('query/explain');
+  hueAnalytics.log('beeswax', 'query/explain');
 }
 
 
@@ -2732,7 +2732,7 @@ $(document).ready(function () {
       renderRecent();
       placeResizePanelHandle();
 
-      logGA('query/results');
+      hueAnalytics.log('beeswax', 'query/results');
     },
     'query/explanation': function () {
       if (! viewModel.design.results.explanation()) {
@@ -2750,7 +2750,7 @@ $(document).ready(function () {
 
       clickHard('.resultsContainer .nav-tabs a[href="#log"]');
 
-      logGA('watch/logs');
+      hueAnalytics.log('beeswax', 'watch/logs');
     },
     'watch/results': function() {
       showSection('query-editor');
@@ -2758,7 +2758,7 @@ $(document).ready(function () {
 
       clickHard('.resultsContainer .nav-tabs a[href="#results"]');
 
-      logGA('watch/results');
+      hueAnalytics.log('beeswax', 'watch/results');
     },
     '*': function () {
       routie('query');

+ 9 - 19
apps/hbase/src/hbase/templates/app.mako

@@ -765,7 +765,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
       }
       if (!element.hasClass('in'))
         element.modal('show');
-      logGA(modal.slice(0, modal.indexOf('_modal') != -1 ? modal.indexOf('_modal') : modal.length));
+      hueAnalytics.log('hbase', modal.slice(0, modal.indexOf('_modal') != -1 ? modal.indexOf('_modal') : modal.length));
     }
 
 
@@ -859,16 +859,6 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
       return encodeURIComponent(value);
     };
 
-    function logGA(postfix) {
-      if (postfix == null)
-        postfix = "";
-      if (typeof trackOnGA == 'function') {
-        window.setTimeout(function () {
-          trackOnGA('hbase/' + postfix);
-        }, 10);
-      }
-    };
-
     function table_search(value) {
       routie(app.cluster() + '/' + app.views.tabledata.name() + '/query/' + value);
     }
@@ -1591,7 +1581,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
 
       var _reload = self.reload;
       self.reload = function (callback) {
-        logGA('get_row');
+        hueAnalytics.log('hbase', 'get_row');
         _reload(function () {
           if (callback != null)
             callback();
@@ -1614,7 +1604,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
       });
       self.drop = function (cont) {
         function doDrop() {
-          logGA('filter_columns');
+          hueAnalytics.log('hbase', 'filter_columns');
           self.parent.isLoading(true);
           return API.queryTable('deleteColumn', prepForTransport(self.parent.row), prepForTransport(self.name)).done(function (data) {
             self.parent.items.remove(self);
@@ -1640,7 +1630,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
 
       self.value.subscribe(function (value) {
         //change transport prep to object wrapper
-        logGA('put_column');
+        hueAnalytics.log('hbase', 'put_column');
         API.queryTable('putColumn', prepForTransport(self.parent.row), prepForTransport(self.name), "hbase-post-key-" + JSON.stringify(value)).done(function (data) {
           self.reload(function () {
           }, true);
@@ -2351,7 +2341,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
           routie(cluster + '/' + table);
         },
         ':cluster/:table/query/:query': function (cluster, table, query) {
-          logGA('query_table');
+          hueAnalytics.log('hbase', 'query_table');
           $.totalStorage('hbase_cluster', cluster);
           app.station('table');
           app.search.cur_input(query);
@@ -2365,7 +2355,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
           routed = true;
         },
         ':cluster/:table': function (cluster, table) {
-          logGA('view_table');
+          hueAnalytics.log('hbase', 'view_table');
           $.totalStorage('hbase_cluster', cluster);
           Router.setTable(cluster, table);
           resetSearch();
@@ -2378,7 +2368,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
           if ($.inArray(cluster, app.clusterNames()) == -1) {
             routie('');
           } else {
-            logGA('view_cluster');
+            hueAnalytics.log('hbase', 'view_cluster');
             $.totalStorage('hbase_cluster', cluster);
             app.station('cluster');
             app.cluster(cluster);
@@ -2394,7 +2384,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
           routed = true;
         },
         'error': function () {
-          logGA('error');
+          hueAnalytics.log('hbase', 'error');
           routed = true;
         },
         '': function () {
@@ -2408,7 +2398,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
           routed = true;
         },
         '*': function () {
-          logGA('');
+          hueAnalytics.log('hbase', '');
           if (!routed)
             history.back();
           routed = false;

+ 1 - 8
apps/oozie/src/oozie/static/oozie/js/bundle-editor.ko.js

@@ -127,7 +127,7 @@ var BundleEditorViewModel = function (bundle_json, coordinators_json, can_edit_j
     // If self.bundle.id() == null, need to save wf for now
     $(".jHueNotify").hide();
     if (!self.bundle.isDirty()) {
-      logGA('submit');
+      hueAnalytics.log('oozie/editor/bundle', 'submit');
       $.get("/oozie/editor/bundle/submit/" + self.bundle.id(), {
       }, function (data) {
         $(document).trigger("showSubmitPopup", data);
@@ -137,10 +137,3 @@ var BundleEditorViewModel = function (bundle_json, coordinators_json, can_edit_j
     }
   };
 };
-
-
-function logGA(page) {
-  if (typeof trackOnGA == 'function') {
-    trackOnGA('oozie/editor/bundle/' + page);
-  }
-}

+ 2 - 9
apps/oozie/src/oozie/static/oozie/js/coordinator-editor.ko.js

@@ -260,7 +260,7 @@ var CoordinatorEditorViewModel = (function () {
 
     self.gen_xml = function () {
       $(".jHueNotify").hide();
-      logGA('gen_xml');
+      hueAnalytics.log('oozie/editor/coordinator', 'gen_xml');
 
       $.post("/oozie/editor/coordinator/gen_xml/", {
         "coordinator": ko.mapping.toJSON(self.coordinator, COORDINATOR_MAPPING)
@@ -280,7 +280,7 @@ var CoordinatorEditorViewModel = (function () {
       $(".jHueNotify").hide();
 
       if (!self.coordinator.isDirty()) {
-        logGA('submit');
+        hueAnalytics.log('oozie/editor/coordinator', 'submit');
         $.get("/oozie/editor/coordinator/submit/" + self.coordinator.id(), {
         }, function (data) {
           $(document).trigger("showSubmitPopup", data);
@@ -291,12 +291,5 @@ var CoordinatorEditorViewModel = (function () {
     };
   };
 
-
-  function logGA(page) {
-    if (typeof trackOnGA == 'function') {
-      trackOnGA('oozie/editor/coordinator/' + page);
-    }
-  }
-
   return CoordinatorEditorViewModel;
 })();

+ 5 - 11
apps/oozie/src/oozie/static/oozie/js/workflow-editor.ko.js

@@ -288,7 +288,7 @@ var Workflow = function (vm, workflow) {
         }
       }
     });
-    logGA('new_node/' + widget.widgetType());
+    hueAnalytics.log('oozie/editor/workflow', 'new_node/' + widget.widgetType());
   };
 
   self.addNode = function (widget, copiedNode) {
@@ -391,7 +391,7 @@ var Workflow = function (vm, workflow) {
     }).fail(function (xhr, textStatus, errorThrown) {
       $(document).trigger("error", xhr.responseText);
     });
-    logGA('add_node');
+    hueAnalytics.log('oozie/editor/workflow', 'add_node');
   };
 
   self.removeNode = function (node_id) {
@@ -449,7 +449,7 @@ var Workflow = function (vm, workflow) {
     else {
       self.nodes.remove(node);
     }
-    logGA('remove_node');
+    hueAnalytics.log('oozie/editor/workflow', 'remove_node');
   };
 
   self.moveNode = function (widget) {
@@ -1199,7 +1199,7 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
       }).always(function () {
         self.isSaving(false);
       });
-    logGA('save');
+    hueAnalytics.log('oozie/editor/workflow', 'save');
     }
   };
 
@@ -1240,7 +1240,7 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
   };
 
   self.schedule = function () {
-    logGA('schedule');
+    hueAnalytics.log('oozie/editor/workflow', 'schedule');
     if (IS_HUE_4) {
       huePubSub.publish('open.link', '/oozie/editor/coordinator/new/?workflow=' + self.workflow.uuid());
     }
@@ -1297,12 +1297,6 @@ function getOtherSubworkflows(vm, workflows) {
   return _cleanedSubworkflows;
 }
 
-function logGA(page) {
-  if (typeof trackOnGA == 'function') {
-    trackOnGA('oozie/editor/workflow/' + page);
-  }
-}
-
 var ExtendedColumn = function (size, rows) {
   var self = new Column(size, rows);
   self.rowPrototype = ExtendedRow;

+ 4 - 9
apps/pig/src/pig/templates/app.mako

@@ -847,7 +847,7 @@ ${ commonshare() | n,unicode }
         }
       );
       codeMirror.focus();
-      logGA('navigator/click');
+      hueAnalytics.log('pig', 'navigator/click');
     });
 
     $("#navigatorSearch").jHueDelayedInput(function(){
@@ -1157,7 +1157,7 @@ ${ commonshare() | n,unicode }
 
     $(document).on("stopError", function () {
       $.jHueNotify.error(LABELS.KILL_ERROR);
-      logGA('stop');
+      hueAnalytics.log('pig', 'stop');
     });
 
     var _resizeTimeout = -1;
@@ -1284,7 +1284,7 @@ ${ commonshare() | n,unicode }
         highlightMainMenu(mainSection);
       }
       if (includeGA == undefined){
-        logGA(mainSection);
+        hueAnalytics.log('pig', mainSection);
       }
     }
 
@@ -1296,7 +1296,7 @@ ${ commonshare() | n,unicode }
         highlightMenu(section);
       }
 
-      logGA(mainSection + "/" + section);
+      hueAnalytics.log('pig', mainSection + "/" + section);
     }
 
     function highlightMainMenu(mainSection) {
@@ -1438,11 +1438,6 @@ ${ commonshare() | n,unicode }
     $(document).trigger("info", msg);
   }
 
-  function logGA(page) {
-    if (typeof trackOnGA == 'function'){
-      trackOnGA('pig/' + page);
-    }
-  }
 </script>
 
 ${ commonfooter(request, messages) | n,unicode }

+ 5 - 11
apps/security/src/security/static/security/js/hdfs.ko.js

@@ -469,7 +469,7 @@ var Assist = function (vm, assist) {
     var _isLoading = window.setTimeout(function () {
       self.isLoadingAcls(true);
     }, 1000);
-    logGA('get_acls');
+    hueAnalytics.log('security/hdfs', 'get_acls');
     $.getJSON('/security/api/hdfs/get_acls', {
       'path': self.path()
     }, function (data) {
@@ -496,7 +496,7 @@ var Assist = function (vm, assist) {
 
   self.updateAcls = function () {
     $(".jHueNotify").hide();
-    logGA('updateAcls');
+    hueAnalytics.log('security/hdfs', 'updateAcls');
 
     $.post("/security/api/hdfs/update_acls", {
           'path': self.path(),
@@ -541,7 +541,7 @@ var Assist = function (vm, assist) {
 
   self.bulkDeleteAcls = function () {
     $(".jHueNotify").hide();
-    logGA('bulkDeleteAcls');
+    hueAnalytics.log('security/hdfs', 'bulkDeleteAcls');
 
     var checkedPaths = self.checkedItems();
 
@@ -563,7 +563,7 @@ var Assist = function (vm, assist) {
 
   self.bulkAddAcls = function () {
     $(".jHueNotify").hide();
-    logGA('bulkAddAcls');
+    hueAnalytics.log('security/hdfs', 'bulkAddAcls');
 
     var checkedPaths = self.checkedItems();
 
@@ -583,7 +583,7 @@ var Assist = function (vm, assist) {
 
   self.bulkSyncAcls = function () {
     $(".jHueNotify").hide();
-    logGA('bulkSyncAcls');
+    hueAnalytics.log('security/hdfs', 'bulkSyncAcls');
 
     var checkedPaths = self.checkedItems();
 
@@ -663,9 +663,3 @@ var HdfsViewModel = function (initial) {
     });
   }
 };
-
-function logGA(page) {
-  if (typeof trackOnGA == 'function') {
-    trackOnGA('security/hdfs' + page);
-  }
-}

+ 0 - 6
apps/security/src/security/static/security/js/hive.ko.js

@@ -1331,9 +1331,3 @@ var HiveViewModel = function (initial) {
     $(document).trigger("show.mainSection");
   }
 };
-
-function logGA(page) {
-  if (typeof trackOnGA == 'function') {
-    trackOnGA('sentry/' + page);
-  }
-}

+ 0 - 6
apps/security/src/security/static/security/js/sentry.ko.js

@@ -1405,9 +1405,3 @@ var SentryViewModel = function (initial) {
     $(document).trigger("show.mainSection");
   }
 };
-
-function logGA(page) {
-  if (typeof trackOnGA == 'function') {
-    trackOnGA('sentry/' + page);
-  }
-}

+ 1 - 1
apps/security/src/security/templates/hive.mako

@@ -669,7 +669,7 @@ ${ tree.import_templates(itemClick='$root.assist.setPath', iconClick='$root.assi
           highlightMainMenu(mainSection);
           viewModel.updateSectionHash(mainSection);
         }
-        logGA(mainSection);
+        hueAnalytics.log('security/hive', mainSection);
       }
 
       function highlightMainMenu(mainSection) {

+ 1 - 1
apps/security/src/security/templates/sentry.mako

@@ -725,7 +725,7 @@ ${ tree.import_templates(itemClick='$root.assist.setPath', iconClick='$root.assi
           highlightMainMenu(mainSection);
           viewModel.updateSectionHash(mainSection);
         }
-        logGA(mainSection);
+        hueAnalytics.log('security/common', mainSection);
       }
 
       function highlightMainMenu(mainSection) {

+ 9 - 0
desktop/core/src/desktop/static/desktop/js/hue.utils.js

@@ -581,6 +581,15 @@ var hueDebugTimer = (function () {
   };
 })();
 
+var hueAnalytics = (function () {
+  return {
+    log: function (app, page) {
+      if (typeof trackOnGA == 'function') {
+        trackOnGA(app + '/' + page);
+      }
+    }
+  };
+})();
 
 Number.prototype.toHHMMSS = function (skipZeroSeconds) {
   var n = this;

+ 3 - 8
desktop/libs/dashboard/src/dashboard/static/dashboard/js/search.ko.js

@@ -840,7 +840,7 @@ var Collection = function (vm, collection) {
 
   self.addFacet = function (facet_json) {
     self.removeFacet(function(){return facet_json.widget_id});
-    logGA('add_facet/' + facet_json.widgetType);
+    hueAnalytics.log('dashboard', 'add_facet/' + facet_json.widgetType);
 
     $.post("/dashboard/template/new_facet", {
         "collection": ko.mapping.toJSON(self),
@@ -1732,7 +1732,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
 
     self.cancelAsync = function (facet) { // TODO: have a common generic with Notebook
       self.isCanceling(true);
-      logGA('cancel');
+      hueAnalytics.log('dashboard', 'cancel');
 
       multiQs = $.map(self.asyncSearchesCounter(), function (facet) {
         $.post("/notebook/api/cancel_statement", {
@@ -1822,7 +1822,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
 
     self.search = function (callback) {
       $(".jHueNotify").hide();
-      logGA('search');
+      hueAnalytics.log('dashboard', 'search');
       self.isRetrievingResults(true);
 
       if (self.selectedQDefinition() != null) {
@@ -2406,8 +2406,3 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
   self.build();
 };
 
-function logGA(page) {
-  if (typeof trackOnGA == 'function') {
-    trackOnGA('dashboard/' + page);
-  }
-}

+ 5 - 10
desktop/libs/indexer/src/indexer/templates/importer.mako

@@ -1711,17 +1711,17 @@ ${ assist.assistPanel() }
         });
 % endif
 
-        logGA('submit/' + self.source.inputFormat() + '/' + self.destination.outputFormat());
+        hueAnalytics.log('importer', 'submit/' + self.source.inputFormat() + '/' + self.destination.outputFormat());
       }
 
       self.removeOperation = function (operation, operationList) {
         operationList.remove(operation);
-        logGA('step/removeOperation');
+        hueAnalytics.log('importer', 'step/removeOperation');
       }
 
       self.addOperation = function (field) {
         field.operations.push(new Operation("split"));
-        logGA('step/addOperation');
+        hueAnalytics.log('importer', 'step/addOperation');
       }
 
       self.load = function (state) {
@@ -1812,23 +1812,18 @@ ${ assist.assistPanel() }
       self.nextStep = function () {
         if (self.nextStepVisible()){
           self.currentStep(self.currentStep() + 1);
-          logGA('step/' + self.currentStep());
+          hueAnalytics.log('importer', 'step/' + self.currentStep());
         }
       }
       self.previousStep = function () {
         if (self.previousStepVisible()){
           self.currentStep(self.currentStep() - 1);
-          logGA('step/' + self.currentStep());
+          hueAnalytics.log('importer', 'step/' + self.currentStep());
         }
       }
 
       self.isLoading = ko.observable(false);
 
-      function logGA(page) {
-        if (typeof trackOnGA == 'function') {
-          trackOnGA('importer/' + page);
-        }
-      }
     };
 
     var viewModel;

+ 17 - 23
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -647,7 +647,7 @@ var EditorViewModel = (function() {
 
     function prepopulateChart() {
       var type = self.chartType();
-      logGA('chart/' + type);
+      hueAnalytics.log('notebook', 'chart/' + type);
 
       if (type === ko.HUE_CHARTS.TYPES.MAP && self.result.cleanedNumericMeta().length >= 2) {
         if ((self.chartX() === null || typeof self.chartX() === 'undefined')) {
@@ -897,7 +897,7 @@ var EditorViewModel = (function() {
 
         self.getApiHelper().cancelActiveRequest(lastComplexityRequest);
 
-        logGA('get_query_risk');
+        hueAnalytics.log('notebook', 'get_query_risk');
         self.complexityCheckRunning(true);
         lastComplexityRequest = $.ajax({
           type: 'POST',
@@ -1037,7 +1037,7 @@ var EditorViewModel = (function() {
       $(document).trigger("executeStarted", {vm: vm, snippet: self});
       self.lastExecuted(now);
       $(".jHueNotify").hide();
-      logGA('execute/' + self.type());
+      hueAnalytics.log('notebook', 'execute/' + self.type());
 
       if (self.result.fetchedOnce()) {
         self.close();
@@ -1191,18 +1191,18 @@ var EditorViewModel = (function() {
           }
         });
       }
-      logGA('format');
+      hueAnalytics.log('notebook', 'format');
     };
 
     self.clear = function () {
-      logGA('clear');
+      hueAnalytics.log('notebook', 'clear');
       self.ace().setValue('', 1);
       self.result.clear();
       self.status('ready');
     };
 
     self.explain = function () {
-      logGA('explain');
+      hueAnalytics.log('notebook', 'explain');
 
       if (self.statement() == '' || self.status() == 'running' || self.status() === 'loading') {
         return;
@@ -1239,7 +1239,7 @@ var EditorViewModel = (function() {
     self.queryCompatibility = function (targetPlatform) {
       self.getApiHelper().cancelActiveRequest(lastCompatibilityRequest);
 
-      logGA('compatibility');
+      hueAnalytics.log('notebook', 'compatibility');
       self.compatibilityCheckRunning(targetPlatform != self.type());
       self.hasSuggestion(null);
 
@@ -1296,7 +1296,7 @@ var EditorViewModel = (function() {
         if( self.status() == 'available') {
           startLongOperationTimeout();
           self.isFetchingData = true;
-          logGA('fetchResult/' + rows + '/' + startOver);
+          hueAnalytics.log('notebook', 'fetchResult/' + rows + '/' + startOver);
           $.post("/notebook/api/fetch_result_data", {
             notebook: ko.mapping.toJSON(notebook.getContext()),
             snippet: ko.mapping.toJSON(self.getContext()),
@@ -1478,7 +1478,7 @@ var EditorViewModel = (function() {
         clearTimeout(self.checkStatusTimeout);
         self.checkStatusTimeout = null;
       }
-      logGA('cancel');
+      hueAnalytics.log('notebook', 'cancel');
 
       if ($.isEmptyObject(self.result.handle())) { // Query was not even submitted yet
         if (self.executingBlockingOperation != null) {
@@ -1596,7 +1596,7 @@ var EditorViewModel = (function() {
     };
 
     self.loadQueryHistory = function (n) {
-      logGA('load_query_history');
+      hueAnalytics.log('notebook', 'load_query_history');
 
       $.post("/metadata/api/optimizer/upload/history", {
         n: typeof n != "undefined" ? n : null,
@@ -1612,7 +1612,7 @@ var EditorViewModel = (function() {
     };
 
     self.loadTableStats = function (activeTables) {
-      logGA('load_table_stats');
+      hueAnalytics.log('notebook', 'load_table_stats');
       $(document).trigger("info", "Preparing table data...");
 
       $.post("/metadata/api/optimizer/upload/table_stats", {
@@ -1652,7 +1652,7 @@ var EditorViewModel = (function() {
     };
 
     self.getSimilarQueries = function () {
-      logGA('get_query_similarity');
+      hueAnalytics.log('notebook', 'get_query_similarity');
 
       $.post("/notebook/api/optimizer/statement/similarity", {
         notebook: ko.mapping.toJSON(notebook.getContext()),
@@ -1952,7 +1952,7 @@ var EditorViewModel = (function() {
         }
       }, 100);
 
-      logGA('add_snippet/' + (type ? type : self.selectedSnippet()));
+      hueAnalytics.log('notebook', 'add_snippet/' + (type ? type : self.selectedSnippet()));
       return snippet;
     };
 
@@ -1978,7 +1978,7 @@ var EditorViewModel = (function() {
     };
 
     self.save = function () {
-      logGA('save');
+      hueAnalytics.log('notebook', 'save');
 
       // Remove the result data from the snippets
       var cp = ko.mapping.toJS(self, NOTEBOOK_MAPPING);
@@ -2048,7 +2048,7 @@ var EditorViewModel = (function() {
     };
 
     self.close = function () {
-      logGA('close');
+      hueAnalytics.log('notebook', 'close');
       $.post("/notebook/api/notebook/close", {
         "notebook": ko.mapping.toJSON(self, NOTEBOOK_MAPPING),
         "editorMode": vm.editorMode()
@@ -2221,7 +2221,7 @@ var EditorViewModel = (function() {
     };
 
     self.clearHistory = function (type) {
-      logGA('clearHistory');
+      hueAnalytics.log('notebook', 'clearHistory');
       $.post("/notebook/api/clear_history", {
         notebook: ko.mapping.toJSON(self.getContext()),
         doc_type: self.selectedSnippet(),
@@ -2252,7 +2252,7 @@ var EditorViewModel = (function() {
         } else {
           _action = 'new';
         }
-        logGA('schedule/' + _action);
+        hueAnalytics.log('notebook', 'schedule/' + _action);
 
         $.get('/oozie/editor/coordinator/' + _action + '/', {
           format: 'json',
@@ -2699,11 +2699,5 @@ var EditorViewModel = (function() {
     };
   }
 
-  function logGA(page) {
-    if (typeof trackOnGA == 'function') {
-      trackOnGA('notebook/' + page);
-    }
-  }
-
   return EditorViewModel;
 })();