[Event-based Telemetry] Create the external package @elastic/analytics
in the Kibana monorepo
#121995
Labels
Feature:Telemetry
impact:high
Addressing this issue will have a high level of impact on the quality/strength of our product.
loe:x-large
Extra Large Level of Effort
Team:Core
Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc
Implement the basic APIs to enqueue the events, enrich them with basic cluster info and send them to the remote service.
NOTE: Depends on the design being fully detailed and approved #121994.
Proposed APIs for now (final names TBD)
Register shipper
It allows the application (Kibana) to enable shippers (bundled or custom) based on the config.
For example: Kibana Telemetry will set the config to enable the general (currently in-house) shipper, and the Cloud plugin will enable FullStory when it applies.
Mind that this task doesn’t implement the shippers per see.
Opt-IN/OUT
API to resume/stop reporting telemetry. It should accept an object with per-event type and shipper opt-in/out selection. For the purpose of the MVP, this task will only cover the
{ global: true/false }
status change.Extend context
API to allow different services to enrich the events generated by other plugins.
As an example, Core can provide Cluster-level info, while Cloud could enrich the events with Cloud-deployment's details.
Register Event Type
Defines the event structure by providing their schema.
In the future, it will allow specifying custom drop strategies and other event-specific behavious we may see fit.
Report/Fire/Track Event
API actually accepting events. Each fired event will be:
Also in the scope
To complete this task, we should provide some Jest Mocks and FTR helpers to make it easier for devs to test their integrations.
The text was updated successfully, but these errors were encountered: