Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Event-based Telemetry] Create the external package @elastic/analytics in the Kibana monorepo #121995

Closed
Tracked by #121992
afharo opened this issue Dec 24, 2021 · 1 comment · Fixed by #128407
Closed
Tracked by #121992
Assignees
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

Comments

@afharo
Copy link
Member

afharo commented Dec 24, 2021

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:

  1. Validated against the schema defined via the API Register Event Type. Only in development mode. It won't be implemented for the MVP.
  2. Enriched by the services registered in Extend Context.
  3. Enqueued for shipping in the registered shippers.

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.

@botelastic botelastic bot added the needs-team Issues missing a team label label Dec 24, 2021
@afharo afharo added Feature:Telemetry Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc labels Dec 24, 2021
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-core (Team:Core)

@botelastic botelastic bot removed the needs-team Issues missing a team label label Dec 24, 2021
@exalate-issue-sync exalate-issue-sync bot added impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. loe:small Small Level of Effort labels Dec 24, 2021
@afharo afharo changed the title [Event-based Telemetry] Transmission service [Event-based Telemetry] Create the external package @elastic/analytics in the Kibana monorepo Feb 15, 2022
@exalate-issue-sync exalate-issue-sync bot added loe:x-large Extra Large Level of Effort and removed loe:small Small Level of Effort labels Feb 15, 2022
@exalate-issue-sync exalate-issue-sync bot added impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. and removed impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. labels Mar 8, 2022
@afharo afharo self-assigned this Mar 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants