فهرست منبع

[stats] Adding monthly dialect execution to the stats

Moving the tests to the proper corresponding test file
Romain Rigaux 5 سال پیش
والد
کامیت
1010c54d55

+ 1 - 6
desktop/core/src/desktop/templates/analytics.mako

@@ -59,10 +59,5 @@ ${ layout.menubar(section='analytics') }
 
 
 <div id="analyticsComponents" class="container-fluid">
-
-  <a href="javascript:void(0)" data-bind="click: function() { selectedConnectorCategory('All'); section('installed-connectors-page'); }">
-    ${ _('Analytics') }
-  </a>
-
-  <textarea data-bind="text: stats" readonly></textarea>
+  <textarea data-bind="text: stats" readonly rows="5" style="width: 1000px"></textarea>
 </script>

+ 1 - 18
desktop/libs/notebook/src/notebook/api_tests.py

@@ -45,7 +45,7 @@ from notebook.api import _historify
 from notebook.connectors.base import Notebook, QueryError, Api, QueryExpired
 from notebook.decorators import api_error_handler
 from notebook.conf import get_ordered_interpreters, INTERPRETERS_SHOWN_ON_WHEEL, INTERPRETERS
-from notebook.models import Analytics
+
 
 if sys.version_info[0] > 2:
   from unittest.mock import patch, Mock
@@ -824,23 +824,6 @@ class TestQueriesMetrics(object):
       assert_true(b'hue_queries_numbers 12500.0' in response.content, response.content)
 
 
-class TestAnalytics(object):
-
-  def setUp(self):
-    self.client = make_logged_in_client(username="test", groupname="default", recreate=True, is_superuser=False)
-    self.user = User.objects.get(username="test")
-
-  def test_basic_stats(self):
-    try:
-      doc, created = Document2.objects.get_or_create(name='test_query_stats', type='query-hive', owner=self.user, data={})
-
-      Analytics.admin_stats()
-      Analytics.user_stats(user=self.user)
-      Analytics.query_stats(query=doc)
-    finally:
-      doc.delete()
-
-
 class TestEditor(object):
 
   def setUp(self):

+ 7 - 0
desktop/libs/notebook/src/notebook/models.py

@@ -616,6 +616,13 @@ class Analytics(object):
     )
     stats.append(('Active users 90 days', User.objects.filter(last_login__gte=three_months).count()))
 
+    stats.append(('\nDialect executions', ''))
+    queries = Document2.objects.filter(type__startswith='query-', is_trashed=False, is_managed=False)
+    last_month_qdialects = queries.filter(
+      last_modified__gte=one_month
+    ).values('type').annotate(c=Count('type')).values('type', 'c').order_by('-c')
+    stats.append(('30 days', ', '.join(['%(type)s: %(c)s' % d for d in last_month_qdialects])))
+
     return stats
 
   @classmethod

+ 19 - 3
desktop/libs/notebook/src/notebook/models_tests.py

@@ -20,15 +20,14 @@ import logging
 import json
 import sys
 
-from django.urls import reverse
 from nose.tools import assert_equal, assert_not_equal, assert_true, assert_false
 
 from desktop.lib.django_test_util import make_logged_in_client
-from desktop.lib.connectors.models import Connector
+from desktop.models import Document2
 from useradmin.models import User
 
 from notebook.conf import EXAMPLES
-from notebook.models import install_custom_examples
+from notebook.models import install_custom_examples, Analytics
 
 if sys.version_info[0] > 2:
   from unittest.mock import patch, Mock, MagicMock
@@ -39,6 +38,23 @@ else:
 LOG = logging.getLogger(__name__)
 
 
+class TestAnalytics(object):
+
+  def setUp(self):
+    self.client = make_logged_in_client(username="test", groupname="default", recreate=True, is_superuser=False)
+    self.user = User.objects.get(username="test")
+
+  def test_basic_stats(self):
+    try:
+      doc, created = Document2.objects.get_or_create(name='test_query_stats', type='query-hive', owner=self.user, data={})
+
+      Analytics.admin_stats()
+      Analytics.user_stats(user=self.user)
+      Analytics.query_stats(query=doc)
+    finally:
+      doc.delete()
+
+
 class TestInstallCustomExamples():
 
   def setUp(self):