Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

This wiki details the architecture of enabling reporting framework to operate at scale. It discusses the high level design problems to be solved and introduces the proposed architecture for the same. 

Key Design Problems

TBA

...

Reporting Architecture

...

Druid Architecture

...

Druid Data Model

Raw Telemetry

Dimension in Druid

Field in Summary event

Description

Data Type

1etsetsEvent timestampLong2

eid

eid

Event Id

String

3

ver

ver

Version

String

4

syncts

syncts

Sync timestamp

Long

5

uid

uid

User Id

String

6

context_date_range_from

context.date_range.from

Start Date for the summary

Long (Epoch)

7

context_date_range_to

context.date_range.to

End Date for the summary

Long (Epoch)

8

context_rollup_l1

context.rollup.l1

Context level1 rollup

String

9

context_rollup_l2

context.rollup.l2

Context level2 rollup

String

10

context_rollup_l3

context.rollup.l3

Context level3 rollup

String

11

context_rollup_l4

context.rollup.l4

Context level4 rollup

String

12

dimension_channel

dimensions.channel

Channel Id as dimension from raw telemetry

String

13

dimensions_did

dimensions.did

Device Id as dimension from raw telemetry

String

14

dimensions_pdata_id

dimensions.pdata.id

Producer Id as dimension from raw telemetry

String

15

dimensions_pdata_pid

dimensions.pdata.pid

Producer Process Id as dimension from raw telemetry

String

16dimensions_pdata_verdimensions.pdata.verProducer Process Ver as dimension from raw telemetryString17

dimensions_sid

dimensions.sid

Session Id as dimension

String

18

dimensions_type

dimensions.type

Type of summary

String

19

dimensions_mode

dimensions.mode

Mode of action in the session

String

20

object_id

object.id

Content Id

String

21

object_type

object.type

Content Type

String

22

object_type

object.type

Content Type

String

23

object_version

object.ver

Content version

String

24

object_rollup_l1

object.rollup.l1

Object level1 rollup

String

25

object_rollup_l2

object.rollup.l2

Object level2 rollup

String

26

object_rollup_l3

object.rollup.l3

Object level3 rollup

String

27

object_rollup_l4

object.rollup.l4

Object level4 rollup

String

28

tags

tags

Tags attached to a summary event

Array[String]

29

edata_time_spent

edata.eks.time_spent

Time spent in the session excluding idle time

Double

30

edata_time_difference

edata.eks.time_diff

Total time in a session including idle time

Double

31

edata_interaction_count

edata.eks.interact_events_count

Total count of interact events in a session

Long

32

edata_env_summary_env

edata.eks.env_summary.env

High level env within the app

(content, domain, resources, community)

Array[String]

33

edata_env_summary_count

edata.eks.env_summary.count

Count of times the environment has been visited

Array[Integer]

34

edata_env_summary_time_spent

edata.eks.env_summary.time_spent

Time spent per env

Array[Double]

35

edata_page_summary_id

edata.eks.page_summary.id

Page id

Array[String]

36

edata_page_summary_type

edata.eks.page_summary.type

Type of page e.g. view/edit

Array[String]

37edata_page15objectidobjectidContent Id16objecttypeobjecttypeContent Type17objectversionEvent typeedatasubtypeedatasubtypeEvent subtypeedatamodeedatamodeSTART event Mode of startedatapageidedatapageidUnique pageidedatauriedatauriIMPRESSION event Relative URI of the contentedataidedataidEvent data IdedatadurationedatadurationDoubleedataindexedataindexASSESS event Index of the question within a contentStringtopnidentifiertopnidentifierSEARCH event topn resultsvisitsobjidvisitsobjidIMPRESSION event unique id for object visitedvisitsobjtypevisitsobjtypeIMPRESSION event type of object visitedvisitsobjvervisitsobjverIMPRESSION event version of object visitedvisitsindexvisitsindexIMPRESSION event index of object within listIntegerdeviceloc_devicedataState location information for the deviceState ISO code information for the devicedeviceloc_citydevicedatacityStringdeviceloccountry_codePrimary & secondary camera speccpucpuProcessor namesimssimsIntegerlastupdated_onlastupdatedonLast updated date contentLong (Epoch)userlocblockuserdatablockBlock info userString


Dimension in Druid

Field in Telemetry

