Skip to content

PROPOSAL: Add optional usage telemetry to Kubebuilder #5093

@vitorfloriano

Description

@vitorfloriano

Motivation

Kubebuilder is widely used, but maintainers have little visibility into how developers interact with the tool.
Anonymous, opt-in telemetry could help us:

  • Understand which commands are most used (init, create api, alpha update, etc.)
  • Track adoption across versions and platforms
  • Identify pain points or common failure patterns

This data would help inform feature prioritization, documentation improvements, and overall project direction.

Goals

  • Explore adding a lightweight, anonymous, opt-in telemetry mechanism to Kubebuilder
  • Collect only high-level data such as:
    • Kubebuilder version
    • OS/arch
    • Command executed
    • Exit status (success/failure)
  • Ensure sending telemetry is non-blocking and does not affect CLI performance

Non-Goals

  • Collecting sensitive data (e.g., repo URLs, resource names, user identifiers)
  • Making telemetry mandatory
  • Building a complex backend system

Possible Approaches

  • Custom lightweight telemetry (JSON payload over HTTPS)
  • OpenTelemetry integration for standardized reporting
  • Compare with other CNCF CLIs to align on best practices

Note

Telemetry often carries a negative perception in developer tools. However, with the rise of OpenTelemetry under the CNCF, the community now has a well-established standard for transparent, opt-in, and privacy-respecting observability.

This proposal aims to align Kubebuilder with those values, ensuring telemetry is helpful, optional, and never intrusive.

No feasibility evaluation has been done yet; this proposal is exploratory and intended to start a discussion with the Community.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions