[Design] Opt-in usage analytics to measure adoption #483
ravjotbrar
started this conversation in
Design
Replies: 1 comment 1 reply
|
I'm wondering why PostHog was chosen as the tool and what other alternatives are possible. A quick look at PostHog shows that:
|
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
This proposes adding opt-in, anonymous usage analytics to Valkey Admin with a single, narrow initial goal: understand how many people use the app and through which deployment mode (Web, Electron, Kubernetes, Docker). Nothing is collected unless a user explicitly opts in. All collection code is open source, and the resulting aggregate data will be published on a public, read-only dashboard so the community sees exactly what we see.
Tracking issue: #477
Motivation
We currently have no signal for how widely Valkey Admin is used or which deployment modes matter most to users. Docker pull counts are a coarse proxy, but they can't distinguish an Electron desktop user from a Kubernetes operator, and they don't tell us whether the app is actually being run. This makes it hard to prioritize (e.g., how much to invest in Electron vs. Web/K8s hardening).
A minimal, transparent, opt-in telemetry signal lets us make those decisions with data while respecting that this is an open-source project where user trust is paramount.
Goals
Non-Goals (for this initial version)
What we collect (initial scope)
Exactly one event,
app_started, with a minimal payload:Web/Electron/Kubernetes/Docker1.2.0The install ID is a random UUID with no linkage to a user account, IP, hostname, or machine identifier. Only a SHA-256 hash of it is transmitted (following the Spinnaker approach LF referenced in the MLflow review), so the collected value can't be reversed to the local ID. It exists only so 100 restarts by one user don't look like 100 users, and has no other use within the app.
What we might collect in the future (NOT in this version)
Listed here for full transparency. Each of these would require its own disclosure and remain under the same opt-in before ever shipping:
Opt-in UX
TELEMETRY.mdand the public dashboardapp_startedevent immediately (initial version).Future iteration: move sending to app close (and/or periodic batching) rather than immediately on accept, to better reflect a "session" and reduce chattiness. Called out now so the roadmap is transparent.
Storage & platform
We propose storing telemetry in Valkey itself, hosted on LF-approved infrastructure under project/LF custody (see Ownership).
PFADD/PFCOUNT) — e.g.PFADD installs:web:2026-08 <hashed-id>gives approximate unique counts in tiny memory, per deployment-mode and time bucket.Data flow:
app → single opt-in event (app_started) → Valkey (HyperLogLog counters) → public dashboard. No inbound listener is added to the app.The exact hosting (which LF-approved infrastructure) is deferred to the LF telemetry review and the ownership question below.
LF telemetry policy & review
Per the LF Projects Telemetry Data Collection and Usage Policy, telemetry is off by default and requires LFP legal-team review and approval before any collection begins, coordinated through the project manager. No data will be collected until that approval is granted. A filled-out review questionnaire (mirroring the approved MLflow review) accompanies this proposal, and the design already aligns with the policy's criteria: opt-in consent, full anonymization, public availability of collected data, and a documented, auditable collection mechanism.
Transparency & trust commitments
TELEMETRY.mdin the repo documents current + planned collection, and how to opt outOwnership & operational responsibility
Whatever platform we choose, the account/instance must be owned at the project level, not by any individual contributor. Tying it to a personal account creates a bus-factor and trust problem: if that person steps away, the data, billing, and admin access are orphaned.
The intent is for analytics infrastructure to follow the same custody model as the project's other shared assets (the domain, the GitHub org, the Docker Hub
valkeyorg). Concretely:This is an open question for the maintainers/governing body and is called out below.
Data retention
Proposed: aggregate event data retained for 12 months, with only derived aggregates surfaced publicly. (Open to community input.)
Open questions for the community
All reactions