feat: add privacy-preserving product telemetry - #554
Open
cwilhit wants to merge 20 commits into
Open
Conversation
cwilhit
marked this pull request as ready for review
August 22, 2026 02:57
cwilhit
force-pushed
the
feature/product-telemetry
branch
from
August 22, 2026 03:45
1799381 to
37d41de
Compare
Contributor
|
Just dont merge it yet :) I had some other idea how this can be done. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
This adds an OSS-visible and friendly product telemetry system for Faros SaaS deployments:
Why
We need trustworthy activation and usage signals when Faros is operated as SaaS, while preserving the expectations of an OSS installation.
The implementation therefore makes telemetry an explicit SaaS operator choice: stock installations remain off, start no telemetry infrastructure, expose no provider ingestion route, and make no telemetry network calls. When enabled, only cataloged bounded fields are accepted; raw content is prohibited, identifiers are pseudonymized before transport, and the catalog remains reviewable in the OSS repository. Provider integrations target the Faros telemetry contract rather than a hosted analytics vendor, so the sink can evolve or be replaced independently.
Events covered
organization_createdworkspace_createdprovider_enabledapp_studio_project_createdapp_studio_preview_readyapp_studio_project_publishedagents_agent_createdagents_run_terminaledge_first_readyNotable hardening included
Review and live verification uncovered and fixed several lifecycle issues along the instrumented paths:
Pending.Verification
Automated checks
make verify-telemetryprovider-sdk/telemetry: full focused test suite.providers/agents: full tests, race tests, andgo vet ./....git diff --check.Isolated positive E2E cluster
An independent kind/Tilt cluster was used so no other development cluster was touched. All nine events were exercised through their real Faros product paths and observed at the receiver and aggregate projection layers:
201and produced one event/metric each.Failed; retrying reused the same run and did not increment telemetry.Ready; reconnecting did not duplicate the first-ready event.Fresh default-off E2E cluster
A second clean kind/Tilt installation was deployed with all telemetry values left at their defaults:
--telemetry-mode=off; it had no telemetry endpoint or telemetry credential configuration.404.FAROS_PRODUCT_TELEMETRY_ENABLED=false.