Description

Data Type

1etsetsEvent timestampLong
2

eid

eid

Event Id

String

3

syncts

syncts

Sync Timestamp

Long

4@timstamp@timstampSync Timestamp in StringString
5

actor_id

actor.id

Actor Id of the event

String

56

actor_type

actor.type

Type of the actor

String

67

context_channel

context.channel

Channel Id

String

78

context_pdata_id

context.pdata.id

Producer Id

String

89

context_pdata_pid

context.pdata.pid

Producer Process Id

String

910context_pdata_vercontext.pdata.verProducer version numberString
1011

context_env

context.env

Context Environment

String

1112

context_sid

context.sid

Session Id

String

1213

context_did

context.did

Device Id

String

1314

context_cdata_type

context.cdata.type

Correlation Data Type

Array[String]

1415

context_cdata_id

context.cdata.id

Correlation Data Id

Array[String]

16context_rollup_l1context.rollup.l1Context level 1 rollupString
17context_rollup_l2context.rollup.l2Context level 2 rollupString
18context_

object.ver

Content Version

String

18

tags

tags

Tags

Array[String]

19

edata_type

edata.type

rollup_l3context.rollup.l3Context level 3 rollupString
19context_rollup_l4context.rollup.l4Context level 4 rollupString
20

object_

id

object.

id

Content Id

String

21

object_

type

object.

type

Content Type

String

22

object_

version

object.

ver

Content Version

String

23object_rollup_l1object.rollup.l1Content level 1 rollupString
24object_rollup_l2object.rollup.l2Content level 2 rollupString
25object_rollup_l3object.rollup.

Duration of the event

l3Content level 3 rollupString
26object_rollup_l4object.rollup.l4Content level 4 rollupString
27

edata_pass

edata.pass

ASSESS event Field to identify pass or fail for assessments

tags

tags

Tags

Array[String]

28

edata_scoretype

edata.score

ASSESS event Assessment score

Doubletype

Event type

String

29

edata_resvaluessubtype

edata.resvalues

ASSESS event Assessment results

Array[Object]subtype

Event subtype

String

30

edata_item_idmode

edata.item.idmodeASSESS event Assessment item id

START event Mode of start

String

31

edata_item_titlepageid

edata.item.titleASSESS event Assessment item titlepageid

Unique pageid

String

32

edata_item_maxscoreuri

edata.item.maxscoreuri

ASSESS event Assessment item max score

DoubleIMPRESSION event Relative URI of the content

String

33

edata_target_id

edata.target.idASSESS event Assessment item target id

Event data Id

String

34

edata_target_typeduration

edata.target.type

ASSESS event Assessment item target type

Stringduration

Duration of the event

Double

35

edata_ratingindex

edata.ratingindex

FEEDBACK event RatingsASSESS event Index of the question within a content

Integer

36

edata_commentspass

edata.commentspass

FEEDBACK event CommentsASSESS event Field to identify pass or fail for assessments

String

37

edata_dirscore

edata.dirscore

SHARE ASSESS event directionAssessment score

StringDouble

38

edata_items_idresvalues

edata.items.idresvalues

SHARE event shared item idsASSESS event Assessment results

Array[StringObject]

39

edata_itemsitem_typeid

edata.itemsitem.type

SHARE item types

Array[String]id

ASSESS event Assessment item id

String

40

edata_items_origin_iditem_title

edata.itemsitem.origin.id

SHARE event source id

Array[String]title

ASSESS event Assessment item title

String

41

edata_itemsitem_origin_typemaxscore

edata.itemsitem.origin.type

SHARE event source type

Array[String]maxscore

ASSESS event Assessment item max score

Double

42

edata_itemstarget_to_id

edata.itemstarget.to.id

SHARE event destination ASSESS event Assessment item target id

Array[String]

43

edata_itemstarget_to_type

edata.itemstarget.to.type

SHARE ASSESS event destination Assessment item target type

Array[String]

44

edata_staterating

edata.staterating

AUDIT FEEDBACK event current stateRatings

StringInteger

45

edata_prevstatecomments

edata.prevstateAUDIT event previous statecomments

FEEDBACK event Comments

String

46

edata_sizedir

edata.sizedir

SEARCH SHARE event result sizedirection

IntegerString

47

edata_filtersitems_dialcodesid

edata.filtersitems.dialcodesid

SEARCH event List of dialcodesSHARE event shared item ids

Array[String]

48

edata_

items_

type

edata.

items.

type

SHARE item types

Array[String]

49

edata_

items_origin_

id

edata.

items.

origin.id

SHARE event source id

Array[String]

50

edata_

items_origin_

type

edata.items.

origin.

type

SHARE event source type

Array[String]

51

edata_

items_to_

id

edata.items.

to.

id

SHARE event destination id

Array[String]

52

edata_

items_to_

type

edata.items.

to.

type

SHARE event destination type

Array[

String]

53

edata_

state

edata.state

AUDIT event current state

String

54

device_loc_state_code

devicedata.statecode

edata_prevstate

edata.prevstate

AUDIT event previous state

String

55

edata_

size

edata.

City location information for the device

size

SEARCH event result size

Integer

56

edata_

filters_

devicedata.countrycode

Country ISO code information for the device

String

57

device_loc_country

devicedata.country

Country location information for the device

String

58device_osdevicedata.osDevice OS nameString
59device_makedevicedata.makeDevice make and modelString
60device_iddevicedata.idPhysical device id if available from OSString
61device_memdevicedata.memTotal memory in mbInteger
62device_idiskdevicedata.idiskTotal interanl diskInteger
63device_ediskdevicedata.ediskTotal external diskInteger
64device_scrndevicedata.scrnScreen size in inchesInteger
65device_cameradevicedata.camera

dialcodes

edata.filters.dialcodes

SEARCH event List of dialcodes

Array[String]

57edata_topn_identifieredata.topn.identifierSEARCH event topn resultsArray[String]
58edata_visits_objidedata.visits.objidIMPRESSION event unique id for object visitedArray[String]
59edata_visits_objtypeedata.visits.objtypeIMPRESSION event type of object visitedArray[String]
60edata_visits_objveredata.visits.objverIMPRESSION event version of object visitedArray[String]
61edata_visits_indexedata.visits.indexIMPRESSION event index of object within listArray[Integer]
62

device_loc_state

devicedata.state

State location information for the device

String

63

device_loc_state_code

devicedata.statecode

State ISO code information for the device

String

64

device_loc_iso_state_code

devicedata.iso3166statecodeState ISO-3166 code information for the deviceString
65

device_loc_city

devicedata.city

City location information for the device

String

66

device_

loc_country_code

devicedata.

countrycode

Country ISO code information for the device

String

67

device_

loc_country

devicedata.

Number of sim cards

country

Country location information for the device

String

68device_uaspec_agentosdevicedata.uaspec.agentUser agent of the browserosDevice OS nameString
69device_uaspec_vermakedevicedata.uaspec.verUser agent version of the browsermakeDevice make and modelString
70device_uaspec_systemiddevicedata.uaspec.systemUser agent system identification of the browseridPhysical device id if available from OSString
71device_uaspec_platformmemdevicedata.uaspec.platformUser agent client platform of the browserStringmemTotal memory in mbInteger
72device_uaspec_rawidiskdevicedata.uaspec.rawRaw user agent of the browserStringidiskTotal interanl diskInteger
73device_first_accessediskdevicedata.firstaccessFirst access of the deviceLong (Epoch)ediskTotal external diskInteger
74contentdevice_namescrncontentdatadevicedata.nameName of the contentStringscrnScreen size in inchesInteger
75contentdevice_object_typecameracontentdatadevicedata.objecttypeType of the contentcameraPrimary & secondary camera specString
76contentdevice_typecpucontentdatadevicedata.contenttypeType of the resourcecpuProcessor nameString
77contentdevice_media_typesimscontentdatadevicedata.mediatypesimsType of the media of the resourceStringNumber of sim cardsInteger
78contentdevice_uaspec_languageagentcontentdatadevicedata.uaspec.languageagentList User agent of languages in the contentbrowserArray[String]
79contentdevice_uaspec_mediumvercontentdatadevicedata.uaspec.mediumLanguage medium verUser agent version of the boardbrowserString
80contentdevice_uaspec_mimetypesystemcontentdatadevicedata.uaspec.mimetypeMimetype systemUser agent system identification of the resource in the contentbrowserString
81contentdevice_uaspec_frameworkplatformcontentdata.frameworkdevicedata.uaspec.platformUser agent client platform of the browserString
82contentdevice_uaspec_boardrawcontentdatadevicedata.boardBoard of affiliationuaspec.rawRaw user agent of the browserString
83contentdevice_first_statusaccesscontentdatadevicedata.statusfirstaccessStatus First access of the content - Draft, Published etc.StringdeviceLong (Epoch)
84content_versionnamecontentdata.pkgversionnameVersion Name of the contentDoubleString
85content_lastobject_submitted_ontypecontentdata.lastsubmittedonobjecttypeLast submitted date Type of the contentLong (Epoch)String
86content_last_published_ontypecontentdata.lastpublishedoncontenttypeLast submitted date Type of the contentLong (Epoch)resourceString
87content_media_typecontentdata.mediatypeType of the media of the resourceString
88usercontent_first_namelanguageuserdatacontentdata.firstnamelanguageFirst name List of languages in the usercontentArray[String]
89usercontent_last_namemediumuserdatacontentdata.lastnamemediumLastname Language medium of the userboardArray[String]
90usercontent_grade_listmimetypeuserdatacontentdata.gradelistmimetypeList of grades taughtArray[String]Mimetype of the resource in the contentString
91usercontent_language_listframeworkuserdata.languagelistList of languages knownArray[String]contentdata.framework
String
92usercontent_subject_listboarduserdatacontentdata.subjectlistboardList Board of subjects taughtaffiliationArray[String]
93usercontent_namestatususerdatacontentdata.namestatusUsername Status of the usercontent - Draft, Published etc.String
94usercontent_typeversionuserdatacontentdata.typepkgversionType Version of userthe contentStringDouble
95usercontent_last_locsubmitted_stateonuserdatacontentdata.stateState info lastsubmittedonLast submitted date of the userStringcontentLong (Epoch)
96usercontent_last_locpublished_districtonuserdatacontentdata.districtDistrict info lastpublishedonLast submitted date of the userStringcontentLong (Epoch)
97content_last_updated_oncontentdata.lastupdatedonLast updated date of the contentLong (Epoch)
98dialcodeuser_grade_channellistdialcodeuserdata.channelChannel for which dialcode is generatedStringgradelistList of grades taughtArray[String]
99dialcodeuser_language_batchcodelistdialcodeuserdata.batchcodeBatch for which dialcode belongs toStringlanguagelistList of languages knownArray[String]
100dialcodeuser_subject_publisherlistdialcodeuserdata.publishersubjectlistPublisher List of the dialcodesubjects taughtArray[String]
101dialcodeuser_generated_ontypedialcodeuserdata.generatedonDialcode generated onLong (Epoch)typeType of userString
102dialcodeuser_publishedloc_onstatedialcodeuserdata.publishedonDialcode published onLong (Epoch)stateState info of the userString
103dialcodeuser_loc_statusdistrictdialcodeuserdata.statusdistrictStatus District info of the dialcodeuserString
104dialcodeuser_objectloc_typeblockdialcodeuserdata.objecttypeObject type - DialCode as a valueblockBlock info of the userString

Summary Events

105dialcode_channeldialcodedata.channelChannel for which dialcode is generatedString
106dialcode_batchcodedialcodedata.batchcodeBatch for which dialcode belongs toString
107dialcode_publisherdialcodedata.publisherPublisher of the dialcodeString
108dialcode_generated_ondialcodedata.generatedonDialcode generated onLong (Epoch)
109dialcode_published_ondialcodedata.publishedonDialcode published onLong (Epoch)
110dialcode_statusdialcodedata.statusStatus of the dialcodeString
111dialcode_object_typedialcodedata.objecttypeObject type - DialCode as a valueString

Summary Events

pageEnv of page43itemresponsesscoreitemresponsesscoreScore from ASSESS eventInteger98


Dimension in Druid

Field in Summary event

Description

Data Type

1etsetsEvent timestampLong
2

eid

eid

Event Id

String

3

ver

ver

Version

String

4

syncts

syncts

Sync timestamp

Long

5

uid

uid

User Id

String

6

context_date_range_from

context.date_range.from

Start Date for the summary

Long (Epoch)

7

context_date_range_to

context.date_range.to

End Date for the summary

Long (Epoch)

8

context_rollup_l1

