Skip to content

docs: Add Event Tracking KEP - #938

Open
adrielparedes wants to merge 1 commit into
kubeflow:mainfrom
adrielparedes:kep-937-event-tracking
Open

docs: Add Event Tracking KEP#938
adrielparedes wants to merge 1 commit into
kubeflow:mainfrom
adrielparedes:kep-937-event-tracking

Conversation

@adrielparedes

Copy link
Copy Markdown

Summary

  • Add KEP proposal for issue [feature] Event tracking subsystem for Kale #937: a pluggable event tracking subsystem for Kale
  • Introduces an EventTracker protocol with a facade pattern — Noop default, zero cost when disabled
  • All backend implementations (Amplitude, Segment, etc.) live in separate repositories, discovered at runtime via Python entry points
  • Covers architecture, event schema, JupyterLab UI event routing, configuration, and anonymous identity
  • Documents alternatives considered (OpenTelemetry, per-entry-point tracking, in-tree backends)

Key design decisions

  • Facade pattern: A single EventTracker protocol that all entry points (JupyterLab, CLI, core engine) emit events through
  • Noop default: No analytics unless explicitly configured — zero network calls, zero buffering, zero config
  • Entry point discovery: Backends are separate packages registered via kale.tracking.backends entry points — core Kale has zero vendor dependencies
  • UI event routing: All events route through the Python backend; pure UI events use a dedicated POST /kale/api/track endpoint

Related

@google-oss-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign stefanofioravanzo for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Signed-off-by: Adriel Paredes <adriel.paredes@gmail.com>
@adrielparedes
adrielparedes force-pushed the kep-937-event-tracking branch from a992b54 to e29829b Compare August 18, 2026 12:18

@jesuino jesuino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The KEP is looking good to me, thanks! I have two comments. One is a clarification and the other is a suggestion to avoid an endpoint and to use the existing RPC mechanism in place. Let me know WDYT.

The frontend simply passes the `trigger` value as part of the existing RPC
payload.

Pure UI events (`extension_opened`, `extension_action`) have no corresponding

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't we use the in-place RPC mechanism instead calling a new endpoint?

### Proposed Events


| Event | Category | When |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's also the upload event. Please also notice that upload and run events fires compile event, and run also fires upload. Will we fire all the events or a top level event should be enough? In another words if users click run will we also fire upload and compile or a single run event is enough?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants