You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Then initialize or access the Datadog OpenFeature provider in application code. See the [Java][4] or [Node.js][2] setup instructions.
63
+
Then initialize or access the Datadog OpenFeature provider in application code. See the [Java][4], [Node.js][2], or [Python][5] setup instructions.
63
64
64
65
No configuration-source or provider-enable setting is required. Polling begins only when application code initializes or accesses the provider; installing or initializing the tracer alone does not create Feature Flags CDN traffic.
65
66
66
-
<divclass="alert alert-warning">The initial Node.js agentless releases support configuration delivery and local flag evaluation only. They do not export evaluation metrics or exposure events. Java agentless delivery changes only the configuration source. Without a supported Datadog Agent or serverless telemetry path, Java also does not export these signals.</div>
67
+
<divclass="alert alert-warning">The initial Node.js agentless releases support configuration delivery and local flag evaluation only. They do not export evaluation metrics or exposure events. Java and Python agentless delivery change only the configuration source. Java and Python do not export these signals without a supported Datadog Agent or serverless telemetry path.</div>
67
68
68
69
### Configure agentless delivery
69
70
@@ -72,7 +73,7 @@ Set `DD_SITE` to your organization's Datadog site. For the site selected on this
72
73
| Environment variable | Default | Description |
73
74
|---|---|---|
74
75
|`DD_FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_BASE_URL`| Datadog-managed endpoint | Overrides the agentless flag configuration endpoint or base URL. See [Use a custom agentless endpoint](#use-a-custom-agentless-endpoint). |
75
-
|`DD_FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_POLL_INTERVAL_SECONDS`|`30`| Positive integer that sets the time between completed polling attempts. Java does not limit attempts, while Node.js caps values at 3600 seconds. |
76
+
|`DD_FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_POLL_INTERVAL_SECONDS`|`30`| Positive integer that sets the time between completed polling attempts. Java does not limit attempts, while Node.js and Python cap values at 3600 seconds. |
76
77
|`DD_FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_REQUEST_TIMEOUT_SECONDS`|`5`| Positive integer that sets the timeout for an individual configuration request. |
77
78
78
79
The SDK fetches configuration in the background and evaluates flags locally. Individual flag evaluations do not make network requests. The agentless source does the following:
@@ -170,3 +171,4 @@ Server Feature Flags billing is based on configuration requests made through Rem
Copy file name to clipboardExpand all lines: hugo/content/en/feature_flags/implementation_patterns/serverless.md
+10-8Lines changed: 10 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ further_reading:
18
18
19
19
## Overview
20
20
21
-
The Datadog Feature Flags Java and Node.js SDKs can receive flag configuration directly from the Datadog-managed CDN. This _agentless_ configuration source simplifies onboarding because it does not require a Datadog Agent for flag configuration. It also supports serverless applications that cannot connect to a Datadog Agent.
21
+
The Datadog Feature Flags Java, Node.js, and Python SDKs can receive flag configuration directly from the Datadog-managed CDN. This _agentless_ configuration source simplifies onboarding because it does not require a Datadog Agent for flag configuration. It also supports serverless applications that cannot connect to a Datadog Agent.
22
22
23
23
After configuration is loaded, flag evaluation happens locally in the application. The SDK does not make a network request for each evaluation.
24
24
@@ -29,12 +29,13 @@ Agentless configuration delivery is available in:
29
29
| Java `dd-openfeature` and `dd-java-agent`| 1.65.0 |
30
30
| Node.js `dd-trace` v5 | 5.116.0 |
31
31
| Node.js `dd-trace` v6 | 6.5.0 |
32
+
| Python `ddtrace`| 4.14.0 |
32
33
33
34
Java CDN delivery requires `dd-openfeature` and `dd-java-agent`. The Java runtime must support loading `dd-java-agent` with the `-javaagent` JVM option. You can pass this option in the Java command or through `JAVA_TOOL_OPTIONS`.
34
35
35
36
Other server SDKs and versions earlier than those listed require Agent Remote Configuration for flag delivery.
36
37
37
-
<divclass="alert alert-warning">The initial Node.js agentless releases load configuration and evaluate flags locally. They do not export evaluation metrics or exposure events. Java agentless delivery changes only the configuration source. Without a supported Datadog Agent or serverless telemetry path, Java also does not export these signals.</div>
38
+
<divclass="alert alert-warning">The initial Node.js agentless releases load configuration and evaluate flags locally. They do not export evaluation metrics or exposure events. Java and Python agentless delivery change only the configuration source. Java and Python do not export these signals without a supported Datadog Agent or serverless telemetry path.</div>
38
39
39
40
## Agentless architecture
40
41
@@ -49,7 +50,7 @@ Use agentless delivery when the serverless runtime can make outbound HTTPS reque
4. Initialize or access the Datadog OpenFeature provider as described in the [Java][6] or [Node.js][3] setup. This starts CDN polling. No Feature Flags enablement or source setting is required.
53
+
4. Initialize or access the Datadog OpenFeature provider as described in the [Java][6], [Node.js][3], or [Python][9] setup. This starts CDN polling. No Feature Flags enablement or source setting is required.
53
54
5. Store `DD_API_KEY` in the serverless platform's secret manager and expose it only to the application process.
54
55
55
56
The SDK polls the Datadog-managed CDN every 30 seconds by default and uses ETags for unchanged configuration. It preserves the last accepted configuration during temporary errors. If no configuration has been accepted, OpenFeature evaluations return the caller-provided default value.
-**API key ownership**: In agentless mode, the application owns `DD_API_KEY`. In `remote_config` mode, the Agent owns the API key.
91
92
-**Flag updates**: Delivery is eventually consistent. Allow for the SDK polling interval and application startup time when testing changes.
92
93
-**Last-known-good behavior**: After a configuration has been accepted, temporary network failures or malformed responses do not replace it.
93
-
-**Runtime support**: Java requires Java 11 or later. For Node.js, check the tracer's runtime compatibility requirements.
94
+
-**Runtime support**: Java requires Java 11 or later. For Node.js and Python, check the tracer's runtime compatibility requirements.
94
95
-**Kill switch**: `DD_FEATURE_FLAGS_ENABLED` defaults to `true`. Set it to `false` to disable the provider and both configuration delivery paths. Evaluations then return caller-provided default values.
95
96
96
97
Datadog-managed agentless delivery is not available for Datadog for Government in these versions. Use Agent Remote Configuration on that site.
@@ -101,15 +102,15 @@ If your deployment uses `DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED`, see [Migrat
101
102
102
103
### AWS Lambda
103
104
104
-
Java and Node.js Lambda functions can use agentless configuration delivery when they run a minimum SDK version and can reach Datadog over HTTPS. Java functions must load `dd-java-agent` with `-javaagent`, either directly or through `JAVA_TOOL_OPTIONS`. A Java tracing layer can provide this setup. The Datadog Lambda Extension is not required for flag configuration.
105
+
Java, Node.js, and Python Lambda functions can use agentless configuration delivery when they run a minimum SDK version and can reach Datadog over HTTPS. Java functions must load `dd-java-agent` with `-javaagent`, either directly or through `JAVA_TOOL_OPTIONS`. A Java tracing layer can provide this setup. The Datadog Lambda Extension is not required for flag configuration.
105
106
106
107
### Google Cloud serverless environments
107
108
108
-
Java workloads can use agentless configuration delivery on Java 11 or later when the runtime can load `dd-java-agent`. The Java setup for [Cloud Run Functions][7] and [Cloud Run containers][8] uses `JAVA_TOOL_OPTIONS` to set `-javaagent`. Node.js workloads require a supported tracer runtime. Both runtimes require outbound HTTPS access.
109
+
Java workloads can use agentless configuration delivery on Java 11 or later when the runtime can load `dd-java-agent`. The Java setup for [Cloud Run Functions][7] and [Cloud Run containers][8] uses `JAVA_TOOL_OPTIONS` to set `-javaagent`. Node.js and Python workloads require a supported tracer runtime. All runtimes require outbound HTTPS access.
109
110
110
111
### Azure Functions
111
112
112
-
Java function apps can use agentless configuration delivery on Java 11 or later when the runtime can load `dd-java-agent`. Node.js function apps require a supported tracer runtime. Both runtimes require outbound HTTPS access. An external Datadog Agent is only required when `remote_config` is selected.
113
+
Java function apps can use agentless configuration delivery on Java 11 or later when the runtime can load `dd-java-agent`. Node.js and Python function apps require a supported tracer runtime. All runtimes require outbound HTTPS access. An external Datadog Agent is only required when `remote_config` is selected.
113
114
114
115
### Edge runtimes
115
116
@@ -130,7 +131,7 @@ Before enabling Feature Flags in production:
130
131
3. Initialize the OpenFeature provider and check that it reaches a ready state.
131
132
4. Change a non-production flag in Datadog and confirm that the workload receives the updated value after the polling interval.
132
133
5. Confirm that your application handles caller-provided defaults if configuration is unavailable during a cold start.
133
-
6. For Node.js, do not plan experimentation workflows around evaluation metrics or exposure data. For Java, configure a supported Datadog Agent or serverless telemetry path before you use these signals.
134
+
6. For Node.js, do not plan experimentation workflows around evaluation metrics or exposure data. For Java and Python, configure a supported Datadog Agent or serverless telemetry path before you use these signals.
134
135
135
136
## Further reading
136
137
@@ -144,3 +145,4 @@ Before enabling Feature Flags in production:
Copy file name to clipboardExpand all lines: hugo/content/en/feature_flags/server/_index.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,10 +42,11 @@ The default source does not activate Feature Flags traffic for every tracer inst
42
42
| Java `dd-openfeature` and `dd-java-agent`| 1.65.0 |
43
43
| Node.js `dd-trace` v5 | 5.116.0 |
44
44
| Node.js `dd-trace` v6 | 6.5.0 |
45
+
| Python `ddtrace`| 4.14.0 |
45
46
46
47
Java CDN delivery requires `dd-openfeature` and `dd-java-agent`. It does not require a Datadog Agent for flag configuration.
47
48
48
-
<divclass="alert alert-warning">The initial Node.js agentless releases support configuration delivery and local flag evaluation only. They do not export evaluation metrics or exposure events. Java agentless delivery changes only the configuration source. Without a supported Datadog Agent or serverless telemetry path, Java also does not export these signals.</div>
49
+
<divclass="alert alert-warning">The initial Node.js agentless releases support configuration delivery and local flag evaluation only. They do not export evaluation metrics or exposure events. Java and Python agentless delivery change only the configuration source. Java and Python do not export these signals without a supported Datadog Agent or serverless telemetry path.</div>
49
50
50
51
Agentless delivery is available for the SDKs and versions listed. Other server SDKs use Agent Remote Configuration.
No Feature Flags enablement or source setting is required. See [Java Feature Flags][10] or [Node.js Feature Flags][9] for dependency versions and language-specific initialization. Initializing or accessing the provider starts CDN polling; tracer installation and initialization alone do not.
96
+
No Feature Flags enablement or source setting is required. See [Java Feature Flags][10], [Node.js Feature Flags][9], or [Python Feature Flags][11] for dependency versions and language-specific initialization. Initializing or accessing the provider starts CDN polling; tracer installation and initialization alone do not.
96
97
97
98
## Agent Remote Configuration
98
99
99
-
For Java and Node.js, set the source explicitly to retain Agent-managed delivery:
100
+
For Java, Node.js, and Python, set the source explicitly to retain Agent-managed delivery:
@@ -106,7 +107,7 @@ Remote Configuration is enabled by default in Agent 7.47.0 and later. If your Ag
106
107
107
108
See the [Remote Configuration documentation][1] for detailed setup instructions across deployment environments.
108
109
109
-
Existing Java and Node.js implementations with `DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true` remain on Remote Configuration during a migration window. The setting is deprecated. See [Migrate from the legacy provider setting][7] to remain on Remote Configuration explicitly or move to agentless delivery.
110
+
Existing Java, Node.js, and Python implementations with `DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true` remain on Remote Configuration during a migration window. The setting is deprecated. See [Migrate from the legacy provider setting][7] to remain on Remote Configuration explicitly or move to agentless delivery.
110
111
111
112
### Remote Configuration polling interval
112
113
@@ -134,9 +135,9 @@ DD_VERSION=<YOUR_APP_VERSION>
134
135
# See "Set Up Server-Side Flag Evaluation Metrics" documentation
135
136
{{< /code-block >}}
136
137
137
-
<divclass="alert alert-info">In the Java and Node.js versions listed above, <code>DD_FEATURE_FLAGS_ENABLED</code> defaults to <code>true</code>, so you do not need to set it. Setting it to <code>false</code> disables the provider, CDN polling, and the Feature Flags Remote Configuration subscription. Other server SDKs continue to use the activation settings documented on their language pages.</div>
138
+
<divclass="alert alert-info">In the Java, Node.js, and Python versions listed above, <code>DD_FEATURE_FLAGS_ENABLED</code> defaults to <code>true</code>, so you do not need to set it. Setting it to <code>false</code> disables the provider, CDN polling, and the Feature Flags Remote Configuration subscription. Other server SDKs continue to use the activation settings documented on their language pages.</div>
138
139
139
-
For SDKs and delivery modes that support it, see <ahref="/feature_flags/guide/server_flag_evaluation_metrics/">Set Up Server-Side Flag Evaluation Metrics</a> to enable the <code>feature_flag.evaluations</code> metric. The initial Node.js agentless releases do not export evaluation metrics or exposure events. Java requires a supported Datadog Agent or serverless telemetry path to export these signals. See <ahref="/feature_flags/concepts/flag_graphs/">Feature Flag Graphs</a> for more information on available graphing. See <ahref="/feature_flags/guide/apm_trace_enrichment/">Set Up APM Trace Enrichment for Feature Flags</a> to attach feature flag evaluation data to APM traces for filtering and experimentation.
140
+
For SDKs and delivery modes that support it, see <ahref="/feature_flags/guide/server_flag_evaluation_metrics/">Set Up Server-Side Flag Evaluation Metrics</a> to enable the <code>feature_flag.evaluations</code> metric. The initial Node.js agentless releases do not export evaluation metrics or exposure events. Java and Python require a supported Datadog Agent or serverless telemetry path to export these signals. See <ahref="/feature_flags/concepts/flag_graphs/">Feature Flag Graphs</a> for more information on available graphing. See <ahref="/feature_flags/guide/apm_trace_enrichment/">Set Up APM Trace Enrichment for Feature Flags</a> to attach feature flag evaluation data to APM traces for filtering and experimentation.
140
141
141
142
## Testing with in-memory providers
142
143
@@ -200,3 +201,4 @@ For percentage-based rollouts and deterministic bucketing, see [Traffic Splittin
0 commit comments