elastic/kibana

[EBT] Add remote `OptInConfig` to allow us to disable buggy or no-longer-relevant event-types

Open

#132253 opened on May 16, 2022

View on GitHub
 (6 comments) (0 reactions) (0 assignees)TypeScript (19,065 stars) (8,021 forks)batch import
Feature:TelemetryTeam:Coreblockedgood first issue

Description

We'd like to be able to remotely disable event types coming through the Event-based telemetry client. The configuration to poll should be similar to the OptInConfig interface to allow us to configure if a channel should be completely disabled or only enabled to some shippers.

The configuration should be published per Kibana version so we can disable only those streams from versions we know are buggy or that their data is no longer relevant for whatever reason.

Open Questions:

  • Should this apply to EBT only? Or should we extend it to snapshot collectors?
  • How does this work with the existing FullStory allowlist? Is it a replacement or should we keep both? I'd vote for keeping both because FullStory only works on Cloud and the allowlist can be controlled via kibana.yml. But I reckon it may be confusing to have 2 places where one could set this up.
  • How to handle the initial state (external configuration not downloaded yet)? Can we assume an "all-in" in those cases?
    • Browser
    • Server's early events?
    • Server behind a firewall (can't reach the remote list)
  • We need a good piece of logic to handle all sources of configuration: kibana.yml + Saved Objects + External URL.
    • The first 2 inputs are based on a user decision and they should be prioritized. Should they though?
      • Bugs we want to disable?
      • User manual opt-in for self-audit purposes?

Contributor guide