context.rollup.l1

Context level1 rollup

String

9

context_rollup_l2

context.rollup.l2

Context level2 rollup

String

10

context_rollup_l3

context.rollup.l3

Context level3 rollup

String

11

context_rollup_l4

context.rollup.l4

Context level4 rollup

String

12

dimension_channel

dimensions.channel

Channel Id as dimension from raw telemetry

String

13

dimensions_did

dimensions.did

Device Id as dimension from raw telemetry

String

14

dimensions_pdata_id

dimensions.pdata.id

Producer Id as dimension from raw telemetry

String

15

dimensions_pdata_pid

dimensions.pdata.pid

Producer Process Id as dimension from raw telemetry

String

16dimensions_pdata_verdimensions.pdata.verProducer Process Ver as dimension from raw telemetryString
17

dimensions_sid

dimensions.sid

Session Id as dimension

String

18

dimensions_type

dimensions.type

Type of summary

String

19

dimensions_mode

dimensions.mode

Mode of action in the session

String

20

object_id

object.id

Content Id

String

21

object_type

object.type

Content Type

String

22

object_version

object.ver

Content version

String

23

object_rollup_l1

object.rollup.l1

Object level1 rollup

String

24

object_rollup_l2

object.rollup.l2

Object level2 rollup

String

25

object_rollup_l3

object.rollup.l3

Object level3 rollup

String

26

object_rollup_l4

object.rollup.l4

Object level4 rollup

String

27

tags

tags

Tags attached to a summary event

Array[String]

28

edata_time_spent

edata.eks.time_spent

Time spent in the session excluding idle time

Double

29

edata_time_difference

edata.eks.time_diff

Total time in a session including idle time

Double

30

edata_interaction_count

edata.eks.interact_events_count

Total count of interact events in a session

Long

31

edata_env_summary_env

edata.eks.

env_summary.env

High level env within the app

(content, domain, resources, community)

Array[String]

3832

edata_pageenv_summary_visit_count

edata.eks.pageenv_summary.visit_count

Number Count of times each page was the environment has been visited

Array[Integer]

3933

edata_pageenv_summary_time_spent

edata.eks.pageenv_summary.time_spent

Time taken spent per pageenv

Array[Double]

4034

edata_itempage_responses_itemsummary_id

edata.eks.itempage_responsessummary.itemIdQuestion Id passed in the ASSESS eventid

Page id

Array[String]

41

edata_item_responses_time_spent

edata.eks.item_responses.timeSpent

Time spent in seconds from ASSESS event

Array[Double]

4235

edata_itempage_responsessummary_passtype

edata.eks.itempage_responsessummary.passPass response for a question from ASSESS eventtype

Type of page e.g. view/edit

Array[String]

36edata_page_summary_envedata.eks.page_summary.envEnv of pageArray[String]
4437

edata_itempage_responsessummary_maxvisit_scorecount

edata.eks.itempage_responsessummary.maxScoreMax Score from ASSESS eventvisit_count

Number of times each page was visited

Array[Integer]

4538

edata_itempage_summary_responsestime_timestampspent

edata.eks.itempage_responsessummary.time_stampTimestamp for each response from ASSESS eventspent

Time taken per page

Array[DateDouble]

46

device_loc_state

devicedata.state

State location information for the device

String

47

device_loc_state_code

devicedata.statecode

State ISO code information for the device

String

48

device_loc_city

devicedata.city

City location information for the device

String

49

device_loc_country_code

devicedata.countrycode

Country ISO code information for the device

String

50

device_loc_country

devicedata.country

Country location information for the device

String

