Skip to content

Commit 5c3a85b

Browse files
leoromanovskyjoepeeplesgreghuelssameerankdd-oleksii
authored
add ffe server sdk landing page and stubs for each language (#33220)
* add ffe server sdk landing page and stubs for each language * add to sidebar * poll * simpler setup * rebuild nav structure also: - rename `setup` to `client` - update links, other URL references * add tile layout for server landing page + also renames the tile partial in the client page for consistency * add go docs for openfeature implementation (#33234) * add go docs for openfeature implementation * add docs for blocking init, custom timeout, non blocking * no agent version * Documentation for dd-trace with feature flagging support (#33165) * Documentation for dd-trace with feature flagging support * Update content/en/feature_flags/setup/nodejs.md Co-authored-by: Leo Romanovsky <leo.romanovsky@datadoghq.com> --------- Co-authored-by: Leo Romanovsky <leo.romanovsky@datadoghq.com> * Add Ruby feature flags documentation (#33233) * Add Ruby feature flags server documentation - Port content from setup/ruby.md to server/ruby.md - Maintain all Vale linting fixes from previous commits - Include prerequisites, installation, usage examples, and troubleshooting - Support for boolean, string, number, object flags and evaluation context * Update content/en/feature_flags/server/ruby.md Co-authored-by: Leo Romanovsky <leo.romanovsky@datadoghq.com> --------- Co-authored-by: Leo Romanovsky <leo.romanovsky@datadoghq.com> * Add python documentation for OpenFeature implementation (#33247) * consolidate duplicate files Files were in two different paths (older `setup` path and newer `server` path) * Add Java Feature Flags Setup Documentation (#33194) * Add Java Feature Flags setup documentation - Add comprehensive Java SDK onboarding guide - Include installation instructions for Maven and Gradle - Document OpenFeature provider initialization and usage - Add code examples for all flag types (boolean, string, int, double, object) - Document error handling and common error codes - Include best practices and troubleshooting guide - Add Java to feature flags setup page navigation - Document integration with Datadog APM and exposure tracking Related: FFE Server SDK code freeze preparation * fix(docs): Add missing bootstrap JAR and improve Java Feature Flags documentation Critical fixes: - Add missing dd-java-agent-feature-flagging-bootstrap dependency to all examples - Add Building from Source section with detailed instructions - Explain bootstrap module purpose (classloader communication) - Add troubleshooting for ClassNotFoundException Improvements to match Java APM documentation patterns: - Add application server configuration tabs (Spring Boot, Tomcat, JBoss, Jetty, Docker) - Update all code examples to use SLF4J logger instead of System.out/err - Add Compatibility requirements section - Add Getting started section - Update initialization example to show complete application structure Code quality: - Use logger.info/warn/error throughout with parameterized messages - Show proper exception handling with logger - Match actual implementation in ffe-dogfooding repo - Include named client usage ("my-app") The documentation now accurately reflects the required dependencies, follows established Datadog docs patterns, and provides complete setup instructions for the development build. * docs(java): Improve documentation based on review feedback Changes: - Add cross-linking to Configuration section from early warning - Add OpenFeature SDK to compatibility requirements (it is required) - Remove all local build instructions (only reference published X.X.X versions) - Add skip guidance for users with existing agent/remote-config setup - Clarify ProviderNotReadyError is OpenFeature exception (optional handling) - Update exception handling to be optional based on availability requirements - Note that not catching exception may prevent application startup Improvements: - Users with existing APM can skip to provider initialization - Users with existing remote-config can skip agent configuration - Clear guidance on when exception handling is optional vs required - Removed all references to building from source * docs(java): Add event state watching and clarify provider instance sharing Changes: - Add PROVIDER_ERROR and PROVIDER_STALE event listeners to async init example - Note that PROVIDER_CONFIGURATION_CHANGED is optional (depends on provider support) - Update multiple clients section: "organize context and flags" (not just flags) - Clarify that Provider instance is shared globally (client names are organizational only) The Provider constructor doesn't take a name parameter - it's a single shared instance. Named clients are just for organizing your application code, not separate providers. * docs(java): Align flag keys and attributes with mobile SDK conventions Changes: - Update all flag keys to use dot notation (matching Android/iOS): * new-checkout-flow -> checkout.new * ui-theme -> ui.theme * payment-api-endpoint -> payment.api.endpoint * max-retries -> retries.max * discount-rate -> pricing.discount.rate * feature-config -> ui.config * All other flags updated to dot notation - Standardize attribute to use "tier" consistently (not "plan") - Remove "country" attribute from basic example to match mobile simplicity This creates consistency across all SDK documentation and makes it easier for users to migrate between platforms or reference examples. * fix tile image, add page to side nav * headings: sentence-case capitalization * style linter, general style edits * Add Java Feature Flags setup documentation - Add comprehensive Java SDK onboarding guide - Include installation instructions for Maven and Gradle - Document OpenFeature provider initialization and usage - Add code examples for all flag types (boolean, string, int, double, object) - Document error handling and common error codes - Include best practices and troubleshooting guide - Add Java to feature flags setup page navigation - Document integration with Datadog APM and exposure tracking Related: FFE Server SDK code freeze preparation * fix(docs): Add missing bootstrap JAR and improve Java Feature Flags documentation Critical fixes: - Add missing dd-java-agent-feature-flagging-bootstrap dependency to all examples - Add Building from Source section with detailed instructions - Explain bootstrap module purpose (classloader communication) - Add troubleshooting for ClassNotFoundException Improvements to match Java APM documentation patterns: - Add application server configuration tabs (Spring Boot, Tomcat, JBoss, Jetty, Docker) - Update all code examples to use SLF4J logger instead of System.out/err - Add Compatibility requirements section - Add Getting started section - Update initialization example to show complete application structure Code quality: - Use logger.info/warn/error throughout with parameterized messages - Show proper exception handling with logger - Match actual implementation in ffe-dogfooding repo - Include named client usage ("my-app") The documentation now accurately reflects the required dependencies, follows established Datadog docs patterns, and provides complete setup instructions for the development build. * docs(java): Improve documentation based on review feedback Changes: - Add cross-linking to Configuration section from early warning - Add OpenFeature SDK to compatibility requirements (it is required) - Remove all local build instructions (only reference published X.X.X versions) - Add skip guidance for users with existing agent/remote-config setup - Clarify ProviderNotReadyError is OpenFeature exception (optional handling) - Update exception handling to be optional based on availability requirements - Note that not catching exception may prevent application startup Improvements: - Users with existing APM can skip to provider initialization - Users with existing remote-config can skip agent configuration - Clear guidance on when exception handling is optional vs required - Removed all references to building from source * docs(java): Add event state watching and clarify provider instance sharing Changes: - Add PROVIDER_ERROR and PROVIDER_STALE event listeners to async init example - Note that PROVIDER_CONFIGURATION_CHANGED is optional (depends on provider support) - Update multiple clients section: "organize context and flags" (not just flags) - Clarify that Provider instance is shared globally (client names are organizational only) The Provider constructor doesn't take a name parameter - it's a single shared instance. Named clients are just for organizing your application code, not separate providers. * docs(java): Align flag keys and attributes with mobile SDK conventions Changes: - Update all flag keys to use dot notation (matching Android/iOS): * new-checkout-flow -> checkout.new * ui-theme -> ui.theme * payment-api-endpoint -> payment.api.endpoint * max-retries -> retries.max * discount-rate -> pricing.discount.rate * feature-config -> ui.config * All other flags updated to dot notation - Standardize attribute to use "tier" consistently (not "plan") - Remove "country" attribute from basic example to match mobile simplicity This creates consistency across all SDK documentation and makes it easier for users to migrate between platforms or reference examples. * docs(java): Move Java Feature Flags docs to server/ directory - Move java.md from feature_flags/setup/ to feature_flags/setup/server/ - Update frontmatter to reference server-side landing page - Apply style edits from linter (sentence-case headings, consistent capitalization) * extra dev info * various style edits * section collapsing * better sections * reduce expanders --------- Co-authored-by: Joe Peeples <joe.peeples@datadoghq.com> * remove Java from client-side tile partial * Python review edits also applied to other languages with the same text * Ruby review edits and other languages with same text * Go review edits and other languages with same text * Node.js review edits + other languages * clean up links --------- Co-authored-by: Joe Peeples <joe.peeples@datadoghq.com> Co-authored-by: Greg Huels <greg.huels@gmail.com> Co-authored-by: Sameeran Kunche <sameeran.kunche@datadoghq.com> Co-authored-by: Oleksii Shmalko <oleksii.shmalko@datadoghq.com> Co-authored-by: Tyler Potter <tyler.potter@datadoghq.com>
1 parent 7e6eeb7 commit 5c3a85b

File tree

13 files changed

+1779
-22
lines changed

13 files changed

+1779
-22
lines changed

config/_default/menus/main.en.yaml

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5617,21 +5617,51 @@ menu:
56175617
parent: software_delivery_heading
56185618
identifier: feature_flags
56195619
weight: 80000
5620-
- name: Setup
5621-
url: feature_flags/setup
5620+
- name: Client SDKs
5621+
url: feature_flags/client
56225622
parent: feature_flags
5623-
identifier: feature_flags_setup
5623+
identifier: feature_flags_client
56245624
weight: 1
56255625
- name: Android and Android TV
5626-
url: feature_flags/setup/android
5627-
parent: feature_flags_setup
5628-
identifier: feature_flags_setup_android
5626+
url: feature_flags/client/android
5627+
parent: feature_flags_client
5628+
identifier: feature_flags_client_android
56295629
weight: 101
56305630
- name: iOS and tvOS
5631-
url: feature_flags/setup/ios
5632-
parent: feature_flags_setup
5633-
identifier: feature_flags_setup_ios
5631+
url: feature_flags/client/ios
5632+
parent: feature_flags_client
5633+
identifier: feature_flags_client_ios
56345634
weight: 102
5635+
- name: Server SDKs
5636+
url: feature_flags/server
5637+
parent: feature_flags
5638+
identifier: feature_flags_server
5639+
weight: 2
5640+
- name: Go
5641+
url: feature_flags/server/go
5642+
parent: feature_flags_server
5643+
identifier: feature_flags_server_go
5644+
weight: 201
5645+
- name: Java
5646+
url: feature_flags/server/java
5647+
parent: feature_flags_server
5648+
identifier: feature_flags_server_java
5649+
weight: 202
5650+
- name: Node.js
5651+
url: feature_flags/server/nodejs
5652+
parent: feature_flags_server
5653+
identifier: feature_flags_server_nodejs
5654+
weight: 203
5655+
- name: Python
5656+
url: feature_flags/server/python
5657+
parent: feature_flags_server
5658+
identifier: feature_flags_server_python
5659+
weight: 204
5660+
- name: Ruby
5661+
url: feature_flags/server/ruby
5662+
parent: feature_flags_server
5663+
identifier: feature_flags_server_ruby
5664+
weight: 205
56355665
- name: MCP Server
56365666
url: feature_flags/feature_flag_mcp_server
56375667
parent: feature_flags

content/en/feature_flags/_index.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@ further_reading:
55
- link: "/getting_started/feature_flags/"
66
tag: "Documentation"
77
text: "Getting started with Feature Flags"
8-
- link: "/feature_flags/setup/"
8+
- link: "/feature_flags/client/"
99
tag: "Documentation"
10-
text: "Set up Feature Flags for your applications"
10+
text: "Set up Feature Flags for client-side applications"
11+
- link: "/feature_flags/server/"
12+
tag: "Documentation"
13+
text: "Set up Feature Flags for server-side applications"
1114
- link: "/feature_flags/guide/migrate_from_statsig"
1215
tag: "Guide"
1316
text: "Migrate Your Feature Flags from Statsig"
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
---
2-
title: Set Up Feature Flags
3-
description: Set up Datadog Feature Flags for your mobile applications.
2+
title: Client-Side Feature Flags
3+
description: Set up Datadog Feature Flags for client-side applications.
4+
aliases:
5+
- /feature_flags/setup/
46
further_reading:
57
- link: "/feature_flags/"
68
tag: "Documentation"
79
text: "Learn about Feature Flags"
810
- link: "/getting_started/feature_flags/"
911
tag: "Documentation"
1012
text: "Getting Started with Feature Flags"
13+
- link: "feature_flags/server/"
14+
tag: "Documentation"
15+
text: "Server-Side Feature Flags"
1116
---
1217

1318
{{< callout url="http://datadoghq.com/product-preview/feature-flags/" >}}
@@ -18,7 +23,7 @@ Feature Flags are in Preview. Complete the form to request access.
1823

1924
Set up Datadog Feature Flags for your applications. Follow the platform-specific guides below to integrate feature flags into your application and start collecting feature flag data:
2025

21-
{{< partial name="feature_flags/feature_flags_setup.html" >}}
26+
{{< partial name="feature_flags/feature_flags_client.html" >}}
2227

2328
## Further reading
2429

content/en/feature_flags/setup/android.md renamed to content/en/feature_flags/client/android.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
---
22
title: Android and Android TV Feature Flags
33
description: Set up Datadog Feature Flags for Android and Android TV applications.
4+
aliases:
5+
- /feature_flags/setup/android/
46
further_reading:
5-
- link: "/feature_flags/setup/"
7+
- link: "/feature_flags/client/"
68
tag: "Documentation"
7-
text: "Feature Flags Setup"
9+
text: "Client-Side Feature Flags"
810
- link: "/real_user_monitoring/android/"
911
tag: "Documentation"
1012
text: "Android and Android TV Monitoring"
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
---
22
title: iOS and tvOS Feature Flags
33
description: Set up Datadog Feature Flags for iOS and tvOS applications.
4+
aliases:
5+
- /feature_flags/setup/ios/
46
further_reading:
5-
- link: "/feature_flags/setup/"
7+
- link: "/feature_flags/client/"
68
tag: "Documentation"
7-
text: "Feature Flags Setup"
9+
text: "Client-Side Feature Flags"
810
- link: "/real_user_monitoring/ios/"
911
tag: "Documentation"
1012
text: "iOS and tvOS Monitoring"
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
title: Server-Side Feature Flags
3+
description: Set up Datadog Feature Flags for server-side applications.
4+
further_reading:
5+
- link: "/feature_flags/client/"
6+
tag: "Documentation"
7+
text: "Client-Side Feature Flags"
8+
- link: "/remote_configuration/"
9+
tag: "Documentation"
10+
text: "Remote Configuration"
11+
---
12+
13+
{{< callout url="http://datadoghq.com/product-preview/feature-flags/" >}}
14+
Feature Flags are in Preview. Complete the form to request access.
15+
{{< /callout >}}
16+
17+
## Overview
18+
19+
Datadog Feature Flags for server-side applications allow you to remotely control feature availability, run experiments, and roll out new functionality with confidence. Server-side SDKs integrate with the Datadog APM tracer and use Remote Configuration to receive flag updates in real time.
20+
21+
This guide covers the common setup required for all server-side SDKs, including Agent configuration and application environment variables. Select your language or framework to view SDK-specific setup instructions:
22+
23+
{{< partial name="feature_flags/feature_flags_server.html" >}}
24+
25+
## Prerequisites
26+
27+
Before setting up server-side feature flags, ensure you have:
28+
29+
- **Datadog Agent 7.55 or later** installed and running
30+
- **Datadog API key** configured
31+
- **APM tracing** enabled in your application
32+
33+
## Agent configuration
34+
35+
Server-side feature flags use [Remote Configuration][1] to deliver flag configurations to your application. Enable Remote Configuration in your Datadog Agent by setting `DD_REMOTE_CONFIGURATION_ENABLED=true` or adding `remote_configuration.enabled: true` to your `datadog.yaml`.
36+
37+
See the [Remote Configuration documentation][1] for detailed setup instructions across different deployment environments.
38+
39+
### Polling interval
40+
41+
The Agent polls Datadog for configuration updates at a configurable interval. This interval determines the average time between making a flag change in the UI and the change becoming available to your application.
42+
43+
{{< code-block lang="bash" >}}
44+
# Optional: Configure polling interval (default: 60s)
45+
DD_REMOTE_CONFIGURATION_REFRESH_INTERVAL=10s
46+
{{< /code-block >}}
47+
48+
[1]: /remote_configuration
49+
50+
## Application configuration
51+
52+
Configure your application with the standard Datadog environment variables. These are common across all server-side SDKs:
53+
54+
{{< code-block lang="bash" >}}
55+
# Required: Service identification
56+
DD_SERVICE=<YOUR_SERVICE_NAME>
57+
DD_ENV=<YOUR_ENVIRONMENT>
58+
DD_VERSION=<YOUR_APP_VERSION>
59+
60+
# Agent connection (if not using default localhost:8126)
61+
DD_AGENT_HOST=localhost
62+
DD_TRACE_AGENT_PORT=8126
63+
64+
# Enable Remote Configuration in the tracer
65+
DD_REMOTE_CONFIG_ENABLED=true
66+
{{< /code-block >}}
67+
68+
<div class="alert alert-info">Some SDKs require additional experimental flags to enable feature flagging. See the SDK-specific documentation for details.</div>
69+
70+
## Further reading
71+
72+
{{< partial name="whats-next/whats-next.html" >}}

0 commit comments

Comments
 (0)