Allowing for RC to 'emit' data #356
-
The current demos that have been showcased with RC have used DB queries to pull data and generate basic metrics /dashboards. As we see an uptick in adoption, there is an urgent need for RC as infra be able to emit usable events - RC should allow adopters to generate basic telemetry, so that it can be used to compute metrics of interest. We should initiate design discussions to arrive at some basic telemetry specs that will allow for answering of most common queries across a broad spectrum of RC use cases - no. of entires in the registry (by type etc), geographical /demographic spread, computations around VCs - numbers issued, number of users with certain kinds of VCs etc. Requesting thoughts around collation of some core metrics that will apply across domains - once that is agreed upon, we can derive the event structures required to emit such data, and RC can subsequently provision for generation of these. Please feel free to add thoughts @surendrasinghs @parthlawate @SanthoshVasabhaktula @vrayulu @sukhpreetsamagra @ChakshuGautam @pramodkvarma @tejash-jl |
Beta Was this translation helpful? Give feedback.
Replies: 9 comments 12 replies
-
Going over the conversations around metrics and data, having the "core" RC provide for APIs or service endpoints would make sense, which can be ingested by any well-known instance of telemetry+dashboard software and generate data required by the business. |
Beta Was this translation helpful? Give feedback.
-
Bringing over a related thread I had posted on the CQube community |
Beta Was this translation helpful? Give feedback.
-
Following up on this thread: The intent is to provide RC with the capability to ‘emit’ data for reporting purposes. What we now need to get to is Data generation: Data consumption for adopters: The following are the data capabilities for RC that need to come alive:
The next steps, post discussions will involve arriving at an event structure for RC Please feel free to add & tag others as necessary. Thanks. @pramodkvarma |
Beta Was this translation helpful? Give feedback.
-
Below is the approach we are planning to incorporate. It's similar to Co-WIN implementation. We have considered that we need to aggregate data from different hosted registries. The below design can work for federated registries or for a centralised registry as well. |
Beta Was this translation helpful? Give feedback.
-
Given SB-RC is a low code framework, we need to allow registry fields or cred schema fields to be configured for emit (default being none emitted given we don't know the sensitivity of the fields). Each field should be configured for EMIT as below:
Yes, we should telemetry emit for every CRUD API based on above config. Once the telemetry is ingested within the analytics module within the RC instance, it can be used to create metrics (to local instance) and make the metrics also publishable. Publishing to outside world (from within the RC instance) should be from the analytics module of the instance (data/metrics APIs/feeds). Between instances, we SHOULD NOT assume any tech compatibility. If each instance publishes their metrics via APIs/feeds, others can aggregate it. We should not assume Prometheus or any other tech at all. Keep it merely data APIs/feeds in some standard JSON structures. Makes sense? @rhwarrier @tejash-jl @parthlawate |
Beta Was this translation helpful? Give feedback.
-
To create dashboards I can think of 2 high level approaches
Wanted to understand the rationale behind preferring option #2. One reason I can see is privacy, i.e. the emitted data will be designed to not have any PII. However this can be mitigated to an extent by creating "views" in the database with only the necessary fields. |
Beta Was this translation helpful? Give feedback.
-
Thank you for the discussions to arrive at an approach. The intent is to have a V1 (could be a very basic version to kick-start the emit) ready over the next two weeks, in time for the Education reference solutions. PS: Volunteers always welcome! |
Beta Was this translation helpful? Give feedback.
-
Let's put together a Confluence design doc that can then be used for further comments and DC review? |
Beta Was this translation helpful? Give feedback.
-
@tejash-jl @parthlawate are there any design docs that can be shared for DC review? |
Beta Was this translation helpful? Give feedback.
Below is the approach we are planning to incorporate. It's similar to Co-WIN implementation. We have considered that we need to aggregate data from different hosted registries. The below design can work for federated registries or for a centralised registry as well.
SunbirdRC core will emit events for every CRUD operation. Only public data + masked private fields will be sent to kafka. We will create a metrics service which consumes the data and stores it in DB (Clickhouse). The metrics service should be configured with a list of fields/columns on which aggregation needs to be done. The metrics service will expose those aggregated data via a metrics API or by creating a JSON file at the s…