Skip to content
Merged
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
2787cbf
docs(change-tracking|feature-flags): add enrichment suggestions
guceda Dec 10, 2025
6a16622
fix: use sentence-style capitalization
guceda Dec 11, 2025
0649bc7
fix: remove first-person pronoun
guceda Dec 11, 2025
37d483d
fix: apply suggestion
guceda Dec 12, 2025
47b3ebd
fix: apply suggestion
guceda Dec 12, 2025
dcef801
Update docs
ahmet-datadog Dec 15, 2025
f421613
typo
ahmet-datadog Dec 15, 2025
7e4d79b
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
1f6f079
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
a6a25e5
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
3179ca0
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
22b403a
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
2611f53
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
57c4461
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
faf756c
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
bc7b679
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
5f2c9ab
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
90db261
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
40cde86
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
e01bb3c
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
a97766d
Update content/en/change_tracking/feature_flags.md
guceda Dec 16, 2025
9694905
Update content/en/change_tracking/feature_flags.md
iadjivon Dec 16, 2025
f726f0b
Update content/en/change_tracking/feature_flags.md
iadjivon Dec 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 38 additions & 2 deletions content/en/change_tracking/feature_flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@

Send feature flag events from any provider using the [Events API][3]. Create a `change` category event and include a service tag to link the event to your service.

#### Recommended tags

When sending custom feature flag change events, include the following fields to enable accurate filtering and cross-product correlation within Datadog:

- **impacted_resources** (with type `service`): Add the relevant service name to the `impacted_resources` array to associate the feature flag change with the affected service.
- **env tag**: Specify the environment where the change occurred (for example, production, staging, or development).

If these tags cannot be added at event creation time, see the next section for guidance on automatic enrichment.

Example request:

```json
Expand Down Expand Up @@ -101,9 +110,12 @@

## Automatically detect affected services

In addition to tracking when a feature flag's configuration changes using the LaunchDarkly integration or the Events API, you can also automatically identify every service that evaluates a flag. This auto-enrichment provides deeper context by using APM traces to show the real-time impact of a flag, which is especially useful when a single flag is used by multiple services.
In addition to tracking feature flag configuration changes through the LaunchDarkly integration or the Events API, Datadog can automatically detect which services evaluate a flag by using APM traces or metrics. This provides real-time visibility into flag usage across your system, especially when the same flag is evaluated by multiple services.

Check notice on line 113 in content/en/change_tracking/feature_flags.md

View workflow job for this annotation

GitHub Actions / vale

Datadog.sentencelength

Suggestion: Try to keep your sentence length to 25 words or fewer.

### Setup
### Trace-based enrichment
Trace-based enrichment uses APM traces to automatically associate feature flag changes with the relevant Datadog services. The following section details how to implement it in your codebase.

#### Setup

To automatically detect services using a feature flag, instrument your feature flag evaluation code with the APM tracing library. This allows Datadog to automatically detect all services that evaluate a specific flag, even if they weren't originally tagged.

Expand All @@ -122,6 +134,30 @@
span.set_tag("experiment_value", flag_value) # adds the evaluated flag value as a span tag
```

### Metrics-based enrichment

Metric-based enrichment uses Datadog metrics to enrich your feature flag changes with service context. The following section explains how to implement it in your codebase.

#### Setup

Send the `dd.dynamic_config.is_experiment_enabled` metric with your experiment status.

```python
from datadog import initialize, statsd

initialize(statsd_host='localhost', statsd_port=8125)

# Any metric type is supported
statsd.gauge(
'dd.dynamic_config.is_experiment_enabled',
1, # 1 if enabled, 0 if disabled
tags=[
'experiment.id:fallback_payments_test',
'service:payments_api'
]
)
```

## Remediate feature flag changes with Workflow Automation

When you identify that a feature flag change caused an issue, you can immediately toggle its state without leaving Datadog. This feature uses [Workflow Automation][2] to toggle LaunchDarkly flags directly from Change Tracking timelines.
Expand Down
Loading