51device_osdevicedata.osDevice OS nameString
52device_makedevicedata.makeDevice make and modelString
53device_iddevicedata.idPhysical device id if available from OSString
54device_memdevicedata.memTotal memory in mbInteger
55device_idiskdevicedata.idiskTotal interanl diskInteger
56device_ediskdevicedata.ediskTotal external diskInteger
57device_scrndevicedata.scrnScreen size in inchesInteger
58device_cameradevicedata.cameraPrimary & secondary camera specString
59device_cpudevicedata.cpuProcessor nameString
60device_simsdevicedata.simsNumber of sim cardsInteger
61device_uaspec_agentdevicedata.uaspec.agentUser agent of the browserString
62device_uaspec_verdevicedata.uaspec.verUser agent version of the browserString
63device_uaspec_systemdevicedata.uaspec.systemUser agent system identification of the browserString
64device_uaspec_platformdevicedata.uaspec.platformUser agent client platform of the browserString
65device_uaspec_rawdevicedata.uaspec.rawRaw user agent of the browserString
66device_first_accessdevicedata.firstaccessFirst access of the deviceLong (Epoch)
67content_namecontentdata.nameName of the contentString
68content_object_typecontentdata.objecttypeType of the contentString
69content_typecontentdata.contenttypeType of the resourceString
70content_media_typecontentdata.mediatypeType of media of the contentString
71content_languagecontentdata.languageList of languagesArray[String]
72content_mediumcontentdata.mediumLanguage medium of the boardString
73content_mimetypecontentdata.mimetypeMimetype of the contentString
74content_frameworkcontentdata.frameworkString
75content_boardcontentdata.boardBoard of affiliationString
76content_statuscontentdata.statusStatus of the content - Draft, Published etc.String
77content_versioncontentdata.pkgversionVersion of the contentDouble
78content_last_submitted_oncontentdata.lastsubmittedonLast submitted date of the contentLong (Epoch)
79content_last_published_oncontentdata.lastpublishedonLast published date of the contentLong (Epoch)
80content_last_updated_oncontentdata.lastupdatedonLast updated date of the contentLong (Epoch)
81user_first_nameuserdata.firstnameFirst name of the userString
82user_last_nameuserdata.lastnameLast name of the userString
83user_grade_listuserdata.gradelistList of grades taughtArray[String]
84user_language_listuserdata.languagelistList of languages knownArray[String]
85user_subject_listuserdata.subjectlistList of subjects taughtArray[String]
86user_nameuserdata.nameUser name of the userString
87user_typeuserdata.typeType of the userString
88user_loc_stateuserdata.stateState info of the userString
89user_loc_districtuserdata.districtDistrict info of the userString
90user_loc_blockuserdata.blockBlock info of the userString
91dialcode_channeldialcode.channelChannel for which dialcode is generatedString
92dialcode_batchcodedialcode.batchcodeBatch for which dialcode belongs toString
93dialcode_publisherdialcode.publisherPublisher of the dialcodeString
94dialcode_generated_ondialcode.generatedonDialcode generated onLong (Epoch)
95dialcode_published_ondialcode.publishedonDialcode published onLong (Epoch)
96dialcode_statusdialcode.statusStatus of the dialcodeString
97dialcode_object_typedialcode.objecttypeObject type - DialCode as a valueString
39

edata_item_responses_item_id

edata.eks.item_responses.itemId

Question Id passed in the ASSESS event

Array[String]

40

edata_item_responses_time_spent

edata.eks.item_responses.timeSpent

Time spent in seconds from ASSESS event

Array[Double]

41

edata_item_responses_pass

edata.eks.item_responses.pass

Pass response for a question from ASSESS event

Array[String]

42

edata_item_responses_score

edata.eks.item_responses.score

Score from ASSESS event

Array[Integer]

43

edata_item_responses_max_score

edata.eks.item_responses.maxScore

Max Score from ASSESS event

Array[Integer]

44

edata_item_responses_timestamp

edata.eks.item_responses.time_stamp

Timestamp for each response from ASSESS event

Array[Long (Epoch)]

45

device_loc_state

devicedata.state

State location information for the device

String

46

device_loc_state_code

devicedata.statecode

State ISO code information for the device

String

47

device_loc_iso_state_code

devicedata.iso3166statecodeState ISO-3166 code information for the deviceString
48

device_loc_city

devicedata.city

City location information for the device

String

49

device_loc_country_code

devicedata.countrycode

Country ISO code information for the device

String

50

device_loc_country

devicedata.country

Country location information for the device

String

