Skip to content

[Telemetry] [schema] Define schema for the data that is reported by the telemetry plugin #83704

@afharo

Description

@afharo

We currently have a way to define the schema that is returned by the Usage Collectors.

They usually end up under stack_stats.kibana.plugins.[]. But we need to find a way to define and keep up to date the structure of the data that we return for every other fields (other stack_stats.[PRODUCT], and the stack_stats.kibana and root keys like version, cluster_stats, etc.).

This way we can have a contract with the remote telemetry service for all the fields that we send.

Items to cover:

  • Define "static" definition of the schema
  • Add functional tests that validate the payload against the schema to be aware of breaking changes in ES APIs (split definition between OSS and X-Pack)
  • Check original issue where ES defines their contracts (Add aggregation list to node info elasticsearch#60074)
  • ML specific use case: speak ES-ML devs to know how to best test this.
  • Maybe train the devs that constantly change the contract? Include it in the wiki? Emails?

N.B.: Elasticsearch will eventually provide an API for telemetry purposes (elastic/elasticsearch#58198). But it's not happening anytime soon.

Metadata

Metadata

Assignees

Labels

Feature:TelemetryTeam:CorePlatform Core services: plugins, logging, config, saved objects, http, ES client, i18n, etc t//

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions