[RFC] Clickstream Health for Observation V2 #18
radityagumay
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Preface
This document aims to cover the next steps in Clickstream health observation. This document would revisit the current health events being tracked and propose changes along with the new ones that need to be added. Also, propose the platform with which events would be tracked with.
Prior Art
The Clickstream health events currently are being tracked via both Clickstream and CleverTap. The events are broken two kinds the first being error events and the rest others. The error events are tracked via CleverTap and others via Clickstream. Following are the health events being tracked for Clickstream’s health.
Traces
No changes to the traces being sent to firebase.
Proto Structure
Health.proto
HealthMeta.proto
All events have a Quality of Service as 1.
Tracking the events
There can be two ways to make track the events:
Clickstream generates a stream of events which the client listens to and triggers the health event tracking
Clickstream tracks the health events internally as it currently does
Hybrid approach where Clickstream tracks events internally and also generates the health events be tracked by the client
Clickstream generates a stream of events which the client listens to sends the protos back
In this process, clickstream on being provided by the dependency for the health tracker will start generating the health events. The health events can be generated in a dictionary form or as a struct. This can be listened at the clients end and be forwarded to any place.
Pros:
Makes health tracking generic
Can be tracked with any provider
Can be added to the open source repo as such
No need for health meta, as the meta can be enriched on the client side
Easily expandable to cover custom tracker as in CleverTap, Firebase, etc.
Cons:
Adds additional task to client
Needs to be replicated for all clients
The implementation would undergo changes and hence revalidation
Clickstream tracks the health events internally as it currently does
Makes use of the current process of health event tracking. Does not change how the internal events are tracked.
Pros:
No changes to the implementation
Health tracking stays internal
Cons:
Cannot be open sourced as such an option to track with alternate option needs to be provided
Too rigid
HealthMeta duplication
Clickstream tracks the health events internally as it currently does and exposes health events too
Makes use of the current process of health event tracking. Does not change how the internal events are tracked but introduces another approach where the health events will be streamed for the client to subscribe to and track via whatever medium they wish to track.
Pros:
No changes to the implementation
Health tracking stays internal
Get best of both worlds
Cons:
Internal tracking remains the part of the code even if the client does not want it (can be controlled via compiler flags)
HealthMeta duplication
Decision
Chosen: Clickstream tracks the health events internally as it currently does and exposes health events too
Beta Was this translation helpful? Give feedback.
All reactions