From cb99cb9242d9523468a43518f295d993b740ed53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Tue, 8 Jun 2021 16:23:33 +0200 Subject: [PATCH] improved README and fixed many things --- README.rst | 102 +- screenshots/courseoverview-01.png | Bin 0 -> 98303 bytes screenshots/courseoverview-02.png | Bin 0 -> 62034 bytes screenshots/courseoverview-03.png | Bin 0 -> 46640 bytes setup.py | 2 +- tutorcairn/patches/k8s-deployments | 7 +- tutorcairn/patches/k8s-volumes | 14 + .../patches/kustomization-configmapgenerator | 2 +- .../patches/local-docker-compose-services | 5 +- .../apps/openedx/scripts/importcoursedata.py | 8 +- .../superset/bootstrap/courseoverview.json | 1620 ++++++++--------- .../templates/cairn/apps/vector/k8s.toml | 12 + .../templates/cairn/apps/vector/local.toml | 12 + .../common-post.toml} | 32 +- .../apps/vector/partials/common-pre.toml | 6 + .../cairn/build/cairn-superset/Dockerfile | 2 +- .../cairn/build/cairn-superset/scripts/cairn | 5 + 17 files changed, 962 insertions(+), 867 deletions(-) create mode 100644 screenshots/courseoverview-01.png create mode 100644 screenshots/courseoverview-02.png create mode 100644 screenshots/courseoverview-03.png create mode 100644 tutorcairn/templates/cairn/apps/vector/k8s.toml create mode 100644 tutorcairn/templates/cairn/apps/vector/local.toml rename tutorcairn/templates/cairn/apps/vector/{vector.toml => partials/common-post.toml} (62%) create mode 100644 tutorcairn/templates/cairn/apps/vector/partials/common-pre.toml diff --git a/README.rst b/README.rst index 7cf1f4f..81598a9 100644 --- a/README.rst +++ b/README.rst @@ -1,46 +1,101 @@ -Tutor Cairn: scalable, real-time analytics for Open edX -======================================================== +Cairn: scalable, real-time analytics for Open edX +================================================== -TODO: Sweet readme +Analytics are an essential component of an online learning platform: you need to know whether your courses are effective and which parts need some improvement. You need to know if your students are falling by, and if they do, you need to detect the early warning signs. When your courses are successful, you want to get periodical engagement reports. + +We created a tool to help you answer all these questions. Cairn is a Tutor plugin that you install on top of an Open edX platform and that gives you access to a powerful, full-blown analytics stack. Cairn comes with the following features out of the box: + +🖴 **Unified datalake of learner events and stateful data**: both learner-triggered events, coming from the Open edX tracking logs, and stateful data, coming from the existing databases, are available for querying in a single unified interface. This means that you can, for instance, query the grades of the students that visited your platform in the past 24 hours, or collect the email addresses of the students who did not yet complete the latest assignment. + +⚡ **Real-time:** new events are visible immediately in your analytics interface. No more waiting for slow batch jobs to complete! + +🔑 **Course- and org-based data access rights:** your course staff is granted access only to the data rows that concern them. Cairn makes it easy to create new users with granular access permissions. + +🎁 **Working dashboards out of the box:** Cairn comes with a fully functional dashboard that you can start playing with right away. + +🛠️ **Fully customizable data and dashboards:** your data scientists, business intelligence team and other tinkerers can freely explore your course data, create and share their own queries, datasets and dashboards. All it takes is a little bit of SQL. + +🚀 **Scalable:** Cairn scales as much as its backend, which was designed for Internet scale. + +Cairn vs alternatives +--------------------- + +========================================== ===== =================================================================================== =================================================== +List of features Cairn `Open edX Insights `__ `Figures `__ +========================================== ===== =================================================================================== =================================================== +Event aggregation ✅ ✅ ❌ +Real-time data ✅ ❌ ✅ +Easy to install ✅ ❌ ✅ +Custom queries and dashboards ✅ ❌ ❌ +Works with the latest Open edX versions ✅ ✅ ❌ +========================================== ===== =================================================================================== =================================================== + + +How does Cairn work? +-------------------- + +Cairn uses the same collect/store/expose paradigm made popular by other frameworks such as the `ELK Stack `__ -- excepts that all the components are different and better suited to Open edX: + +- On the server side, tracking logs are collected by `Vector `__, an efficient, cloud-native log collector. +- Tracking log events are then stored in a `Clickhouse `__ table, which is the cornerstone of Cairn. Clickhouse also exposes MySQL data via live and materialized views. This is the magic piece of the puzzle which allows us to join event and MySQL data. +- The data inside Clickhouse is made visible to the end-users in a `Superset `__ frontend. Installation ------------ -:: +Cairn requires a `Tutor Wizard Edition license `__. Once you have enabled your license, installing the plugin is as simple as running:: tutor license install tutor-cairn Usage ----- -:: +Getting started +~~~~~~~~~~~~~~~ + +Enable the plugin with:: tutor plugins enable cairn + +Then, restart your platform and run the initialization scripts:: + tutor local quickstart +Create credentials to access the Clickhouse database:: + + tutor local run cairn-clickhouse cairn createuser YOURUSERNAME + Create an admin user to access the frontend:: # You will be prompted for a new password - tutor local run cairn-superset superset fab create-admin --username yourusername --email user@example.com + tutor local run cairn-superset cairn createuser --admin YOURUSERNAME YOURUSERNAME@YOUREMAIL.COM You can then access the frontend with the user credentials you just created. Open http(s)://data. in your browser. When running locally, this will be http://data.local.overhang.io. The admin user will automatically be granted access to the "openedx" database in Superset and will be able to query all tables. -Management ----------- +To import the "Course overview" dashboard that comes with Cairn, run:: + + tutor local run cairn-superset cairn bootstrap-dashboards YOURUSERNAME /app/bootstrap/courseoverview.json + +Some event data will be missing from your dashboards: just start using your LMS and refresh your dashboard. The new events should appear immediately. + +.. image:: https://overhang.io/static/catalog/screenshots/cairn.png + :alt: Alpine cairn + +Data-based access control +~~~~~~~~~~~~~~~~~~~~~~~~~ Most of your users should probably not have access to all data from all courses. To restrict a given user to one or more courses or organizations, select the course IDs and/or organization IDS to which the user should have access and create a user with limited access to the datalake:: - tutor local run cairn-clickhouse cairn createuser --course-id='course-v1:edX+DemoX+Demo_Course' --org-id='edX' yourusername + tutor local run cairn-clickhouse cairn createuser --course-id='course-v1:edX+DemoX+Demo_Course' --org-id='edX' YOURUSERNAME -Then, create the corresponding user on the frontend:: +Then, create the corresponding user on the frontend with the same command as above (but without the ``--admin`` option):: - tutor local run cairn-superset cairn createuser yourusername yourusername@youremail.com + tutor local run cairn-superset cairn createuser YOURUSERNAME YOURUSERNAME@YOUREMAIL.COM -Your frontend user will automatically be associated to the datalake database you created, provided they share the same name. +Your frontend user will automatically be associated to the datalake database you created. -Cairn comes with a convenient pre-built dashboard that you can add to any user account:: - - tutor local run cairn-superset cairn bootstrap-dashboards yourusername /app/bootstrap/courseoverview.json +Refreshing course block data +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Course block IDs and names are loaded from the Open edX modulestore into the datalake. After making changes to your course, you might want to refresh the course structure stored in the datalake. To do so, run:: @@ -53,18 +108,20 @@ Or, if you want to avoid running the full plugin initialization:: -v $(tutor config printroot)/env/plugins/cairn/apps/clickhouse/auth.json:/openedx/clickhouse-auth.json \ lms python /openedx/scripts/importcoursedata.py +Running on Kubernetes +~~~~~~~~~~~~~~~~~~~~~ + When running on Kubernetes instead of locally, most commands above can be re-written with `tutor k8s exec service "command"` instead of `tutor local run service command`. For instance:: # Privileved user creation - tutor k8s exec cairn-superset "superset fab create-admin --username yourusername --email user@example.com" + tutor k8s exec cairn-superset "superset fab create-admin --username YOURUSERNAME --email user@example.com" # Unprivileged user creation - tutor k8s exec cairn-clickhouse "cairn createuser --course-id='course-v1:edX+DemoX+Demo_Course' --org-id='edX' yourusername" - tutor k8s exec cairn-superset "cairn createuser yourusername yourusername@youremail.com" + tutor k8s exec cairn-clickhouse "cairn createuser --course-id='course-v1:edX+DemoX+Demo_Course' --org-id='edX' YOURUSERNAME" + tutor k8s exec cairn-superset "cairn createuser YOURUSERNAME YOURUSERNAME@YOUREMAIL.COM" Development ----------- - To reload Vector configuration after changes to vector.toml, run:: tutor config save && tutor local exec cairn-vector sh -c "kill -s HUP 1" @@ -77,6 +134,13 @@ To launch a Python shell in Superset, run:: tutor local run cairn-superset superset shell +.. image:: https://overhang.io/static/catalog/img/cairn.png + :alt: Alpine cairn + +Support +------- + +Are you having trouble with Cairn? Do you have questions about this plugin? Please get in touch with us at contact@overhang.io. Community support is also available on the official Tutor forums: https://discuss.overhang.io License ------- diff --git a/screenshots/courseoverview-01.png b/screenshots/courseoverview-01.png new file mode 100644 index 0000000000000000000000000000000000000000..26c9c84692b46db87b808e14fe60b56b2ffae213 GIT binary patch literal 98303 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 Lj4ElU`>Ou|H{`Rk literal 0 HcmV?d00001 diff --git a/screenshots/courseoverview-02.png b/screenshots/courseoverview-02.png new file mode 100644 index 0000000000000000000000000000000000000000..d406a4cf8d0201bdf82dad6af6fc429fd9cbb908 GIT binary patch literal 62034 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 E1FC~B8vp|MySKaIa$VecXRd0 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 J9XWIT{{oz?*>C^= literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index dabc701..89df52d 100644 --- a/setup.py +++ b/setup.py @@ -39,7 +39,7 @@ setup( packages=find_packages(exclude=["tests*"]), include_package_data=True, python_requires=">=3.5", - install_requires=["tutor-openedx"], + install_requires=["tutor-openedx>=11.0.0,<12.0.0"], entry_points={"tutor.plugin.v0": ["cairn = tutorcairn.plugin"]}, classifiers=[ "Development Status :: 3 - Alpha", diff --git a/tutorcairn/patches/k8s-deployments b/tutorcairn/patches/k8s-deployments index 8ae767d..734b9ea 100644 --- a/tutorcairn/patches/k8s-deployments +++ b/tutorcairn/patches/k8s-deployments @@ -85,14 +85,19 @@ spec: - name: SYSFS_ROOT value: /host/sys volumeMounts: + - name: data + mountPath: /var/lib/vector - name: var-log mountPath: /var/log/ readOnly: true - mountPath: /etc/vector/vector.toml name: config - subPath: vector.toml + subPath: k8s.toml readOnly: true volumes: + - name: data + persistentVolumeClaim: + claimName: cairn-vector - name: var-log hostPath: path: /var/log/ diff --git a/tutorcairn/patches/k8s-volumes b/tutorcairn/patches/k8s-volumes index c57b0d2..924d5e7 100644 --- a/tutorcairn/patches/k8s-volumes +++ b/tutorcairn/patches/k8s-volumes @@ -1,3 +1,17 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: cairn-vector + labels: + app.kubernetes.io/component: volume + app.kubernetes.io/name: cairn-vector +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi {% if CAIRN_RUN_CLICKHOUSE %} --- apiVersion: v1 diff --git a/tutorcairn/patches/kustomization-configmapgenerator b/tutorcairn/patches/kustomization-configmapgenerator index f91ac79..743552a 100644 --- a/tutorcairn/patches/kustomization-configmapgenerator +++ b/tutorcairn/patches/kustomization-configmapgenerator @@ -1,6 +1,6 @@ - name: cairn-vector-config files: - - plugins/cairn/apps/vector/vector.toml + - plugins/cairn/apps/vector/k8s.toml - name: cairn-clickhouse-user-config files: - plugins/cairn/apps/clickhouse/users.d/cairn.xml diff --git a/tutorcairn/patches/local-docker-compose-services b/tutorcairn/patches/local-docker-compose-services index 34b5009..e1e4a4a 100644 --- a/tutorcairn/patches/local-docker-compose-services +++ b/tutorcairn/patches/local-docker-compose-services @@ -4,7 +4,8 @@ cairn-vector: image: docker.io/timberio/vector:0.13.X-alpine volumes: - - ../plugins/cairn/apps/vector/vector.toml:/etc/vector/vector.toml:ro + - ../../data/cairn/vector:/var/lib/vector + - ../plugins/cairn/apps/vector/local.toml:/etc/vector/vector.toml:ro {% if CAIRN_DOCKER_HOST_SOCK_PATH %}- {{ CAIRN_DOCKER_HOST_SOCK_PATH }}:/var/run/docker.sock:ro{% endif %} environment: - DOCKER_HOST=/var/run/docker.sock @@ -52,7 +53,7 @@ cairn-superset-worker-beat: - cairn-redis - cairn-postgresql cairn-redis: - image: docker.io/redis:5.0-alpine + image: docker.io/redis:6.2.4-alpine restart: unless-stopped {% if CAIRN_RUN_POSTGRESQL %} cairn-postgresql: diff --git a/tutorcairn/templates/cairn/apps/openedx/scripts/importcoursedata.py b/tutorcairn/templates/cairn/apps/openedx/scripts/importcoursedata.py index 3585994..d3b2c15 100644 --- a/tutorcairn/templates/cairn/apps/openedx/scripts/importcoursedata.py +++ b/tutorcairn/templates/cairn/apps/openedx/scripts/importcoursedata.py @@ -38,7 +38,7 @@ def import_course(course_key): course = get_course(course_key, depth=None) print("======================", course_id, course.display_name) values = [ - sql_query( + sql_format( "('{}', '{}', '{}', '{}', '{}', '{}')", course_id, str(child.location), @@ -54,12 +54,12 @@ def import_course(course_key): f"Inserting {len(values)} items in course_blocks for course '{course_id}'..." ) make_query( - sql_query( + sql_format( "ALTER TABLE course_blocks DELETE WHERE course_id = '{}';", course_id, ), ) - insert_query = sql_query( + insert_query = sql_format( "INSERT INTO course_blocks (course_id, block_key, block_id, position, display_name, full_name) VALUES " ) insert_query += ", ".join(values) @@ -74,7 +74,7 @@ def iter_course_blocks(item, prefix=""): yield from iter_course_blocks(child, prefix=prefix) -def sql_query(template, *args, **kwargs): +def sql_format(template, *args, **kwargs): args = [sql_escape_string(arg).decode() for arg in args] kwargs = {key: sql_escape_string(value).decode() for key, value in kwargs.items()} return template.format(*args, **kwargs) diff --git a/tutorcairn/templates/cairn/apps/superset/bootstrap/courseoverview.json b/tutorcairn/templates/cairn/apps/superset/bootstrap/courseoverview.json index 2175e56..fcfbde3 100644 --- a/tutorcairn/templates/cairn/apps/superset/bootstrap/courseoverview.json +++ b/tutorcairn/templates/cairn/apps/superset/bootstrap/courseoverview.json @@ -5,7 +5,7 @@ "css": "", "dashboard_title": "Course overview", "description": null, - "json_metadata": "{\"timed_refresh_immune_slices\": [], \"filter_scopes\": {\"2\": {\"video_id\": {\"scope\": [\"ROOT_ID\"], \"immune\": [17, 111, 5, 6, 8, 110, 10, 9, 113, 112]}}, \"17\": {\"course_id\": {\"scope\": [\"ROOT_ID\"], \"immune\": []}, \"__time_range\": {\"scope\": [\"ROOT_ID\"], \"immune\": [111, 110, 10, 9, 113, 112]}}}, \"expanded_slices\": {}, \"refresh_frequency\": 0, \"default_filters\": \"{\\\"2\\\": {\\\"video_id\\\": \\\"7e9b434e6de3435ab99bd3fb25bde807\\\"}, \\\"17\\\": {\\\"course_id\\\": [\\\"course-v1:edX+DemoX+Demo_Course\\\"], \\\"__time_range\\\": \\\"Last month\\\"}}\", \"color_scheme\": null, \"remote_id\": 2}", + "json_metadata": "{\"timed_refresh_immune_slices\": [], \"filter_scopes\": {\"2\": {\"video_id\": {\"scope\": [\"ROOT_ID\"], \"immune\": [17, 111, 5, 6, 8, 110, 10, 9, 113, 112]}}, \"17\": {\"course_id\": {\"scope\": [\"ROOT_ID\"], \"immune\": []}, \"__time_range\": {\"scope\": [\"ROOT_ID\"], \"immune\": [111, 110, 10, 9, 113, 112]}}}, \"expanded_slices\": {}, \"refresh_frequency\": 0, \"default_filters\": \"{\\\"2\\\": {\\\"video_id\\\": \\\"7e9b434e6de3435ab99bd3fb25bde807\\\"}, \\\"17\\\": {\\\"course_id\\\": [\\\"course-v1:edX+DemoX+Demo_Course\\\"], \\\"__time_range\\\": \\\"Last month\\\"}}\", \"color_scheme\": null, \"show_native_filters\": true, \"native_filter_configuration\": [], \"remote_id\": 2}", "position_json": "{\"CHART-7tiQ9gDD9Q\":{\"children\":[],\"id\":\"CHART-7tiQ9gDD9Q\",\"meta\":{\"chartId\":4,\"height\":47,\"sliceName\":\"Video X-Ray\",\"uuid\":\"34e9ed3f-c83a-46d2-8e24-e05170104376\",\"width\":12},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-FJE2P5KfpA\"],\"type\":\"CHART\"},\"CHART-JP2ofFRp0O\":{\"children\":[],\"id\":\"CHART-JP2ofFRp0O\",\"meta\":{\"chartId\":2,\"height\":23,\"sliceName\":\"Select video ID\",\"uuid\":\"270b8fd9-561b-4b9c-8e4e-9688b43ef283\",\"width\":4},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-xwP_iqbDk\"],\"type\":\"CHART\"},\"CHART-PGXKExBtbG\":{\"children\":[],\"id\":\"CHART-PGXKExBtbG\",\"meta\":{\"chartId\":9,\"height\":50,\"sliceName\":\"Enrolled learners level of education\",\"uuid\":\"7ecc94c7-576e-48ca-bbd8-0e2831117b35\",\"width\":4},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-0hFN_y-NgF\"],\"type\":\"CHART\"},\"CHART-PkrfaIrMNP\":{\"children\":[],\"id\":\"CHART-PkrfaIrMNP\",\"meta\":{\"chartId\":112,\"height\":51,\"sliceName\":\"Course grades\",\"uuid\":\"e979dfe0-a017-443f-9c40-453da4ff6839\",\"width\":6},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-1VpL9_y3C\"],\"type\":\"CHART\"},\"CHART-RIMipwKzGj\":{\"children\":[],\"id\":\"CHART-RIMipwKzGj\",\"meta\":{\"chartId\":110,\"height\":81,\"sliceName\":\"Course completion\",\"uuid\":\"c411f818-a0cf-4569-976b-33d16617603c\",\"width\":12},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-Ifn6tvGvdj\"],\"type\":\"CHART\"},\"CHART-RUE08HAwEd\":{\"children\":[],\"id\":\"CHART-RUE08HAwEd\",\"meta\":{\"chartId\":113,\"height\":51,\"sliceName\":\"Enrollment history\",\"uuid\":\"1fe1f8e6-11c1-4d1e-b287-8a175a269ed2\",\"width\":6},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-1VpL9_y3C\"],\"type\":\"CHART\"},\"CHART-_XdNUl5YJ9\":{\"children\":[],\"id\":\"CHART-_XdNUl5YJ9\",\"meta\":{\"chartId\":17,\"height\":35,\"sliceName\":\"Select course ID and time range\",\"uuid\":\"80ca2797-395e-45cb-a14f-c6a98cf0d9d1\",\"width\":4},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-yPuXNZUCnv\"],\"type\":\"CHART\"},\"CHART-ksac8VVbnJ\":{\"children\":[],\"id\":\"CHART-ksac8VVbnJ\",\"meta\":{\"chartId\":13,\"height\":23,\"sliceName\":\"Total watch time\",\"uuid\":\"9688f829-fa3d-4b0d-a715-cb2beedffe2d\",\"width\":2},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-xwP_iqbDk\"],\"type\":\"CHART\"},\"CHART-npBiWH7kMl\":{\"children\":[],\"id\":\"CHART-npBiWH7kMl\",\"meta\":{\"chartId\":111,\"height\":35,\"sliceName\":\"Enrolled students\",\"uuid\":\"33b8bf43-e777-4942-85fc-d042ddd71459\",\"width\":2},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-yPuXNZUCnv\"],\"type\":\"CHART\"},\"CHART-p4ta63zmN2\":{\"children\":[],\"id\":\"CHART-p4ta63zmN2\",\"meta\":{\"chartId\":6,\"height\":35,\"sliceName\":\"Watched a video\",\"uuid\":\"fdc5ce1f-412f-434f-8a7c-d4ef3d2ede7c\",\"width\":2},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-yPuXNZUCnv\"],\"type\":\"CHART\"},\"CHART-pjjDL63lIM\":{\"children\":[],\"id\":\"CHART-pjjDL63lIM\",\"meta\":{\"chartId\":10,\"height\":50,\"sliceName\":\"Enrolled learners gender\",\"uuid\":\"74763712-0193-4c3b-84ef-1a34b2aa17d8\",\"width\":4},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-0hFN_y-NgF\"],\"type\":\"CHART\"},\"CHART-t7KLpPYQxw\":{\"children\":[],\"id\":\"CHART-t7KLpPYQxw\",\"meta\":{\"chartId\":8,\"height\":35,\"sliceName\":\"Tried a problem\",\"uuid\":\"dfd0088c-74dd-4dfb-a221-4c1633d17072\",\"width\":2},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-yPuXNZUCnv\"],\"type\":\"CHART\"},\"CHART-v7UYbl-ap6\":{\"children\":[],\"id\":\"CHART-v7UYbl-ap6\",\"meta\":{\"chartId\":14,\"height\":23,\"sliceName\":\"Unique viewers\",\"uuid\":\"e2bc6e71-eefa-457b-b7d8-8bee1ae8bae9\",\"width\":2},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-xwP_iqbDk\"],\"type\":\"CHART\"},\"CHART-xXCRFE4mZa\":{\"children\":[],\"id\":\"CHART-xXCRFE4mZa\",\"meta\":{\"chartId\":5,\"height\":35,\"sliceName\":\"Active students\",\"uuid\":\"b46a1e93-2bf6-4330-b9b4-67ae57d45a4e\",\"width\":2},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-yPuXNZUCnv\"],\"type\":\"CHART\"},\"CHART-y-ZSuLjhv7\":{\"children\":[],\"id\":\"CHART-y-ZSuLjhv7\",\"meta\":{\"chartId\":16,\"height\":23,\"sliceName\":\"Average learner watch time\",\"uuid\":\"bfbf6b44-928c-4141-a9c8-ae99cc5a87c4\",\"width\":2},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-xwP_iqbDk\",\"COLUMN-gumZdo_-5R\"],\"type\":\"CHART\"},\"COLUMN-gumZdo_-5R\":{\"children\":[\"CHART-y-ZSuLjhv7\"],\"id\":\"COLUMN-gumZdo_-5R\",\"meta\":{\"background\":\"BACKGROUND_TRANSPARENT\",\"width\":2},\"parents\":[\"ROOT_ID\",\"GRID_ID\",\"ROW-xwP_iqbDk\"],\"type\":\"COLUMN\"},\"DASHBOARD_VERSION_KEY\":\"v2\",\"GRID_ID\":{\"children\":[\"ROW-yPuXNZUCnv\",\"ROW-Ifn6tvGvdj\",\"ROW-0hFN_y-NgF\",\"ROW-1VpL9_y3C\",\"ROW-xwP_iqbDk\",\"ROW-FJE2P5KfpA\"],\"id\":\"GRID_ID\",\"parents\":[\"ROOT_ID\"],\"type\":\"GRID\"},\"HEADER_ID\":{\"id\":\"HEADER_ID\",\"meta\":{\"text\":\"Course overview\"},\"type\":\"HEADER\"},\"ROOT_ID\":{\"children\":[\"GRID_ID\"],\"id\":\"ROOT_ID\",\"type\":\"ROOT\"},\"ROW-0hFN_y-NgF\":{\"children\":[\"CHART-pjjDL63lIM\",\"CHART-PGXKExBtbG\"],\"id\":\"ROW-0hFN_y-NgF\",\"meta\":{\"background\":\"BACKGROUND_TRANSPARENT\"},\"parents\":[\"ROOT_ID\",\"GRID_ID\"],\"type\":\"ROW\"},\"ROW-1VpL9_y3C\":{\"children\":[\"CHART-RUE08HAwEd\",\"CHART-PkrfaIrMNP\"],\"id\":\"ROW-1VpL9_y3C\",\"meta\":{\"background\":\"BACKGROUND_TRANSPARENT\"},\"parents\":[\"ROOT_ID\",\"GRID_ID\"],\"type\":\"ROW\"},\"ROW-FJE2P5KfpA\":{\"children\":[\"CHART-7tiQ9gDD9Q\"],\"id\":\"ROW-FJE2P5KfpA\",\"meta\":{\"background\":\"BACKGROUND_TRANSPARENT\"},\"parents\":[\"ROOT_ID\",\"GRID_ID\"],\"type\":\"ROW\"},\"ROW-Ifn6tvGvdj\":{\"children\":[\"CHART-RIMipwKzGj\"],\"id\":\"ROW-Ifn6tvGvdj\",\"meta\":{\"0\":\"ROOT_ID\",\"background\":\"BACKGROUND_TRANSPARENT\"},\"parents\":[\"ROOT_ID\",\"GRID_ID\"],\"type\":\"ROW\"},\"ROW-xwP_iqbDk\":{\"children\":[\"CHART-JP2ofFRp0O\",\"CHART-v7UYbl-ap6\",\"COLUMN-gumZdo_-5R\",\"CHART-ksac8VVbnJ\"],\"id\":\"ROW-xwP_iqbDk\",\"meta\":{\"background\":\"BACKGROUND_TRANSPARENT\"},\"parents\":[\"ROOT_ID\",\"GRID_ID\"],\"type\":\"ROW\"},\"ROW-yPuXNZUCnv\":{\"children\":[\"CHART-_XdNUl5YJ9\",\"CHART-npBiWH7kMl\",\"CHART-xXCRFE4mZa\",\"CHART-p4ta63zmN2\",\"CHART-t7KLpPYQxw\"],\"id\":\"ROW-yPuXNZUCnv\",\"meta\":{\"0\":\"ROOT_ID\",\"background\":\"BACKGROUND_TRANSPARENT\"},\"parents\":[\"ROOT_ID\",\"GRID_ID\"],\"type\":\"ROW\"}}", "slices": [ { @@ -179,451 +179,6 @@ } ], "datasources": [ - { - "__SqlaTable__": { - "cache_timeout": null, - "columns": [ - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-06-01T16:34:05" - }, - "column_name": "enrollment_created", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 52, - "is_active": null, - "is_dttm": true, - "python_date_format": null, - "table_id": 10, - "type": "NULLABLE(DATETIME)", - "uuid": "214e5525-f504-4967-98fe-594246784958", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "course_id", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 51, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "f30d1ace-61e7-417d-bb42-cbe2202ba77d", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "enrollment_is_active", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 53, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "UINT8", - "uuid": "adda2e42-b890-4614-ad32-70b29df97a50", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "enrollment_mode", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 54, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "95b86e16-a423-46dd-8572-aa59de477a49", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "user_id", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 55, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "UINT64", - "uuid": "349b4226-71f9-4e36-919a-f3166905519f", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "user_year_of_birth", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 56, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "UINT32", - "uuid": "a97a8573-d7f6-4a2f-a36a-ad6605649785", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "user_gender", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 57, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "7a78fd5a-7408-4feb-9981-b8a1519305ec", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "user_level_of_education", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 58, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "14b87739-fd01-460f-a3cc-cd1a222be651", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "user_city", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 59, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "120e3998-09bd-4c4b-9c60-40bf6406c8ce", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "user_state", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 60, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "2656d45a-c083-4966-9aef-1370fefda078", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "user_country", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 61, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "06f431fd-e83d-4551-8fca-808bc2f39854", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "level_of_education", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 62, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "NULLABLE(STRING)", - "uuid": "0862dff7-c61f-4e72-be59-af77825af9ff", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "column_name": "level_of_education_order", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 63, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "NULLABLE(UINT8)", - "uuid": "94f69a29-a2fb-4dee-b9ba-e612fed44a73", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-06-01T10:16:02" - }, - "column_name": "gender", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 64, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "NULLABLE(STRING)", - "uuid": "8b474ea7-40d3-4280-96d9-9a9e15c3997f", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-06-03T08:11:30" - }, - "column_name": "username", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-06-03T08:11:30" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 346, - "is_active": true, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "ae8d2489-854d-479e-b700-efd872c51d9e", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-06-03T08:11:30" - }, - "column_name": "user_email", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-06-03T08:11:30" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 347, - "is_active": true, - "is_dttm": false, - "python_date_format": null, - "table_id": 10, - "type": "STRING", - "uuid": "7a96a7ad-1421-4067-8b10-96e3f64fed91", - "verbose_name": null - } - } - ], - "database_id": 1, - "default_endpoint": null, - "description": null, - "extra": null, - "fetch_values_predicate": null, - "filter_select_enabled": false, - "main_dttm_col": null, - "metrics": [ - { - "__SqlMetric__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-20T16:46:34" - }, - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-20T16:41:16" - }, - "d3format": null, - "description": null, - "expression": "count(*)", - "extra": "{\"warning_markdown\":null}", - "id": 16, - "metric_name": "count", - "metric_type": null, - "table_id": 10, - "uuid": "0967c3ab-96e0-4d06-9861-573e5beac200", - "verbose_name": null, - "warning_text": null - } - } - ], - "offset": 0, - "params": "{\"remote_id\": 10, \"database_name\": \"admin\", \"import_time\": 1622022621}", - "schema": "openedx", - "sql": "SELECT\r\n *,\r\n CASE\r\n WHEN user_gender = 'f' THEN 'Female'\r\n WHEN user_gender = 'm' THEN 'Male'\r\n WHEN user_gender = 'o' THEN 'Other'\r\n END AS gender,\r\n CASE\r\n WHEN user_level_of_education = 'none' THEN 'No formal education'\r\n WHEN user_level_of_education = 'b' THEN 'Bachelor''s degree'\r\n WHEN user_level_of_education = 'a' THEN 'Associate degree'\r\n WHEN user_level_of_education = 'hs' THEN 'Secondary/high school'\r\n WHEN user_level_of_education = 'jhs' THEN 'Junior secondary/junior high/middle school'\r\n WHEN user_level_of_education = 'el' THEN 'Elementary/primary school'\r\n WHEN user_level_of_education = 'm' THEN 'Master''s or professional degree'\r\n WHEN user_level_of_education = 'p' THEN 'Doctorate'\r\n WHEN user_level_of_education = 'other' THEN 'Other education'\r\n END AS level_of_education,\r\n CASE\r\n WHEN user_level_of_education = 'none' THEN 1\r\n WHEN user_level_of_education = 'b' THEN 2\r\n WHEN user_level_of_education = 'a' THEN 3\r\n WHEN user_level_of_education = 'hs' THEN 4\r\n WHEN user_level_of_education = 'jhs' THEN 5\r\n WHEN user_level_of_education = 'el' THEN 6\r\n WHEN user_level_of_education = 'm' THEN 7\r\n WHEN user_level_of_education = 'p' THEN 8\r\n WHEN user_level_of_education = 'other' THEN 9\r\n END AS level_of_education_order\r\nFROM openedx.course_enrollments", - "table_name": "Course enrollments", - "template_params": null - } - }, { "__SqlaTable__": { "cache_timeout": null, @@ -1107,6 +662,815 @@ "template_params": null } }, + { + "__SqlaTable__": { + "cache_timeout": null, + "columns": [ + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "course_id", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 69, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 12, + "type": "STRING", + "uuid": "c0f70f90-5f3d-4aca-b69f-56512daff155", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "video_id", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 70, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 12, + "type": "STRING", + "uuid": "83683155-54ab-4921-b16b-9e5d9abe541b", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "user_id", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 71, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 12, + "type": "INT64", + "uuid": "5ef88039-a246-4df0-a255-8a895005f740", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "start_time", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 72, + "is_active": null, + "is_dttm": true, + "python_date_format": null, + "table_id": 12, + "type": "DATETIME", + "uuid": "a844854f-59d6-4811-8b8b-573b06a91006", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "start_position", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 73, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 12, + "type": "FLOAT", + "uuid": "124ccd6b-6dd6-46c5-b268-b7bf66fc7595", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "start_event", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 74, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 12, + "type": "STRING", + "uuid": "dec56e1c-cf31-4566-804d-4d8efd741037", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "end_time", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 75, + "is_active": null, + "is_dttm": true, + "python_date_format": null, + "table_id": 12, + "type": "DATETIME", + "uuid": "65c2d28c-50dd-4862-951f-baa527c4fa67", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "end_position", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 76, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 12, + "type": "FLOAT", + "uuid": "9881998d-ecfb-4cac-a74e-b6b457059aa8", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "end_event", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 77, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 12, + "type": "STRING", + "uuid": "ae4b8ee8-7f9d-4682-8da3-a61d685d90fe", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "column_name": "duration", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 78, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 12, + "type": "FLOAT", + "uuid": "bf49c6fe-26ad-476d-ab49-234a053ceb74", + "verbose_name": null + } + } + ], + "database_id": 1, + "default_endpoint": null, + "description": null, + "extra": null, + "fetch_values_predicate": null, + "filter_select_enabled": false, + "main_dttm_col": "start_time", + "metrics": [ + { + "__SqlMetric__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T10:12:39" + }, + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:12:00" + }, + "d3format": null, + "description": null, + "expression": "COUNT(*)", + "extra": "{\"warning_markdown\":null}", + "id": 20, + "metric_name": "count", + "metric_type": null, + "table_id": 12, + "uuid": "79c9721e-ac8d-41a0-b36e-06ff33f16a6a", + "verbose_name": "COUNT(*)", + "warning_text": null + } + }, + { + "__SqlMetric__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T15:43:59" + }, + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T10:19:14" + }, + "d3format": null, + "description": null, + "expression": "SUM(end_position - start_position) * 1000", + "extra": "{\"warning_markdown\":null}", + "id": 22, + "metric_name": "Watch time (ms)", + "metric_type": null, + "table_id": 12, + "uuid": "70ceb0e6-7397-43bb-8565-e5b97ab9f536", + "verbose_name": "", + "warning_text": null + } + }, + { + "__SqlMetric__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T16:04:29" + }, + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T15:43:59" + }, + "d3format": null, + "description": null, + "expression": "MAX(end_position) - MIN(start_position)", + "extra": "{\"warning_markdown\":null}", + "id": 23, + "metric_name": "Portion viewed per user", + "metric_type": null, + "table_id": 12, + "uuid": "bb800160-8987-4f93-8715-7d50e7a060d9", + "verbose_name": "", + "warning_text": null + } + }, + { + "__SqlMetric__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-24T16:05:52" + }, + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-24T16:04:29" + }, + "d3format": null, + "description": null, + "expression": "SUM(end_position - start_position) * 1000 / COUNT(DISTINCT(user_id))", + "extra": "{\"warning_markdown\":null}", + "id": 24, + "metric_name": "Average watch time (ms)", + "metric_type": null, + "table_id": 12, + "uuid": "42b1b78b-275c-4181-88ff-99d6cf158c8e", + "verbose_name": "", + "warning_text": null + } + } + ], + "offset": 0, + "params": "{\"remote_id\": 12, \"database_name\": \"admin\", \"import_time\": 1621942851}", + "schema": "openedx", + "sql": "", + "table_name": "video_view_segments", + "template_params": null + } + }, + { + "__SqlaTable__": { + "cache_timeout": null, + "columns": [ + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-06-01T16:34:05" + }, + "column_name": "enrollment_created", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 52, + "is_active": null, + "is_dttm": true, + "python_date_format": null, + "table_id": 10, + "type": "NULLABLE(DATETIME)", + "uuid": "214e5525-f504-4967-98fe-594246784958", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "course_id", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 51, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "f30d1ace-61e7-417d-bb42-cbe2202ba77d", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "enrollment_is_active", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 53, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "UINT8", + "uuid": "adda2e42-b890-4614-ad32-70b29df97a50", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "enrollment_mode", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 54, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "95b86e16-a423-46dd-8572-aa59de477a49", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "user_id", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 55, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "UINT64", + "uuid": "349b4226-71f9-4e36-919a-f3166905519f", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "user_year_of_birth", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 56, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "UINT32", + "uuid": "a97a8573-d7f6-4a2f-a36a-ad6605649785", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "user_gender", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 57, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "7a78fd5a-7408-4feb-9981-b8a1519305ec", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "user_level_of_education", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 58, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "14b87739-fd01-460f-a3cc-cd1a222be651", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "user_city", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 59, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "120e3998-09bd-4c4b-9c60-40bf6406c8ce", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "user_state", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 60, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "2656d45a-c083-4966-9aef-1370fefda078", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "user_country", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 61, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "06f431fd-e83d-4551-8fca-808bc2f39854", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "level_of_education", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 62, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "NULLABLE(STRING)", + "uuid": "0862dff7-c61f-4e72-be59-af77825af9ff", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "column_name": "level_of_education_order", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 63, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "NULLABLE(UINT8)", + "uuid": "94f69a29-a2fb-4dee-b9ba-e612fed44a73", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-06-01T10:16:02" + }, + "column_name": "gender", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 64, + "is_active": null, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "NULLABLE(STRING)", + "uuid": "8b474ea7-40d3-4280-96d9-9a9e15c3997f", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-06-03T08:11:30" + }, + "column_name": "username", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-06-03T08:11:30" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 346, + "is_active": true, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "ae8d2489-854d-479e-b700-efd872c51d9e", + "verbose_name": null + } + }, + { + "__TableColumn__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-06-03T08:11:30" + }, + "column_name": "user_email", + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-06-03T08:11:30" + }, + "description": null, + "expression": null, + "filterable": true, + "groupby": true, + "id": 347, + "is_active": true, + "is_dttm": false, + "python_date_format": null, + "table_id": 10, + "type": "STRING", + "uuid": "7a96a7ad-1421-4067-8b10-96e3f64fed91", + "verbose_name": null + } + } + ], + "database_id": 1, + "default_endpoint": null, + "description": null, + "extra": null, + "fetch_values_predicate": null, + "filter_select_enabled": false, + "main_dttm_col": null, + "metrics": [ + { + "__SqlMetric__": { + "changed_by_fk": 1, + "changed_on": { + "__datetime__": "2021-05-20T16:46:34" + }, + "created_by_fk": 1, + "created_on": { + "__datetime__": "2021-05-20T16:41:16" + }, + "d3format": null, + "description": null, + "expression": "count(*)", + "extra": "{\"warning_markdown\":null}", + "id": 16, + "metric_name": "count", + "metric_type": null, + "table_id": 10, + "uuid": "0967c3ab-96e0-4d06-9861-573e5beac200", + "verbose_name": null, + "warning_text": null + } + } + ], + "offset": 0, + "params": "{\"remote_id\": 10, \"database_name\": \"admin\", \"import_time\": 1622022621}", + "schema": "openedx", + "sql": "SELECT\r\n *,\r\n CASE\r\n WHEN user_gender = 'f' THEN 'Female'\r\n WHEN user_gender = 'm' THEN 'Male'\r\n WHEN user_gender = 'o' THEN 'Other'\r\n END AS gender,\r\n CASE\r\n WHEN user_level_of_education = 'none' THEN 'No formal education'\r\n WHEN user_level_of_education = 'b' THEN 'Bachelor''s degree'\r\n WHEN user_level_of_education = 'a' THEN 'Associate degree'\r\n WHEN user_level_of_education = 'hs' THEN 'Secondary/high school'\r\n WHEN user_level_of_education = 'jhs' THEN 'Junior secondary/junior high/middle school'\r\n WHEN user_level_of_education = 'el' THEN 'Elementary/primary school'\r\n WHEN user_level_of_education = 'm' THEN 'Master''s or professional degree'\r\n WHEN user_level_of_education = 'p' THEN 'Doctorate'\r\n WHEN user_level_of_education = 'other' THEN 'Other education'\r\n END AS level_of_education,\r\n CASE\r\n WHEN user_level_of_education = 'none' THEN 1\r\n WHEN user_level_of_education = 'b' THEN 2\r\n WHEN user_level_of_education = 'a' THEN 3\r\n WHEN user_level_of_education = 'hs' THEN 4\r\n WHEN user_level_of_education = 'jhs' THEN 5\r\n WHEN user_level_of_education = 'el' THEN 6\r\n WHEN user_level_of_education = 'm' THEN 7\r\n WHEN user_level_of_education = 'p' THEN 8\r\n WHEN user_level_of_education = 'other' THEN 9\r\n END AS level_of_education_order\r\nFROM openedx.course_enrollments", + "table_name": "Course enrollments", + "template_params": null + } + }, { "__SqlaTable__": { "cache_timeout": null, @@ -1492,370 +1856,6 @@ "table_name": "Video views", "template_params": "" } - }, - { - "__SqlaTable__": { - "cache_timeout": null, - "columns": [ - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "course_id", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 69, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 12, - "type": "STRING", - "uuid": "c0f70f90-5f3d-4aca-b69f-56512daff155", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "video_id", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 70, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 12, - "type": "STRING", - "uuid": "83683155-54ab-4921-b16b-9e5d9abe541b", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "user_id", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 71, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 12, - "type": "INT64", - "uuid": "5ef88039-a246-4df0-a255-8a895005f740", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "start_time", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 72, - "is_active": null, - "is_dttm": true, - "python_date_format": null, - "table_id": 12, - "type": "DATETIME", - "uuid": "a844854f-59d6-4811-8b8b-573b06a91006", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "start_position", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 73, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 12, - "type": "FLOAT", - "uuid": "124ccd6b-6dd6-46c5-b268-b7bf66fc7595", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "start_event", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 74, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 12, - "type": "STRING", - "uuid": "dec56e1c-cf31-4566-804d-4d8efd741037", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "end_time", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 75, - "is_active": null, - "is_dttm": true, - "python_date_format": null, - "table_id": 12, - "type": "DATETIME", - "uuid": "65c2d28c-50dd-4862-951f-baa527c4fa67", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "end_position", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 76, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 12, - "type": "FLOAT", - "uuid": "9881998d-ecfb-4cac-a74e-b6b457059aa8", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "end_event", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 77, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 12, - "type": "STRING", - "uuid": "ae4b8ee8-7f9d-4682-8da3-a61d685d90fe", - "verbose_name": null - } - }, - { - "__TableColumn__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "column_name": "duration", - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "description": null, - "expression": null, - "filterable": true, - "groupby": true, - "id": 78, - "is_active": null, - "is_dttm": false, - "python_date_format": null, - "table_id": 12, - "type": "FLOAT", - "uuid": "bf49c6fe-26ad-476d-ab49-234a053ceb74", - "verbose_name": null - } - } - ], - "database_id": 1, - "default_endpoint": null, - "description": null, - "extra": null, - "fetch_values_predicate": null, - "filter_select_enabled": false, - "main_dttm_col": "start_time", - "metrics": [ - { - "__SqlMetric__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T10:12:39" - }, - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:12:00" - }, - "d3format": null, - "description": null, - "expression": "COUNT(*)", - "extra": "{\"warning_markdown\":null}", - "id": 20, - "metric_name": "count", - "metric_type": null, - "table_id": 12, - "uuid": "79c9721e-ac8d-41a0-b36e-06ff33f16a6a", - "verbose_name": "COUNT(*)", - "warning_text": null - } - }, - { - "__SqlMetric__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T15:43:59" - }, - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T10:19:14" - }, - "d3format": null, - "description": null, - "expression": "SUM(end_position - start_position) * 1000", - "extra": "{\"warning_markdown\":null}", - "id": 22, - "metric_name": "Watch time (ms)", - "metric_type": null, - "table_id": 12, - "uuid": "70ceb0e6-7397-43bb-8565-e5b97ab9f536", - "verbose_name": "", - "warning_text": null - } - }, - { - "__SqlMetric__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T16:04:29" - }, - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T15:43:59" - }, - "d3format": null, - "description": null, - "expression": "MAX(end_position) - MIN(start_position)", - "extra": "{\"warning_markdown\":null}", - "id": 23, - "metric_name": "Portion viewed per user", - "metric_type": null, - "table_id": 12, - "uuid": "bb800160-8987-4f93-8715-7d50e7a060d9", - "verbose_name": "", - "warning_text": null - } - }, - { - "__SqlMetric__": { - "changed_by_fk": 1, - "changed_on": { - "__datetime__": "2021-05-24T16:05:52" - }, - "created_by_fk": 1, - "created_on": { - "__datetime__": "2021-05-24T16:04:29" - }, - "d3format": null, - "description": null, - "expression": "SUM(end_position - start_position) * 1000 / COUNT(DISTINCT(user_id))", - "extra": "{\"warning_markdown\":null}", - "id": 24, - "metric_name": "Average watch time (ms)", - "metric_type": null, - "table_id": 12, - "uuid": "42b1b78b-275c-4181-88ff-99d6cf158c8e", - "verbose_name": "", - "warning_text": null - } - } - ], - "offset": 0, - "params": "{\"remote_id\": 12, \"database_name\": \"admin\", \"import_time\": 1621942851}", - "schema": "openedx", - "sql": "", - "table_name": "video_view_segments", - "template_params": null - } } ] } \ No newline at end of file diff --git a/tutorcairn/templates/cairn/apps/vector/k8s.toml b/tutorcairn/templates/cairn/apps/vector/k8s.toml new file mode 100644 index 0000000..bf997bb --- /dev/null +++ b/tutorcairn/templates/cairn/apps/vector/k8s.toml @@ -0,0 +1,12 @@ +{% include "cairn/apps/vector/partials/common-pre.toml" %} + +### Sources +# Capture logs from kubernetes +[sources.kubernetes_logs] +type = "kubernetes_logs" +[transforms.openedx_containers] +type = "filter" +inputs = ["kubernetes_logs"] +condition = '.kubernetes.pod_namespace == "{{ K8S_NAMESPACE }}" && includes(["lms", "cms"], .kubernetes.container_name)' + +{% include "cairn/apps/vector/partials/common-post.toml" %} diff --git a/tutorcairn/templates/cairn/apps/vector/local.toml b/tutorcairn/templates/cairn/apps/vector/local.toml new file mode 100644 index 0000000..d777006 --- /dev/null +++ b/tutorcairn/templates/cairn/apps/vector/local.toml @@ -0,0 +1,12 @@ +{% include "cairn/apps/vector/partials/common-pre.toml" %} + +### Sources +# Capture logs from all docker containers +[sources.docker_logs] +type = "docker_logs" +[transforms.openedx_containers] +type = "filter" +inputs = ["docker_logs"] +condition = 'includes(["lms", "cms"], .label."com.docker.compose.service")' + +{% include "cairn/apps/vector/partials/common-post.toml" %} diff --git a/tutorcairn/templates/cairn/apps/vector/vector.toml b/tutorcairn/templates/cairn/apps/vector/partials/common-post.toml similarity index 62% rename from tutorcairn/templates/cairn/apps/vector/vector.toml rename to tutorcairn/templates/cairn/apps/vector/partials/common-post.toml index c11131c..0a72ef5 100644 --- a/tutorcairn/templates/cairn/apps/vector/vector.toml +++ b/tutorcairn/templates/cairn/apps/vector/partials/common-post.toml @@ -1,32 +1,9 @@ -# Vector's API for introspection -[api] -enabled = true -address = "127.0.0.1:8686" - -### Sources - -# Capture logs from all containers -[sources.docker_logs] -type = "docker_logs" -[sources.kubernetes_logs] -type = "kubernetes_logs" - ### Transforms -# Select lms & cms containers -[transforms.openedx_docker_containers] -type = "filter" -inputs = ["docker_logs"] -condition = 'includes(["lms", "cms"], .label."com.docker.compose.service")' -[transforms.openedx_kubernetes_containers] -type = "filter" -inputs = ["docker_logs", "kubernetes_logs"] -condition = '.kubernetes.pod_namespace == "{{ K8S_NAMESPACE }}" && includes(["lms", "cms"], .kubernetes.container_name)' - # Parse tracking logs: extract time [transforms.tracking] type = "remap" -inputs = ["openedx_docker_containers", "openedx_kubernetes_containers"] +inputs = ["openedx_containers"] # Time formats: https://docs.rs/chrono/0.4.19/chrono/format/strftime/index.html#specifiers source = ''' parsed, err_regex = parse_regex(.message, r'^.* \[tracking\] [^{}]* (?P\{.*\})$') @@ -62,10 +39,9 @@ source = ''' # Log all events to stdout, for debugging [sinks.out] type = "console" -inputs = ["openedx_kubernetes_containers"] -# inputs = ["tracking_debug"] +inputs = ["tracking_debug"] encoding.codec = "json" -# encoding.only_fields = ["time", "message.context.course_id", "message.context.user_id", "message.name"] +encoding.only_fields = ["time", "message.context.course_id", "message.context.user_id", "message.name"] # # Send logs to clickhouse [sinks.clickhouse] @@ -78,4 +54,4 @@ database = "{{ CAIRN_CLICKHOUSE_DATABASE }}" table = "_tracking" healthcheck = true -{{ patch("cairn-vector-toml") }} +{{ patch("cairn-vector-common-toml") }} diff --git a/tutorcairn/templates/cairn/apps/vector/partials/common-pre.toml b/tutorcairn/templates/cairn/apps/vector/partials/common-pre.toml new file mode 100644 index 0000000..8ce4a93 --- /dev/null +++ b/tutorcairn/templates/cairn/apps/vector/partials/common-pre.toml @@ -0,0 +1,6 @@ +data_dir = "/var/lib/vector/" + +# Vector's API for introspection +[api] +enabled = true +address = "127.0.0.1:8686" diff --git a/tutorcairn/templates/cairn/build/cairn-superset/Dockerfile b/tutorcairn/templates/cairn/build/cairn-superset/Dockerfile index 7770789..b7b5a2c 100644 --- a/tutorcairn/templates/cairn/build/cairn-superset/Dockerfile +++ b/tutorcairn/templates/cairn/build/cairn-superset/Dockerfile @@ -1,7 +1,7 @@ # Superset image with additional database drivers # https://hub.docker.com/r/apache/superset # https://superset.apache.org/docs/databases/installing-database-drivers -FROM docker.io/apache/superset:a9d888ad402ebb35da45df446997c426d6abee9d +FROM docker.io/apache/superset:0e07a5ca03cb2a6f560b77847c13413b9a8c7d97 USER root # https://pypi.org/project/clickhouse-driver/ diff --git a/tutorcairn/templates/cairn/build/cairn-superset/scripts/cairn b/tutorcairn/templates/cairn/build/cairn-superset/scripts/cairn index 13122f8..10cfac6 100644 --- a/tutorcairn/templates/cairn/build/cairn-superset/scripts/cairn +++ b/tutorcairn/templates/cairn/build/cairn-superset/scripts/cairn @@ -40,6 +40,11 @@ def main(): " Defaults to the username." ), ) + parser_user.add_argument( + "--admin", + action="store_true", + help=("Make the user an administrator."), + ) parser_user.add_argument( "-r", "--role",