Sunbird offline desktop application - Telemetry events spec

Proposed Solution for offline desktop telemetry events

Use cases for plugin installation flow :

Plugin Buil Start Event
{
  "eid": "START",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
    "type": "plugin",
    "uaspec": {
      "agent": "Chromium",
      "platform": "WebKit",
      "raw": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) snap Chromium/73.0.3683.103 Chrome/73.0.3683.103 Safari/537.36",
      "system": "Linux",
      "ver": "73.0.3683.103"
    }
    "mode": "installation"
  }
}


Plugin Build Finish Event
{
  "eid": "END",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
    "type": "plugin",
    "mode": "installation",
    "duration": "317 sec",
    "summary": [
      {
        "installation_status": "success",
		"errors": 0
      }
    ]
  }
}


Use cases for Network Connection flow :


Network Connected Event
{
  "eid": "AUDIT",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
    "props": [
      "Network"
    ],
    "state": "Connected",
    "prevstate": "Disconnected",
    "duration": "10 sec"
  }
}
Network Disconnected Event
{
  "eid": "AUDIT",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
    "props": [
      "Network"
    ],
    "state": "Disconnected",
    "prevstate": "Connected",
    "duration": "5 sec"
  }
}

Use cases for changing settings flow :


Setting Modified Event
{
  "eid": "AUDIT",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
    "props": [
      "Setting"
    ],
    "state": <Current_Setting_State>,
    "prevstate": <Previous_Setting_State>,
    "duration": "3 sec"
  }
}

Use cases for searching flow :


Searched Event
{
  "eid": "SEARCH",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
    "type": "Search",
    "query": "Java",
    "filters": {
		"category": "technology"
	},
    "sort": {},
    "size": 20,
    "topn": [
      {}
    ]
  }
}


Use cases for each and every API call flow :


Log Event for each and every API calls
{
  "eid": "LOG",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
      "type": "api_access",
      "level": "INFO",
      "message": "/api/search?text=java",
      "params": [
         {
            "category": "technology"
         }
      ]
   }
}
Error Event for each and every errors
{
  "eid": "LOG",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
      "type": "api_access",
      "level": "ERROR",
      "message": "searched content not found on server"
  }
}

Use cases for Downloading content flow :


Download Start Event
{
  "eid": "AUDIT",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
      "props": [
         "Download"
      ],
      "state": "Started",
      "prevstate": "Stopped"
   }
}
Download Finish Event
{
  "eid": "AUDIT",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
      "props": [
         "Download"
      ],
      "state": "Finished",
      "prevstate": "Running",
      "duration": "240 sec"
   }
}
Download Paused Event
{
  "eid": "LOG",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
      "type": "content_download_paused",
      "level": "INFO",
      "message": "Download Paused",
      "params": [
         {
            "content_id": "0777946b-adb1-4624-863c-f909a784b3e9"
         }
      ]
   }
}
Download Resumed Event
{
  "eid": "LOG",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
      "type": "content_download_resumed",
      "level": "ERROR",
      "message": <error_stack>,
      "params": [
         {
            "content_id": "0777946b-adb1-4624-863c-f909a784b3e9"
         }
      ]
   }
}


Download Failed Event
{
  "eid": "LOG",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
      "type": "content_download_failed",
      "level": "ERROR",
      "message": <error_stack>,
      "params": [
         {
            "content_id": "0777946b-adb1-4624-863c-f909a784b3e9"
         }
      ]
   }
}


Download Duplicate Event
{
  "eid": "LOG",
  "context": {
    "channel": "b00bc992ef25f1a9a8d63291e20efc8d",
    "pdata": {
      "id": "dev.sunbird.offline",
      "ver": "2.0.0",
      "pid": "sunbird-offline"
    },
    "env": "offline"
  },
  "edata": {
      "type": "content_download_duplicate",
      "level": "ERROR",
      "message": <error_stack>,
      "params": [
         {
            "content_id": "0777946b-adb1-4624-863c-f909a784b3e9"
         }
      ]
   }
}