Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Implement Tracking for JS (Server) #1033

Closed
toddbaert opened this issue Oct 7, 2024 · 3 comments · Fixed by #1020
Closed

[FEATURE] Implement Tracking for JS (Server) #1033

toddbaert opened this issue Oct 7, 2024 · 3 comments · Fixed by #1020
Assignees
Labels
enhancement New feature or request

Comments

@toddbaert
Copy link
Member

toddbaert commented Oct 7, 2024

Implement tracking as per spec: open-feature/spec@cd99c35

Functional requirements:

  • implement all the features described here

Non functional requirements:

  • use as many existing abstractions and implementations as possible
    • ie: tracking event details should likely use similar underlying functionality to evaluation context / structure
  • provider interface(s) are modified to optionally support tracking; not all providers will support it
  • associated testing and README entry (see markdown snippet below)
  • no breaking changes

README addition (be careful to correctly link to #hooks and #providers and update the code snippet for the language in question

### Tracking

The tracking API allows you to use OpenFeature abstractions and objects to associate user actions with feature flag evaluations.
This is essential for robust experimentation powered by feature flags.
For example, a flag enhancing the appearance of a UI component might drive user engagement to a new feature; to test this hypothesis, telemetry collected by a [hook](#hooks) or [provider](#providers) can be associated with telemetry reported in the client's `track` function.

```{language-in-question}
// flag is evaluated
client.getBooleanFlag('new-component-style');

Note that some providers may not support tracking; check the documentation for your provider for more information.

...

// new feature is used and "track" function is called 
useNewFeature();
client.track('new-feature-used');
@toddbaert toddbaert added the enhancement New feature or request label Oct 7, 2024
@toddbaert toddbaert self-assigned this Oct 7, 2024
@toddbaert toddbaert added good first issue Good for newcomers and removed good first issue Good for newcomers labels Oct 7, 2024
@beeme1mr beeme1mr changed the title [FEATURE] Implement Tracking [FEATURE] Implement Tracking for js server Oct 7, 2024
@toddbaert toddbaert changed the title [FEATURE] Implement Tracking for js server [FEATURE] Implement Tracking for JS (Server) Oct 16, 2024
@wichopy
Copy link
Member

wichopy commented Oct 17, 2024

@toddbaert I could give this a shot. Is reading the spec the best place for understanding whats needed? Is there a slack thread / meeting recording that may give more context?

@beeme1mr
Copy link
Member

Hey @wichopy, I think @toddbaert is actively working on this, but feel free to help with the review. By the way, would you be interested in joining the org? It's the first step in becoming a maintainer and makes it easier for use to @ mention you.

@wichopy
Copy link
Member

wichopy commented Oct 17, 2024

I'd love to join!

github-merge-queue bot pushed a commit that referenced this issue Oct 29, 2024
📣 This was a draft for a while, but is now ready for review! 📣

This implements tracking as per spec, in the server, web, and react
SDKs.
I don't think the Angular or Nest SDKs need specific implementations,
but please advise (cc @luizgribeiro @lukas-reining).

Fixes: #1033
Fixes: #1034

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants