Introduction
In this wiki, We are going to discuss about method to capture the telemetry events to compute the usage of the each features in all the products and we will discuss about below scenario
- Feature usage computation for the existing features of each product.
- Feature usage computation for the upcoming new features of each product
Solution 1:
Description: Feature dashboard will give insight about the feature usage in terms of events received. This will be computed on a daily basis. The data will populated in Superset for Analysis.
Event Name: FEATUREwe will discuss an approach to compute usage of various features across different components. The usage of features can be captured using telemetry events and then subsequently used for analysis of different feature usage. We will discuss the following computations as part of this wiki
- Approach for computation of feature for existing features.
- Approach for capturing required details for feature usage computation for new features.
Solution:
Description: The usage of various features can be directly derived from telemetry events after defining a structure for instrumenting the usage of features. A data product summariser will operate on the telemetry events to compute the feature usage data. The usage data can then be indexed into Druid for further visualisation or analysis.
Event Flow:
Event Name: FEATURE
Event Data Structure:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ id:"Feature Identifier", //required name:"Editor Undo Redo", // Optional description:"", // Optional version:"1.0", // Version of the feature releaseversionreleasedversion:"15.0", // Required, In which version of product having this featureId category:"SunbirdEd" // RequiredOptional, Defined this feature is related to SunbirdEd or SunbirdCore (Ex: SunbirdEd or SunbirdCore) duration:"42343", //Optional, Time spent in releasedate:"" // optional, Releasing date of the feature. lastupdateddate:"" // Optional, When this feature is got updated. second } |
Existing features usage computation:
Feature | Event Name | Properties | |
---|---|---|---|
1 | Youtube video in the ECML Content | INTERACT | actor.type='User' context.env='contenteditor' object.type='content' edata.type='select' edata.plugin.id='org.ekstep.video' |
2 | Question Plugin | INTERACT | actor.type='User' context.env='contenteditor' object.type='content' edata.type='click' edata.id='button' edata.subtype='select' edata.plugin.id='org.ekstep.questionbank' |
3 | Content suggestion in textbook | INTERACT | actor.type='User' context.env='contenteditor' object.type='content' edata.type='click' edata.id='button' edata.subtype='select' edata.plugin.id='org.ekstep.suggestioncontent' |
4 | Math symbol and formula | INTERACT | actor.type='User' context.env='contenteditor' object.type='content' edata.type='TOUCH' edata.id='input' edata.pageid='question-creation-mcq-form' edata.plugin.id='org.ekstep.questionunit.mcq' |
5 | Assessment summariser in the mobile app | IMPRESSION | actor.type='User' context.env='reports-users-group' edata.pageid='user' edata.uri='user' edata.type='view' |
6 | User Groups in mobile app | IMPRESSION | actor.type='User' context.env='user' edata.pageid='users-groups' edata.uri='users-groups' edata.type='view' |
Conclusion:
* Instead of generating new FEATURE
event object from the upstream component, generate a INREACT
Event with cdata object having featureId with this we can compute the feature usage.
* For the existing features, Implement data product to compute the feature usage only if the computation is not possible from the druid.