51device_osdevicedata.osDevice OS nameString
52device_makedevicedata.makeDevice make and modelString
53device_iddevicedata.idPhysical device id if available from OSString
54device_memdevicedata.memTotal memory in mbInteger
55device_idiskdevicedata.idiskTotal interanl diskInteger
56device_ediskdevicedata.ediskTotal external diskInteger
57device_scrndevicedata.scrnScreen size in inchesInteger
58device_cameradevicedata.cameraPrimary & secondary camera specString
59device_cpudevicedata.cpuProcessor nameString
60device_simsdevicedata.simsNumber of sim cardsInteger
61device_uaspec_agentdevicedata.uaspec.agentUser agent of the browserString
62device_uaspec_verdevicedata.uaspec.verUser agent version of the browserString
63device_uaspec_systemdevicedata.uaspec.systemUser agent system identification of the browserString
64device_uaspec_platformdevicedata.uaspec.platformUser agent client platform of the browserString
65device_uaspec_rawdevicedata.uaspec.rawRaw user agent of the browserString
66device_first_accessdevicedata.firstaccessFirst access of the deviceLong (Epoch)
67content_namecontentdata.nameName of the contentString
68content_object_typecontentdata.objecttypeType of the contentString
69content_typecontentdata.contenttypeType of the resourceString
70content_media_typecontentdata.mediatypeType of media of the contentString
71content_languagecontentdata.languageList of languagesArray[String]
72content_mediumcontentdata.mediumLanguage medium of the boardString
73content_mimetypecontentdata.mimetypeMimetype of the contentString
74content_frameworkcontentdata.framework
String
75content_boardcontentdata.boardBoard of affiliationString
76content_statuscontentdata.statusStatus of the content - Draft, Published etc.String
77content_versioncontentdata.pkgversionVersion of the contentDouble
78content_last_submitted_oncontentdata.lastsubmittedonLast submitted date of the contentLong (Epoch)
79content_last_published_oncontentdata.lastpublishedonLast published date of the contentLong (Epoch)
80content_last_updated_oncontentdata.lastupdatedonLast updated date of the contentLong (Epoch)
81user_grade_listuserdata.gradelistList of grades taughtArray[String]
82user_language_listuserdata.languagelistList of languages knownArray[String]
83user_subject_listuserdata.subjectlistList of subjects taughtArray[String]
84user_typeuserdata.typeType of the userString
85user_loc_stateuserdata.stateState info of the userString
86user_loc_districtuserdata.districtDistrict info of the userString
87user_loc_blockuserdata.blockBlock info of the userString
Aggregates

Granularity → DAY

Druid field name

Druid source field

Aggregate Type

total_interactions

interaction_count

SUM

total_time_spent

time_spent

SUM

total_sessionsmidCOUNT





...

Report JSON Spec

JSON Schema

Code Block
languagejs
[{
    id: String, // Required. Report ID.
    label: String, // Required. Report Label (will be shown up as menu)
    title: String, // Optional. Report title. Defaults to report label
    description: String, // Optional. Report description. HTML text can be included as description
    dataSource: String, // Required. Location of the data source to show the report. Can be an expression. For ex: /<report_id>/{{channel}}/report.json
    charts: [{ // Optional
 		datasets: [{
			data: Array[Number], // Required if `dataExpr` is not provided. Array of Number. Data points to show in the chart
			dataExpr: String, // Required if `data` is not provided. Expression pointing to the data in dataSource. For ex: {{data.noOfDownloads}}
			label: String // Required. Label to display on the chart
		}],
		labels: Array[String], // Required if `labelsExpr` is not provided. Labels to show on the x-axis
		labelsExpr: String, // Required if `labels` is not provided. Expression pointing to the data in dataSource. For ex: {{data.Date}}
		chartType: String, // Optional. Defaults to line. Available types - line, bar, radar, pie, polarArea & doughnut
		colors: [""], // Optional. Color to show for each dataset. Defaults to ["#024F9D"].
		options: { // Optional. options for display. Full set of options look at https://valor-software.com/ng2-charts/
			responsive: Boolean, // Defaults to true
			...
		}, 
		legend: Boolean // Optional. Whether to show the legend below/above the chart. Defaults to true and position to top.
    }],
    table: { // Optional
        "columns": Array[String], // Required if `columnsExpr` is not provided. Columns to show.
        "values": Array[Array[String]], // Required if `valuesExpr` is not provided. Column data.
        "columnsExpr": String, // Required if `columns` is not provided. Expression pointing to the data in dataSource. For ex: {{keys}}
        "valuesExpr": String // Required if `values` is not provided. Expression pointing to the data in dataSource. For ex: {{tableData}}
    },
    downloadUrl: String // Location to download the data as CSV
}]

...