docs(flags): Add OpenFeature JS integration docs - #11837

Closed
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs
Closed

docs(flags): Add OpenFeature JS integration docs#11837
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs

Conversation

@cmanallen

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Tell us what you're changing and why. If your PR resolves an issue, please link it so it closes automatically.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

@vercel

vercelBot commented Nov 15, 2024

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewCommentsUpdated (UTC)
sentry-docs✅ Ready (Inspect)Visit Preview💬 Add feedbackNov 15, 2024 8:32pm
2 Skipped Deployments
NameStatusPreviewCommentsUpdated (UTC)
changelog⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm
develop-docs⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm

@codecov

codecovBot commented Nov 15, 2024

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 255 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle nameSizeChange
sentry-docs-server-cjs8.59MB261 bytes (0.0%) ⬆️
sentry-docs-client-array-push8.94MB6 bytes (-0.0%) ⬇️

Comment on lines +40 to +41
const client = OpenFeature.getClient();
client.addHooks(new OpenFeatureIntegrationHook());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

More of a review to be done here: getsentry/sentry-javascript#14326

But could the integration itself do this? Since it's a "global" function that we're calling we could just auto register and avoid having the user do this bit of code?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not without taking on a dependency. We either ask them to pass the client to us at integration init time (which may or may not be desired depending on their code's structure) or we ask them to register the hook explicitly. Just my two cents. Could be more options I don't know about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be Sentry.OpenFeatureIntegrationHook?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes thank you!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not without taking on a dependency.

I see so we're not shipping a @sentry/openfeature here and this is the way?

It's not the easist set up but it does make our lives much easier for now at least (no additional package requirements)

@cmanallencmanallenNov 15, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah its just a browser integration so no extra install steps. I agree its not an ideal setup. But I don't think its unexpected setup friction either.

If one day the flag buffer is a property on the scope we could remove the integration registration step all together and just have people register the hook. Which would be a one line change on the customer's side rather than two.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@lizokmlizokm 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.

Thanks for adding this, I've left a few wording suggestions.

@@ -0,0 +1,51 @@
---
title: OpenFeature
description: "Attaches recent OpenFeature feature flag evaluations to error event context."

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.

Suggested change
description: "Attaches recent OpenFeature feature flag evaluations to error event context."
description: "Learn how to attach Sentry's OpenFeature feature flag evaluations to error event context."


_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

@lizokmlizokmNov 18, 2024

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.

Suggested change
The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**
The [OpenFeature](https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, if an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Evaluating flags will record the result on the Sentry client.

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.

Suggested change
// Evaluating flags will record the result on the Sentry client.
// When you evaluate flags, the result will be recorded by the Sentry client.

Comment on lines +49 to +51
## Options

There are no setup options for this integration.

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.

Suggested change
## Options
There are no setup options for this integration.
## Options
There are no setup options for this integration.

Maybe it's better to just not have this section since there aren't any options?

@michellewzhangmichellewzhang changed the title docs(flags): Add OpenFeature integration docsdocs(flags): Add OpenFeature JS integration docsNov 19, 2024
@michellewzhang

michellewzhang commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

we should make it clear that there's another step to setting up flags (the change tracking / webhook step). can link to the index docs in this PR: #11969. can mirror the changes made here: #11970

see figjam for full map!


</Alert>

_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

@michellewzhangmichellewzhangNov 27, 2024

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.

maybe we should also add an alert saying this is in beta to match the other docs (same with the LD JS doc too)

i've been doing this:

<Alert level="info" title="Currently in Beta">
The support for **feature flag change tracking** and **feature flag evaluation tracking** is currently in beta.
</Alert>

@ryan953

Copy link
Copy Markdown
Member

looks like this got pulled into the big docs PR here: https://github.com/getsentry/sentry-docs/pull/12005/files#diff-9f766b64b39c2a17b915efb1536f14ed4dede9c406a6e9fe920f1f1110ba7bcf

closing this so we can focus there.

@ryan953ryan953 closed this Dec 2, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cmanallen@michellewzhang@ryan953@billyvg@bruno-garcia@lizokm@jas-kas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

docs(flags): Add OpenFeature JS integration docs - #11837

Closed
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs
Closed

docs(flags): Add OpenFeature JS integration docs#11837
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs

Conversation

@cmanallen

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Tell us what you're changing and why. If your PR resolves an issue, please link it so it closes automatically.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

@vercel

vercelBot commented Nov 15, 2024

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewCommentsUpdated (UTC)
sentry-docs✅ Ready (Inspect)Visit Preview💬 Add feedbackNov 15, 2024 8:32pm
2 Skipped Deployments
NameStatusPreviewCommentsUpdated (UTC)
changelog⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm
develop-docs⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm

@codecov

codecovBot commented Nov 15, 2024

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 255 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle nameSizeChange
sentry-docs-server-cjs8.59MB261 bytes (0.0%) ⬆️
sentry-docs-client-array-push8.94MB6 bytes (-0.0%) ⬇️

Comment on lines +40 to +41
const client = OpenFeature.getClient();
client.addHooks(new OpenFeatureIntegrationHook());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

More of a review to be done here: getsentry/sentry-javascript#14326

But could the integration itself do this? Since it's a "global" function that we're calling we could just auto register and avoid having the user do this bit of code?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not without taking on a dependency. We either ask them to pass the client to us at integration init time (which may or may not be desired depending on their code's structure) or we ask them to register the hook explicitly. Just my two cents. Could be more options I don't know about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be Sentry.OpenFeatureIntegrationHook?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes thank you!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not without taking on a dependency.

I see so we're not shipping a @sentry/openfeature here and this is the way?

It's not the easist set up but it does make our lives much easier for now at least (no additional package requirements)

@cmanallencmanallenNov 15, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah its just a browser integration so no extra install steps. I agree its not an ideal setup. But I don't think its unexpected setup friction either.

If one day the flag buffer is a property on the scope we could remove the integration registration step all together and just have people register the hook. Which would be a one line change on the customer's side rather than two.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@lizokmlizokm 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.

Thanks for adding this, I've left a few wording suggestions.

@@ -0,0 +1,51 @@
---
title: OpenFeature
description: "Attaches recent OpenFeature feature flag evaluations to error event context."

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.

Suggested change
description: "Attaches recent OpenFeature feature flag evaluations to error event context."
description: "Learn how to attach Sentry's OpenFeature feature flag evaluations to error event context."


_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

@lizokmlizokmNov 18, 2024

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.

Suggested change
The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**
The [OpenFeature](https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, if an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Evaluating flags will record the result on the Sentry client.

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.

Suggested change
// Evaluating flags will record the result on the Sentry client.
// When you evaluate flags, the result will be recorded by the Sentry client.

Comment on lines +49 to +51
## Options

There are no setup options for this integration.

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.

Suggested change
## Options
There are no setup options for this integration.
## Options
There are no setup options for this integration.

Maybe it's better to just not have this section since there aren't any options?

@michellewzhangmichellewzhang changed the title docs(flags): Add OpenFeature integration docsdocs(flags): Add OpenFeature JS integration docsNov 19, 2024
@michellewzhang

michellewzhang commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

we should make it clear that there's another step to setting up flags (the change tracking / webhook step). can link to the index docs in this PR: #11969. can mirror the changes made here: #11970

see figjam for full map!


</Alert>

_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

@michellewzhangmichellewzhangNov 27, 2024

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.

maybe we should also add an alert saying this is in beta to match the other docs (same with the LD JS doc too)

i've been doing this:

<Alert level="info" title="Currently in Beta">
The support for **feature flag change tracking** and **feature flag evaluation tracking** is currently in beta.
</Alert>

@ryan953

Copy link
Copy Markdown
Member

looks like this got pulled into the big docs PR here: https://github.com/getsentry/sentry-docs/pull/12005/files#diff-9f766b64b39c2a17b915efb1536f14ed4dede9c406a6e9fe920f1f1110ba7bcf

closing this so we can focus there.

@ryan953ryan953 closed this Dec 2, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cmanallen@michellewzhang@ryan953@billyvg@bruno-garcia@lizokm@jas-kas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(flags): Add OpenFeature JS integration docs - #11837

Closed
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs
Closed

docs(flags): Add OpenFeature JS integration docs#11837
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs

Conversation

@cmanallen

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Tell us what you're changing and why. If your PR resolves an issue, please link it so it closes automatically.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

@vercel

vercelBot commented Nov 15, 2024

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewCommentsUpdated (UTC)
sentry-docs✅ Ready (Inspect)Visit Preview💬 Add feedbackNov 15, 2024 8:32pm
2 Skipped Deployments
NameStatusPreviewCommentsUpdated (UTC)
changelog⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm
develop-docs⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm

@codecov

codecovBot commented Nov 15, 2024

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 255 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle nameSizeChange
sentry-docs-server-cjs8.59MB261 bytes (0.0%) ⬆️
sentry-docs-client-array-push8.94MB6 bytes (-0.0%) ⬇️

Comment on lines +40 to +41
const client = OpenFeature.getClient();
client.addHooks(new OpenFeatureIntegrationHook());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

More of a review to be done here: getsentry/sentry-javascript#14326

But could the integration itself do this? Since it's a "global" function that we're calling we could just auto register and avoid having the user do this bit of code?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not without taking on a dependency. We either ask them to pass the client to us at integration init time (which may or may not be desired depending on their code's structure) or we ask them to register the hook explicitly. Just my two cents. Could be more options I don't know about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be Sentry.OpenFeatureIntegrationHook?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes thank you!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not without taking on a dependency.

I see so we're not shipping a @sentry/openfeature here and this is the way?

It's not the easist set up but it does make our lives much easier for now at least (no additional package requirements)

@cmanallencmanallenNov 15, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah its just a browser integration so no extra install steps. I agree its not an ideal setup. But I don't think its unexpected setup friction either.

If one day the flag buffer is a property on the scope we could remove the integration registration step all together and just have people register the hook. Which would be a one line change on the customer's side rather than two.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@lizokmlizokm 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.

Thanks for adding this, I've left a few wording suggestions.

@@ -0,0 +1,51 @@
---
title: OpenFeature
description: "Attaches recent OpenFeature feature flag evaluations to error event context."

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.

Suggested change
description: "Attaches recent OpenFeature feature flag evaluations to error event context."
description: "Learn how to attach Sentry's OpenFeature feature flag evaluations to error event context."


_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

@lizokmlizokmNov 18, 2024

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.

Suggested change
The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**
The [OpenFeature](https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, if an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Evaluating flags will record the result on the Sentry client.

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.

Suggested change
// Evaluating flags will record the result on the Sentry client.
// When you evaluate flags, the result will be recorded by the Sentry client.

Comment on lines +49 to +51
## Options

There are no setup options for this integration.

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.

Suggested change
## Options
There are no setup options for this integration.
## Options
There are no setup options for this integration.

Maybe it's better to just not have this section since there aren't any options?

@michellewzhangmichellewzhang changed the title docs(flags): Add OpenFeature integration docsdocs(flags): Add OpenFeature JS integration docsNov 19, 2024
@michellewzhang

michellewzhang commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

we should make it clear that there's another step to setting up flags (the change tracking / webhook step). can link to the index docs in this PR: #11969. can mirror the changes made here: #11970

see figjam for full map!


</Alert>

_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

@michellewzhangmichellewzhangNov 27, 2024

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.

maybe we should also add an alert saying this is in beta to match the other docs (same with the LD JS doc too)

i've been doing this:

<Alert level="info" title="Currently in Beta">
The support for **feature flag change tracking** and **feature flag evaluation tracking** is currently in beta.
</Alert>

@ryan953

Copy link
Copy Markdown
Member

looks like this got pulled into the big docs PR here: https://github.com/getsentry/sentry-docs/pull/12005/files#diff-9f766b64b39c2a17b915efb1536f14ed4dede9c406a6e9fe920f1f1110ba7bcf

closing this so we can focus there.

@ryan953ryan953 closed this Dec 2, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cmanallen@michellewzhang@ryan953@billyvg@bruno-garcia@lizokm@jas-kas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(flags): Add OpenFeature JS integration docs - #11837

Closed
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs
Closed

docs(flags): Add OpenFeature JS integration docs#11837
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs

Conversation

@cmanallen

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Tell us what you're changing and why. If your PR resolves an issue, please link it so it closes automatically.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

@vercel

vercelBot commented Nov 15, 2024

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewCommentsUpdated (UTC)
sentry-docs✅ Ready (Inspect)Visit Preview💬 Add feedbackNov 15, 2024 8:32pm
2 Skipped Deployments
NameStatusPreviewCommentsUpdated (UTC)
changelog⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm
develop-docs⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm

@codecov

codecovBot commented Nov 15, 2024

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 255 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle nameSizeChange
sentry-docs-server-cjs8.59MB261 bytes (0.0%) ⬆️
sentry-docs-client-array-push8.94MB6 bytes (-0.0%) ⬇️

Comment on lines +40 to +41
const client = OpenFeature.getClient();
client.addHooks(new OpenFeatureIntegrationHook());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

More of a review to be done here: getsentry/sentry-javascript#14326

But could the integration itself do this? Since it's a "global" function that we're calling we could just auto register and avoid having the user do this bit of code?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not without taking on a dependency. We either ask them to pass the client to us at integration init time (which may or may not be desired depending on their code's structure) or we ask them to register the hook explicitly. Just my two cents. Could be more options I don't know about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be Sentry.OpenFeatureIntegrationHook?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes thank you!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not without taking on a dependency.

I see so we're not shipping a @sentry/openfeature here and this is the way?

It's not the easist set up but it does make our lives much easier for now at least (no additional package requirements)

@cmanallencmanallenNov 15, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah its just a browser integration so no extra install steps. I agree its not an ideal setup. But I don't think its unexpected setup friction either.

If one day the flag buffer is a property on the scope we could remove the integration registration step all together and just have people register the hook. Which would be a one line change on the customer's side rather than two.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@lizokmlizokm 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.

Thanks for adding this, I've left a few wording suggestions.

@@ -0,0 +1,51 @@
---
title: OpenFeature
description: "Attaches recent OpenFeature feature flag evaluations to error event context."

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.

Suggested change
description: "Attaches recent OpenFeature feature flag evaluations to error event context."
description: "Learn how to attach Sentry's OpenFeature feature flag evaluations to error event context."


_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

@lizokmlizokmNov 18, 2024

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.

Suggested change
The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**
The [OpenFeature](https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, if an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Evaluating flags will record the result on the Sentry client.

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.

Suggested change
// Evaluating flags will record the result on the Sentry client.
// When you evaluate flags, the result will be recorded by the Sentry client.

Comment on lines +49 to +51
## Options

There are no setup options for this integration.

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.

Suggested change
## Options
There are no setup options for this integration.
## Options
There are no setup options for this integration.

Maybe it's better to just not have this section since there aren't any options?

@michellewzhangmichellewzhang changed the title docs(flags): Add OpenFeature integration docsdocs(flags): Add OpenFeature JS integration docsNov 19, 2024
@michellewzhang

michellewzhang commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

we should make it clear that there's another step to setting up flags (the change tracking / webhook step). can link to the index docs in this PR: #11969. can mirror the changes made here: #11970

see figjam for full map!


</Alert>

_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

@michellewzhangmichellewzhangNov 27, 2024

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.

maybe we should also add an alert saying this is in beta to match the other docs (same with the LD JS doc too)

i've been doing this:

<Alert level="info" title="Currently in Beta">
The support for **feature flag change tracking** and **feature flag evaluation tracking** is currently in beta.
</Alert>

@ryan953

Copy link
Copy Markdown
Member

looks like this got pulled into the big docs PR here: https://github.com/getsentry/sentry-docs/pull/12005/files#diff-9f766b64b39c2a17b915efb1536f14ed4dede9c406a6e9fe920f1f1110ba7bcf

closing this so we can focus there.

@ryan953ryan953 closed this Dec 2, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cmanallen@michellewzhang@ryan953@billyvg@bruno-garcia@lizokm@jas-kas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

docs(flags): Add OpenFeature JS integration docs - #11837

Closed
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs
Closed

docs(flags): Add OpenFeature JS integration docs#11837
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs

Conversation

@cmanallen

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Tell us what you're changing and why. If your PR resolves an issue, please link it so it closes automatically.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

@vercel

vercelBot commented Nov 15, 2024

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewCommentsUpdated (UTC)
sentry-docs✅ Ready (Inspect)Visit Preview💬 Add feedbackNov 15, 2024 8:32pm
2 Skipped Deployments
NameStatusPreviewCommentsUpdated (UTC)
changelog⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm
develop-docs⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm

@codecov

codecovBot commented Nov 15, 2024

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 255 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle nameSizeChange
sentry-docs-server-cjs8.59MB261 bytes (0.0%) ⬆️
sentry-docs-client-array-push8.94MB6 bytes (-0.0%) ⬇️

Comment on lines +40 to +41
const client = OpenFeature.getClient();
client.addHooks(new OpenFeatureIntegrationHook());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

More of a review to be done here: getsentry/sentry-javascript#14326

But could the integration itself do this? Since it's a "global" function that we're calling we could just auto register and avoid having the user do this bit of code?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not without taking on a dependency. We either ask them to pass the client to us at integration init time (which may or may not be desired depending on their code's structure) or we ask them to register the hook explicitly. Just my two cents. Could be more options I don't know about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be Sentry.OpenFeatureIntegrationHook?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes thank you!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not without taking on a dependency.

I see so we're not shipping a @sentry/openfeature here and this is the way?

It's not the easist set up but it does make our lives much easier for now at least (no additional package requirements)

@cmanallencmanallenNov 15, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah its just a browser integration so no extra install steps. I agree its not an ideal setup. But I don't think its unexpected setup friction either.

If one day the flag buffer is a property on the scope we could remove the integration registration step all together and just have people register the hook. Which would be a one line change on the customer's side rather than two.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@lizokmlizokm 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.

Thanks for adding this, I've left a few wording suggestions.

@@ -0,0 +1,51 @@
---
title: OpenFeature
description: "Attaches recent OpenFeature feature flag evaluations to error event context."

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.

Suggested change
description: "Attaches recent OpenFeature feature flag evaluations to error event context."
description: "Learn how to attach Sentry's OpenFeature feature flag evaluations to error event context."


_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

@lizokmlizokmNov 18, 2024

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.

Suggested change
The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**
The [OpenFeature](https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, if an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Evaluating flags will record the result on the Sentry client.

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.

Suggested change
// Evaluating flags will record the result on the Sentry client.
// When you evaluate flags, the result will be recorded by the Sentry client.

Comment on lines +49 to +51
## Options

There are no setup options for this integration.

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.

Suggested change
## Options
There are no setup options for this integration.
## Options
There are no setup options for this integration.

Maybe it's better to just not have this section since there aren't any options?

@michellewzhangmichellewzhang changed the title docs(flags): Add OpenFeature integration docsdocs(flags): Add OpenFeature JS integration docsNov 19, 2024
@michellewzhang

michellewzhang commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

we should make it clear that there's another step to setting up flags (the change tracking / webhook step). can link to the index docs in this PR: #11969. can mirror the changes made here: #11970

see figjam for full map!


</Alert>

_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

@michellewzhangmichellewzhangNov 27, 2024

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.

maybe we should also add an alert saying this is in beta to match the other docs (same with the LD JS doc too)

i've been doing this:

<Alert level="info" title="Currently in Beta">
The support for **feature flag change tracking** and **feature flag evaluation tracking** is currently in beta.
</Alert>

@ryan953

Copy link
Copy Markdown
Member

looks like this got pulled into the big docs PR here: https://github.com/getsentry/sentry-docs/pull/12005/files#diff-9f766b64b39c2a17b915efb1536f14ed4dede9c406a6e9fe920f1f1110ba7bcf

closing this so we can focus there.

@ryan953ryan953 closed this Dec 2, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cmanallen@michellewzhang@ryan953@billyvg@bruno-garcia@lizokm@jas-kas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(flags): Add OpenFeature JS integration docs - #11837

Closed
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs
Closed

docs(flags): Add OpenFeature JS integration docs#11837
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs

Conversation

@cmanallen

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Tell us what you're changing and why. If your PR resolves an issue, please link it so it closes automatically.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

@vercel

vercelBot commented Nov 15, 2024

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewCommentsUpdated (UTC)
sentry-docs✅ Ready (Inspect)Visit Preview💬 Add feedbackNov 15, 2024 8:32pm
2 Skipped Deployments
NameStatusPreviewCommentsUpdated (UTC)
changelog⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm
develop-docs⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm

@codecov

codecovBot commented Nov 15, 2024

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 255 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle nameSizeChange
sentry-docs-server-cjs8.59MB261 bytes (0.0%) ⬆️
sentry-docs-client-array-push8.94MB6 bytes (-0.0%) ⬇️

Comment on lines +40 to +41
const client = OpenFeature.getClient();
client.addHooks(new OpenFeatureIntegrationHook());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

More of a review to be done here: getsentry/sentry-javascript#14326

But could the integration itself do this? Since it's a "global" function that we're calling we could just auto register and avoid having the user do this bit of code?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not without taking on a dependency. We either ask them to pass the client to us at integration init time (which may or may not be desired depending on their code's structure) or we ask them to register the hook explicitly. Just my two cents. Could be more options I don't know about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be Sentry.OpenFeatureIntegrationHook?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes thank you!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not without taking on a dependency.

I see so we're not shipping a @sentry/openfeature here and this is the way?

It's not the easist set up but it does make our lives much easier for now at least (no additional package requirements)

@cmanallencmanallenNov 15, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah its just a browser integration so no extra install steps. I agree its not an ideal setup. But I don't think its unexpected setup friction either.

If one day the flag buffer is a property on the scope we could remove the integration registration step all together and just have people register the hook. Which would be a one line change on the customer's side rather than two.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@lizokmlizokm 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.

Thanks for adding this, I've left a few wording suggestions.

@@ -0,0 +1,51 @@
---
title: OpenFeature
description: "Attaches recent OpenFeature feature flag evaluations to error event context."

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.

Suggested change
description: "Attaches recent OpenFeature feature flag evaluations to error event context."
description: "Learn how to attach Sentry's OpenFeature feature flag evaluations to error event context."


_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

@lizokmlizokmNov 18, 2024

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.

Suggested change
The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**
The [OpenFeature](https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, if an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Evaluating flags will record the result on the Sentry client.

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.

Suggested change
// Evaluating flags will record the result on the Sentry client.
// When you evaluate flags, the result will be recorded by the Sentry client.

Comment on lines +49 to +51
## Options

There are no setup options for this integration.

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.

Suggested change
## Options
There are no setup options for this integration.
## Options
There are no setup options for this integration.

Maybe it's better to just not have this section since there aren't any options?

@michellewzhangmichellewzhang changed the title docs(flags): Add OpenFeature integration docsdocs(flags): Add OpenFeature JS integration docsNov 19, 2024
@michellewzhang

michellewzhang commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

we should make it clear that there's another step to setting up flags (the change tracking / webhook step). can link to the index docs in this PR: #11969. can mirror the changes made here: #11970

see figjam for full map!


</Alert>

_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

@michellewzhangmichellewzhangNov 27, 2024

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.

maybe we should also add an alert saying this is in beta to match the other docs (same with the LD JS doc too)

i've been doing this:

<Alert level="info" title="Currently in Beta">
The support for **feature flag change tracking** and **feature flag evaluation tracking** is currently in beta.
</Alert>

@ryan953

Copy link
Copy Markdown
Member

looks like this got pulled into the big docs PR here: https://github.com/getsentry/sentry-docs/pull/12005/files#diff-9f766b64b39c2a17b915efb1536f14ed4dede9c406a6e9fe920f1f1110ba7bcf

closing this so we can focus there.

@ryan953ryan953 closed this Dec 2, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cmanallen@michellewzhang@ryan953@billyvg@bruno-garcia@lizokm@jas-kas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs(flags): Add OpenFeature JS integration docs - #11837

Closed
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs
Closed

docs(flags): Add OpenFeature JS integration docs#11837
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs

Conversation

@cmanallen

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Tell us what you're changing and why. If your PR resolves an issue, please link it so it closes automatically.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

@vercel

vercelBot commented Nov 15, 2024

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewCommentsUpdated (UTC)
sentry-docs✅ Ready (Inspect)Visit Preview💬 Add feedbackNov 15, 2024 8:32pm
2 Skipped Deployments
NameStatusPreviewCommentsUpdated (UTC)
changelog⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm
develop-docs⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm

@codecov

codecovBot commented Nov 15, 2024

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 255 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle nameSizeChange
sentry-docs-server-cjs8.59MB261 bytes (0.0%) ⬆️
sentry-docs-client-array-push8.94MB6 bytes (-0.0%) ⬇️

Comment on lines +40 to +41
const client = OpenFeature.getClient();
client.addHooks(new OpenFeatureIntegrationHook());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

More of a review to be done here: getsentry/sentry-javascript#14326

But could the integration itself do this? Since it's a "global" function that we're calling we could just auto register and avoid having the user do this bit of code?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not without taking on a dependency. We either ask them to pass the client to us at integration init time (which may or may not be desired depending on their code's structure) or we ask them to register the hook explicitly. Just my two cents. Could be more options I don't know about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be Sentry.OpenFeatureIntegrationHook?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes thank you!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not without taking on a dependency.

I see so we're not shipping a @sentry/openfeature here and this is the way?

It's not the easist set up but it does make our lives much easier for now at least (no additional package requirements)

@cmanallencmanallenNov 15, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah its just a browser integration so no extra install steps. I agree its not an ideal setup. But I don't think its unexpected setup friction either.

If one day the flag buffer is a property on the scope we could remove the integration registration step all together and just have people register the hook. Which would be a one line change on the customer's side rather than two.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@lizokmlizokm 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.

Thanks for adding this, I've left a few wording suggestions.

@@ -0,0 +1,51 @@
---
title: OpenFeature
description: "Attaches recent OpenFeature feature flag evaluations to error event context."

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.

Suggested change
description: "Attaches recent OpenFeature feature flag evaluations to error event context."
description: "Learn how to attach Sentry's OpenFeature feature flag evaluations to error event context."


_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

@lizokmlizokmNov 18, 2024

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.

Suggested change
The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**
The [OpenFeature](https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, if an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Evaluating flags will record the result on the Sentry client.

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.

Suggested change
// Evaluating flags will record the result on the Sentry client.
// When you evaluate flags, the result will be recorded by the Sentry client.

Comment on lines +49 to +51
## Options

There are no setup options for this integration.

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.

Suggested change
## Options
There are no setup options for this integration.
## Options
There are no setup options for this integration.

Maybe it's better to just not have this section since there aren't any options?

@michellewzhangmichellewzhang changed the title docs(flags): Add OpenFeature integration docsdocs(flags): Add OpenFeature JS integration docsNov 19, 2024
@michellewzhang

michellewzhang commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

we should make it clear that there's another step to setting up flags (the change tracking / webhook step). can link to the index docs in this PR: #11969. can mirror the changes made here: #11970

see figjam for full map!


</Alert>

_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

@michellewzhangmichellewzhangNov 27, 2024

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.

maybe we should also add an alert saying this is in beta to match the other docs (same with the LD JS doc too)

i've been doing this:

<Alert level="info" title="Currently in Beta">
The support for **feature flag change tracking** and **feature flag evaluation tracking** is currently in beta.
</Alert>

@ryan953

Copy link
Copy Markdown
Member

looks like this got pulled into the big docs PR here: https://github.com/getsentry/sentry-docs/pull/12005/files#diff-9f766b64b39c2a17b915efb1536f14ed4dede9c406a6e9fe920f1f1110ba7bcf

closing this so we can focus there.

@ryan953ryan953 closed this Dec 2, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cmanallen@michellewzhang@ryan953@billyvg@bruno-garcia@lizokm@jas-kas
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

docs(flags): Add OpenFeature JS integration docs - #11837

Closed
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs
Closed

docs(flags): Add OpenFeature JS integration docs#11837
cmanallen wants to merge 2 commits into
masterfrom
cmanallen/openfeature-integration-docs

Conversation

@cmanallen

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Tell us what you're changing and why. If your PR resolves an issue, please link it so it closes automatically.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

@vercel

vercelBot commented Nov 15, 2024

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

NameStatusPreviewCommentsUpdated (UTC)
sentry-docs✅ Ready (Inspect)Visit Preview💬 Add feedbackNov 15, 2024 8:32pm
2 Skipped Deployments
NameStatusPreviewCommentsUpdated (UTC)
changelog⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm
develop-docs⬜️ Ignored (Inspect)Visit PreviewNov 15, 2024 8:32pm

@codecov

codecovBot commented Nov 15, 2024

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 255 bytes (0.0%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle nameSizeChange
sentry-docs-server-cjs8.59MB261 bytes (0.0%) ⬆️
sentry-docs-client-array-push8.94MB6 bytes (-0.0%) ⬇️

Comment on lines +40 to +41
const client = OpenFeature.getClient();
client.addHooks(new OpenFeatureIntegrationHook());

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

More of a review to be done here: getsentry/sentry-javascript#14326

But could the integration itself do this? Since it's a "global" function that we're calling we could just auto register and avoid having the user do this bit of code?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Not without taking on a dependency. We either ask them to pass the client to us at integration init time (which may or may not be desired depending on their code's structure) or we ask them to register the hook explicitly. Just my two cents. Could be more options I don't know about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

should this be Sentry.OpenFeatureIntegrationHook?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes thank you!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Not without taking on a dependency.

I see so we're not shipping a @sentry/openfeature here and this is the way?

It's not the easist set up but it does make our lives much easier for now at least (no additional package requirements)

@cmanallencmanallenNov 15, 2024

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah its just a browser integration so no extra install steps. I agree its not an ideal setup. But I don't think its unexpected setup friction either.

If one day the flag buffer is a property on the scope we could remove the integration registration step all together and just have people register the hook. Which would be a one line change on the customer's side rather than two.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

@lizokmlizokm 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.

Thanks for adding this, I've left a few wording suggestions.

@@ -0,0 +1,51 @@
---
title: OpenFeature
description: "Attaches recent OpenFeature feature flag evaluations to error event context."

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.

Suggested change
description: "Attaches recent OpenFeature feature flag evaluations to error event context."
description: "Learn how to attach Sentry's OpenFeature feature flag evaluations to error event context."


_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

@lizokmlizokmNov 18, 2024

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.

Suggested change
The [OpenFeature](https://https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, in the event an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**
The [OpenFeature](https://openfeature.dev/) integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory and, if an error occurs, sent to Sentry for review and analysis. **At the moment, we only support boolean flag evaluations.**

const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Evaluating flags will record the result on the Sentry client.

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.

Suggested change
// Evaluating flags will record the result on the Sentry client.
// When you evaluate flags, the result will be recorded by the Sentry client.

Comment on lines +49 to +51
## Options

There are no setup options for this integration.

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.

Suggested change
## Options
There are no setup options for this integration.
## Options
There are no setup options for this integration.

Maybe it's better to just not have this section since there aren't any options?

@michellewzhangmichellewzhang changed the title docs(flags): Add OpenFeature integration docsdocs(flags): Add OpenFeature JS integration docsNov 19, 2024
@michellewzhang

michellewzhang commented Nov 27, 2024

Copy link
Copy Markdown
Contributor

we should make it clear that there's another step to setting up flags (the change tracking / webhook step). can link to the index docs in this PR: #11969. can mirror the changes made here: #11970

see figjam for full map!


</Alert>

_Import name: `Sentry.openFeatureIntegration` and `Sentry.OpenFeatureIntegrationHook`_

@michellewzhangmichellewzhangNov 27, 2024

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.

maybe we should also add an alert saying this is in beta to match the other docs (same with the LD JS doc too)

i've been doing this:

<Alert level="info" title="Currently in Beta">
The support for **feature flag change tracking** and **feature flag evaluation tracking** is currently in beta.
</Alert>

@ryan953

Copy link
Copy Markdown
Member

looks like this got pulled into the big docs PR here: https://github.com/getsentry/sentry-docs/pull/12005/files#diff-9f766b64b39c2a17b915efb1536f14ed4dede9c406a6e9fe920f1f1110ba7bcf

closing this so we can focus there.

@ryan953ryan953 closed this Dec 2, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Dec 18, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cmanallen@michellewzhang@ryan953@billyvg@bruno-garcia@lizokm@jas-kas