diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 5e09b89bb463..19db8872d667 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -195,12 +195,9 @@ Datadog.Trace.Debugger.slnf @DataDog/debugger-dotnet
/docs/Datadog.FeatureFlags.OpenFeature/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
/tracer/src/Datadog.FeatureFlags.OpenFeature/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
/tracer/src/Datadog.Trace/FeatureFlags/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
-/tracer/src/Datadog.Trace.Manual/FeatureFlags/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
-/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/OpenFeature/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
/tracer/test/Datadog.Trace.Tests/FeatureFlags/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/FeatureFlags/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
-/tracer/test/test-applications/integrations/Samples.FeatureFlags/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
/tracer/test/test-applications/integrations/Samples.OpenFeature/ @DataDog/feature-flagging-and-experimentation-sdk @DataDog/tracing-dotnet
# CI
diff --git a/Datadog.Trace.Samples.g.sln b/Datadog.Trace.Samples.g.sln
index 8dd6eb9e92ad..c45f780eca9a 100644
--- a/Datadog.Trace.Samples.g.sln
+++ b/Datadog.Trace.Samples.g.sln
@@ -453,8 +453,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Quartz", "tracer\te
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.AzureFunctions.V4Isolated.HostLogsDisabled", "tracer\test\test-applications\azure-functions\Samples.AzureFunctions.V4Isolated.HostLogsDisabled\Samples.AzureFunctions.V4Isolated.HostLogsDisabled.csproj", "{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.FeatureFlags", "tracer\test\test-applications\integrations\Samples.FeatureFlags\Samples.FeatureFlags.csproj", "{D5A8ABB9-CB23-974E-F338-5D9172D96CD8}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.OpenFeature", "tracer\test\test-applications\integrations\Samples.OpenFeature\Samples.OpenFeature.csproj", "{021D714E-1764-D76B-15B5-C9114FE934C2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.LifetimeManager.TerminationSignals", "tracer\test\test-applications\integrations\Samples.LifetimeManager.TerminationSignals\Samples.LifetimeManager.TerminationSignals.csproj", "{0E3E1069-80FF-99C9-D29F-936D96D5F516}"
@@ -1107,10 +1105,6 @@ Global
{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C}.Release|Any CPU.Build.0 = Release|Any CPU
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8}.Release|Any CPU.Build.0 = Release|Any CPU
{021D714E-1764-D76B-15B5-C9114FE934C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{021D714E-1764-D76B-15B5-C9114FE934C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{021D714E-1764-D76B-15B5-C9114FE934C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1305,7 +1299,6 @@ Global
{59A9EDCD-6892-4817-8957-54DE84BDCAFB} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{CF69BC17-1527-425A-9B02-8E223BC31DB8} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C} = {C4C1E313-C7C1-4490-AECE-0DD0062380A4}
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{021D714E-1764-D76B-15B5-C9114FE934C2} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{0E3E1069-80FF-99C9-D29F-936D96D5F516} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{08C6510D-42DC-C8B4-CC79-26349F2D6DBB} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
diff --git a/Datadog.Trace.sln b/Datadog.Trace.sln
index 8dd1047bbd81..5125ee1a69b6 100644
--- a/Datadog.Trace.sln
+++ b/Datadog.Trace.sln
@@ -639,8 +639,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Quartz", "tracer\te
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.AzureFunctions.V4Isolated.HostLogsDisabled", "tracer\test\test-applications\azure-functions\Samples.AzureFunctions.V4Isolated.HostLogsDisabled\Samples.AzureFunctions.V4Isolated.HostLogsDisabled.csproj", "{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.FeatureFlags", "tracer\test\test-applications\integrations\Samples.FeatureFlags\Samples.FeatureFlags.csproj", "{D5A8ABB9-CB23-974E-F338-5D9172D96CD8}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.OpenFeature", "tracer\test\test-applications\integrations\Samples.OpenFeature\Samples.OpenFeature.csproj", "{021D714E-1764-D76B-15B5-C9114FE934C2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Datadog.Trace.Tools.Analyzers.CodeFixes", "tracer\src\Datadog.Trace.Tools.Analyzers.CodeFixes\Datadog.Trace.Tools.Analyzers.CodeFixes.csproj", "{32521F0A-D52D-4DB1-86C4-3D72DEDA6E55}"
@@ -1573,10 +1571,6 @@ Global
{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C}.Release|Any CPU.Build.0 = Release|Any CPU
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8}.Release|Any CPU.Build.0 = Release|Any CPU
{021D714E-1764-D76B-15B5-C9114FE934C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{021D714E-1764-D76B-15B5-C9114FE934C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{021D714E-1764-D76B-15B5-C9114FE934C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1862,7 +1856,6 @@ Global
{59A9EDCD-6892-4817-8957-54DE84BDCAFB} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{CF69BC17-1527-425A-9B02-8E223BC31DB8} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{C770F9F8-0430-587D-EB7A-8BEC2FE9B61C} = {C4C1E313-C7C1-4490-AECE-0DD0062380A4}
- {D5A8ABB9-CB23-974E-F338-5D9172D96CD8} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{021D714E-1764-D76B-15B5-C9114FE934C2} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
{32521F0A-D52D-4DB1-86C4-3D72DEDA6E55} = {9E5F0022-0A50-40BF-AC6A-C3078585ECAB}
{64258238-DE63-4A0F-A618-DF51735BA22A} = {8CEC2042-F11C-49F5-A674-2355793B600A}
diff --git a/tracer/build/supported_calltargets.g.json b/tracer/build/supported_calltargets.g.json
index 138a50a9b193..b67684b87fea 100644
--- a/tracer/build/supported_calltargets.g.json
+++ b/tracer/build/supported_calltargets.g.json
@@ -6810,80 +6810,6 @@
"IsAdoNetIntegration": false,
"InstrumentationCategory": 1
},
- {
- "IntegrationName": "DatadogTraceManual",
- "AssemblyName": "Datadog.Trace.Manual",
- "TargetTypeName": "Datadog.Trace.FeatureFlags.FeatureFlagsSdk",
- "TargetMethodName": "Evaluate",
- "TargetReturnType": "Datadog.Trace.FeatureFlags.IEvaluation",
- "TargetParameterTypes": [
- "System.String",
- "Datadog.Trace.FeatureFlags.ValueType",
- "System.Object",
- "System.String",
- "System.Collections.Generic.IDictionary`2[System.String,System.Object]"
- ],
- "MinimumVersion": {
- "Item1": 3,
- "Item2": 31,
- "Item3": 0
- },
- "MaximumVersion": {
- "Item1": 3,
- "Item2": 65535,
- "Item3": 65535
- },
- "InstrumentationTypeName": "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkEvaluateIntegration",
- "IntegrationKind": 0,
- "IsAdoNetIntegration": false,
- "InstrumentationCategory": 1
- },
- {
- "IntegrationName": "DatadogTraceManual",
- "AssemblyName": "Datadog.Trace.Manual",
- "TargetTypeName": "Datadog.Trace.FeatureFlags.FeatureFlagsSdk",
- "TargetMethodName": "IsAvailable",
- "TargetReturnType": "System.Boolean",
- "TargetParameterTypes": [],
- "MinimumVersion": {
- "Item1": 3,
- "Item2": 31,
- "Item3": 0
- },
- "MaximumVersion": {
- "Item1": 3,
- "Item2": 65535,
- "Item3": 65535
- },
- "InstrumentationTypeName": "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkIsAvailableIntegration",
- "IntegrationKind": 0,
- "IsAdoNetIntegration": false,
- "InstrumentationCategory": 1
- },
- {
- "IntegrationName": "DatadogTraceManual",
- "AssemblyName": "Datadog.Trace.Manual",
- "TargetTypeName": "Datadog.Trace.FeatureFlags.FeatureFlagsSdk",
- "TargetMethodName": "RegisterOnNewConfigEventHandler",
- "TargetReturnType": "System.Void",
- "TargetParameterTypes": [
- "System.Action"
- ],
- "MinimumVersion": {
- "Item1": 3,
- "Item2": 31,
- "Item3": 0
- },
- "MaximumVersion": {
- "Item1": 3,
- "Item2": 65535,
- "Item3": 65535
- },
- "InstrumentationTypeName": "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration",
- "IntegrationKind": 0,
- "IsAdoNetIntegration": false,
- "InstrumentationCategory": 1
- },
{
"IntegrationName": "DatadogTraceManual",
"AssemblyName": "Datadog.Trace.Manual",
diff --git a/tracer/src/Datadog.Trace.Manual/Datadog.Trace.Manual.csproj b/tracer/src/Datadog.Trace.Manual/Datadog.Trace.Manual.csproj
index 3a424a0fd5c6..db50148270f1 100644
--- a/tracer/src/Datadog.Trace.Manual/Datadog.Trace.Manual.csproj
+++ b/tracer/src/Datadog.Trace.Manual/Datadog.Trace.Manual.csproj
@@ -29,9 +29,6 @@
-
-
-
diff --git a/tracer/src/Datadog.Trace.Manual/FeatureFlags/EvaluationContext.cs b/tracer/src/Datadog.Trace.Manual/FeatureFlags/EvaluationContext.cs
deleted file mode 100644
index c2b2ea1d8b64..000000000000
--- a/tracer/src/Datadog.Trace.Manual/FeatureFlags/EvaluationContext.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License.
-// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc.
-//
-
-using System.ComponentModel;
-
-namespace Datadog.Trace.FeatureFlags;
-
-/// Standard implementation of a EvaluationContext
-/// Targeting Key
-/// Context optional parameters
-[EditorBrowsable(EditorBrowsableState.Never)]
-[Browsable(false)]
-public sealed class EvaluationContext(string? key, IDictionary? values = null)
-{
- /// Gets the Context Targeting Key
- public string? TargetingKey { get; } = key;
-
- /// Gets the Context optional Values
- public IDictionary? Attributes { get; } = values;
-}
diff --git a/tracer/src/Datadog.Trace.Manual/FeatureFlags/FeatureFlagsSdk.cs b/tracer/src/Datadog.Trace.Manual/FeatureFlags/FeatureFlagsSdk.cs
deleted file mode 100644
index f6e880dcaa99..000000000000
--- a/tracer/src/Datadog.Trace.Manual/FeatureFlags/FeatureFlagsSdk.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License.
-// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc.
-//
-
-#nullable enable
-using System.ComponentModel;
-using System.Runtime.CompilerServices;
-using Datadog.Trace.SourceGenerators;
-
-namespace Datadog.Trace.FeatureFlags;
-
-///
-/// Functions to retrieve FeatureFlags from server
-///
-[EditorBrowsable(EditorBrowsableState.Never)]
-[Browsable(false)]
-public static class FeatureFlagsSdk
-{
- /// Gets a value indicating whether FeatureFlags framework is available or not
- /// True if FeatureFlagsSDK is instrumented
- [Instrumented]
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static bool IsAvailable() => false;
-
- /// Installs an event handler to be fired when a new config has been received
- /// Action to be called when the event is fired
- [Instrumented]
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static void RegisterOnNewConfigEventHandler(Action onNewConfig)
- {
- }
-
- ///
- /// Returns the evaluation of the requested flag key
- ///
- /// Returns the evaluation result
- /// The feature flag key to evaluate
- /// The desired result type
- /// The default value
- /// The evaluation context
- public static IEvaluation? Evaluate(string flagKey, ValueType targetType, object? defaultValue, EvaluationContext? context)
- => Evaluate(flagKey, targetType, defaultValue, context?.TargetingKey, context?.Attributes);
-
- [Instrumented]
- [MethodImpl(MethodImplOptions.NoInlining)]
- private static IEvaluation? Evaluate(string flagKey, ValueType targetType, object? defaultValue, string? targetingKey, IDictionary? attributes)
- {
- if (flagKey is null)
- {
- throw new ArgumentNullException(nameof(flagKey));
- }
-
- return null;
- }
-}
diff --git a/tracer/src/Datadog.Trace.Manual/FeatureFlags/IEvaluation.Manual.cs b/tracer/src/Datadog.Trace.Manual/FeatureFlags/IEvaluation.Manual.cs
deleted file mode 100644
index daf3ed42d3b0..000000000000
--- a/tracer/src/Datadog.Trace.Manual/FeatureFlags/IEvaluation.Manual.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License.
-// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc.
-//
-
-using Datadog.Trace.DuckTyping;
-
-namespace Datadog.Trace.FeatureFlags;
-
-/// A Evaluate result.
-[DuckType("Datadog.Trace.FeatureFlags.Evaluation", "Datadog.Trace")]
-[DuckAsClass]
-public partial interface IEvaluation
-{
-}
diff --git a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkEvaluateIntegration.cs b/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkEvaluateIntegration.cs
deleted file mode 100644
index ef658f6d5278..000000000000
--- a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkEvaluateIntegration.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License.
-// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc.
-//
-#nullable enable
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using Datadog.Trace.ClrProfiler.CallTarget;
-using Datadog.Trace.Configuration;
-using Datadog.Trace.DuckTyping;
-using Datadog.Trace.FeatureFlags;
-
-namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual;
-
-///
-/// Datadog.Trace.FeatureFlags.IEvaluation Datadog.Trace.FeatureFlags.FeatureFlagsSdk::Evaluate(System.String,System.Type,System.Object,Datadog.Trace.FeatureFlags.IEvaluationContext) calltarget instrumentation
-///
-[InstrumentMethod(
- AssemblyName = "Datadog.Trace.Manual",
- TypeName = "Datadog.Trace.FeatureFlags.FeatureFlagsSdk",
- MethodName = "Evaluate",
- ReturnTypeName = "Datadog.Trace.FeatureFlags.IEvaluation",
- ParameterTypeNames = [ClrNames.String, "Datadog.Trace.FeatureFlags.ValueType", ClrNames.Object, ClrNames.String, "System.Collections.Generic.IDictionary`2[System.String,System.Object]"],
- MinimumVersion = "3.31.0",
- MaximumVersion = "3.*.*",
- IntegrationName = nameof(IntegrationId.DatadogTraceManual))]
-[Browsable(false)]
-[EditorBrowsable(EditorBrowsableState.Never)]
-public sealed class FeatureFlagsSdkEvaluateIntegration
-{
- internal static CallTargetState OnMethodBegin(ref string flagKey, FeatureFlags.ValueType targetType, ref object? defaultValue, ref string? targetingKey, ref IDictionary? attributes)
- {
- return new CallTargetState(null, new State(flagKey, targetType, defaultValue, targetingKey, attributes));
- }
-
- internal static CallTargetReturn OnMethodEnd(TReturn? returnValue, Exception? exception, in CallTargetState state)
- {
- if (exception is not null)
- {
- // invalid call to the API e.g. non-null args were null. Just let it bubble up.
- return new CallTargetReturn(returnValue);
- }
-
- var tracer = Datadog.Trace.Tracer.Instance;
- if (tracer.TracerManager.FeatureFlags is not { } flags)
- {
- // Feature flags disabled: don't touch async-local scope state for a no-op.
- return new CallTargetReturn(returnValue);
- }
-
- // Manual API users may not call InitializeAsync before Evaluate. Activate delivery as a
- // fallback so the agentless poller starts on first evaluation, not never.
- flags.Activate();
-
- var parameters = (State)state.State!;
- var res = flags.Evaluate(parameters.FlagKey, parameters.TargetType, parameters.DefaultValue, parameters.TargetingKey ?? string.Empty, parameters.Attributes);
- var traceContext = tracer.InternalActiveScope?.Span?.Context.TraceContext;
-
- // Skip creating per-trace state for evaluations that would record nothing.
- if (traceContext is not null && SpanEnrichmentState.IsRecordable(res))
- {
- traceContext.GetOrCreateFeatureFlagEnrichment()?.AccumulateEvaluation(res, parameters.TargetingKey);
- }
-
- return new CallTargetReturn(res.DuckCast());
- }
-
- private sealed record State(string FlagKey, FeatureFlags.ValueType TargetType, object? DefaultValue, string? TargetingKey, IDictionary? Attributes)
- {
- }
-}
diff --git a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkIsAvailableIntegration.cs b/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkIsAvailableIntegration.cs
deleted file mode 100644
index 244d9fedff32..000000000000
--- a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkIsAvailableIntegration.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License.
-// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc.
-//
-#nullable enable
-
-using System;
-using System.ComponentModel;
-using Datadog.Trace.ClrProfiler.CallTarget;
-using Datadog.Trace.Configuration;
-
-namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual;
-
-///
-/// System.Boolean Datadog.Trace.FeatureFlags.FeatureFlagsSdk::IsAvailable() calltarget instrumentation
-///
-[InstrumentMethod(
- AssemblyName = "Datadog.Trace.Manual",
- TypeName = "Datadog.Trace.FeatureFlags.FeatureFlagsSdk",
- MethodName = "IsAvailable",
- ReturnTypeName = ClrNames.Bool,
- ParameterTypeNames = [],
- MinimumVersion = "3.31.0",
- MaximumVersion = "3.*.*",
- IntegrationName = nameof(IntegrationId.DatadogTraceManual))]
-[Browsable(false)]
-[EditorBrowsable(EditorBrowsableState.Never)]
-public sealed class FeatureFlagsSdkIsAvailableIntegration
-{
- internal static CallTargetReturn OnMethodEnd(bool returnValue, Exception? exception, in CallTargetState state)
- {
- return new CallTargetReturn(true);
- }
-}
diff --git a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration.cs b/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration.cs
deleted file mode 100644
index bc042995a343..000000000000
--- a/tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/ManualInstrumentation/FeatureFlags/FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License.
-// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc.
-//
-#nullable enable
-
-using System;
-using System.ComponentModel;
-using Datadog.Trace.ClrProfiler.CallTarget;
-using Datadog.Trace.Configuration;
-
-namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual;
-
-///
-/// System.Void Datadog.Trace.FeatureFlags.FeatureFlagsSdk::RegisterOnNewConfigEventHandler(System.Action) calltarget instrumentation
-///
-[InstrumentMethod(
- AssemblyName = "Datadog.Trace.Manual",
- TypeName = "Datadog.Trace.FeatureFlags.FeatureFlagsSdk",
- MethodName = "RegisterOnNewConfigEventHandler",
- ReturnTypeName = ClrNames.Void,
- ParameterTypeNames = ["System.Action"],
- MinimumVersion = "3.31.0",
- MaximumVersion = "3.*.*",
- IntegrationName = nameof(IntegrationId.DatadogTraceManual))]
-[Browsable(false)]
-[EditorBrowsable(EditorBrowsableState.Never)]
-public sealed class FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration
-{
- internal static CallTargetState OnMethodBegin(ref Action? onNewConfig)
- {
- TracerManager.Instance.FeatureFlags?.RegisterOnNewConfigEventHandler(onNewConfig);
- return CallTargetState.GetDefault();
- }
-}
diff --git a/tracer/src/Datadog.Trace/Generated/net461/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs b/tracer/src/Datadog.Trace/Generated/net461/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
index 3de279a559ad..9f8e7630b90c 100644
--- a/tracer/src/Datadog.Trace/Generated/net461/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
+++ b/tracer/src/Datadog.Trace/Generated/net461/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
@@ -312,9 +312,6 @@ internal static bool IsInstrumentedAssembly(string assemblyName)
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Configuration.TracerSettings.DiagnosticSourceEnabledSetIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.DataStreams.DataStreamsTrackTransactionIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Extensions.SpanExtensionsSetTraceSamplingPriorityIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkEvaluateIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkIsAvailableIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorConstructorIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIncludingDsmIntegration"
diff --git a/tracer/src/Datadog.Trace/Generated/net6.0/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs b/tracer/src/Datadog.Trace/Generated/net6.0/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
index 018bd3e0dfb1..3642bb482210 100644
--- a/tracer/src/Datadog.Trace/Generated/net6.0/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
+++ b/tracer/src/Datadog.Trace/Generated/net6.0/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
@@ -328,9 +328,6 @@ internal static bool IsInstrumentedAssembly(string assemblyName)
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Configuration.TracerSettings.DiagnosticSourceEnabledSetIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.DataStreams.DataStreamsTrackTransactionIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Extensions.SpanExtensionsSetTraceSamplingPriorityIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkEvaluateIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkIsAvailableIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorConstructorIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIncludingDsmIntegration"
diff --git a/tracer/src/Datadog.Trace/Generated/netcoreapp3.1/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs b/tracer/src/Datadog.Trace/Generated/netcoreapp3.1/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
index 6d2af46d8c58..0ff4847ec233 100644
--- a/tracer/src/Datadog.Trace/Generated/netcoreapp3.1/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
+++ b/tracer/src/Datadog.Trace/Generated/netcoreapp3.1/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
@@ -323,9 +323,6 @@ internal static bool IsInstrumentedAssembly(string assemblyName)
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Configuration.TracerSettings.DiagnosticSourceEnabledSetIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.DataStreams.DataStreamsTrackTransactionIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Extensions.SpanExtensionsSetTraceSamplingPriorityIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkEvaluateIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkIsAvailableIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorConstructorIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIncludingDsmIntegration"
diff --git a/tracer/src/Datadog.Trace/Generated/netstandard2.0/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs b/tracer/src/Datadog.Trace/Generated/netstandard2.0/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
index 6d2af46d8c58..0ff4847ec233 100644
--- a/tracer/src/Datadog.Trace/Generated/netstandard2.0/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
+++ b/tracer/src/Datadog.Trace/Generated/netstandard2.0/Datadog.Trace.SourceGenerators/InstrumentationDefinitionsGenerator/InstrumentationDefinitions.g.cs
@@ -323,9 +323,6 @@ internal static bool IsInstrumentedAssembly(string assemblyName)
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Configuration.TracerSettings.DiagnosticSourceEnabledSetIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.DataStreams.DataStreamsTrackTransactionIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Extensions.SpanExtensionsSetTraceSamplingPriorityIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkEvaluateIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkIsAvailableIntegration"
- or "Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorConstructorIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIntegration"
or "Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIncludingDsmIntegration"
diff --git a/tracer/src/Datadog.Tracer.Native/Generated/generated_calltargets.g.cpp b/tracer/src/Datadog.Tracer.Native/Generated/generated_calltargets.g.cpp
index fab3f2ca21d3..007a7d5d2e5a 100644
--- a/tracer/src/Datadog.Tracer.Native/Generated/generated_calltargets.g.cpp
+++ b/tracer/src/Datadog.Tracer.Native/Generated/generated_calltargets.g.cpp
@@ -729,9 +729,6 @@ std::vector callTargets =
{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.Configuration.TracerSettings"),(WCHAR*)WStr("set_DiagnosticSourceEnabled"),sig365,2,3,0,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Configuration.TracerSettings.DiagnosticSourceEnabledSetIntegration"),CallTargetKind::Default,1,15},
{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.DataStreams"),(WCHAR*)WStr("TrackTransactionInternal"),sig408,3,3,43,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.DataStreams.DataStreamsTrackTransactionIntegration"),CallTargetKind::Default,1,15},
{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.ExtensionMethods.SpanExtensions"),(WCHAR*)WStr("SetTraceSamplingPriority"),sig343,3,3,0,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Extensions.SpanExtensionsSetTraceSamplingPriorityIntegration"),CallTargetKind::Default,1,15},
-{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.FeatureFlags.FeatureFlagsSdk"),(WCHAR*)WStr("Evaluate"),sig061,6,3,31,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkEvaluateIntegration"),CallTargetKind::Default,1,15},
-{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.FeatureFlags.FeatureFlagsSdk"),(WCHAR*)WStr("IsAvailable"),sig131,1,3,31,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkIsAvailableIntegration"),CallTargetKind::Default,1,15},
-{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.FeatureFlags.FeatureFlagsSdk"),(WCHAR*)WStr("RegisterOnNewConfigEventHandler"),sig363,2,3,31,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.Datadog_Trace_Manual.FeatureFlagsSdkRegisterOnNewConfigEventHandlerIntegration"),CallTargetKind::Default,1,15},
{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.SpanContextExtractor"),(WCHAR*)WStr(".ctor"),sig332,1,3,0,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorConstructorIntegration"),CallTargetKind::Default,1,15},
{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.SpanContextExtractor"),(WCHAR*)WStr("Extract"),sig068,3,3,0,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIntegration"),CallTargetKind::Default,1,15},
{(WCHAR*)WStr("Datadog.Trace.Manual"),(WCHAR*)WStr("Datadog.Trace.SpanContextExtractor"),(WCHAR*)WStr("ExtractIncludingDsm"),sig069,5,3,0,0,3,65535,65535,assemblyName,(WCHAR*)WStr("Datadog.Trace.ClrProfiler.AutoInstrumentation.ManualInstrumentation.Propagators.SpanContextExtractorExtractIncludingDsmIntegration"),CallTargetKind::Default,1,15},
diff --git a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/FeatureFlags/FeatureFlagsTests.cs b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/FeatureFlags/FeatureFlagsTests.cs
index 2a0e935f8a09..f9b92e1c8bb9 100644
--- a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/FeatureFlags/FeatureFlagsTests.cs
+++ b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/FeatureFlags/FeatureFlagsTests.cs
@@ -15,8 +15,6 @@
using Xunit;
using Xunit.Abstractions;
-#pragma warning disable SA1402 // File may only contain a single type
-
namespace Datadog.Trace.ClrProfiler.IntegrationTests.FeatureFlags;
#if NETFRAMEWORK
@@ -24,31 +22,12 @@ namespace Datadog.Trace.ClrProfiler.IntegrationTests.FeatureFlags;
// Include these tests in the ManualInstrumentation batch
[Collection(nameof(ManualInstrumentationTests))]
#endif
-public class FeatureFlagsTests : FeatureFlagsTestsBase
+public class FeatureFlagsTests : TestHelper
{
public FeatureFlagsTests(ITestOutputHelper output)
- : base("FeatureFlags", output)
- {
- }
-}
-
-#if NETFRAMEWORK
-[Collection(nameof(ManualInstrumentationTests))]
-#endif
-public class OpenFeatureFeatureFlagsTests : FeatureFlagsTestsBase
-{
- public OpenFeatureFeatureFlagsTests(ITestOutputHelper output)
: base("OpenFeature", output)
{
}
-}
-
-public abstract class FeatureFlagsTestsBase : TestHelper
-{
- public FeatureFlagsTestsBase(string sampleName, ITestOutputHelper output)
- : base(sampleName, output)
- {
- }
[SkippableFact]
[Trait("RunOnWindows", "True")]
@@ -82,6 +61,7 @@ public async Task FfeEnabled()
Assert.NotNull(output);
Assert.Contains("", output);
+ Assert.Contains("", output);
Assert.Contains("Eval (nonexistent) : ", output);
Assert.Contains("Eval (simple-string) : RunTest(MockTracerAgent agent, bool enabled = true, b
return process.StandardOutput.ToString();
}
}
-
-#pragma warning restore SA1402 // File may only contain a single type
diff --git a/tracer/test/test-applications/integrations/Samples.FeatureFlags/Evaluator.cs b/tracer/test/test-applications/integrations/Samples.FeatureFlags/Evaluator.cs
deleted file mode 100644
index c9bd864e6201..000000000000
--- a/tracer/test/test-applications/integrations/Samples.FeatureFlags/Evaluator.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System;
-using Datadog.Trace.FeatureFlags;
-
-namespace Samples.FeatureFlags;
-class Evaluator
-{
- static Action? _onNewConfig = null;
-
- public static bool Init()
- {
- Console.WriteLine("FeatureFlags SDK Sample");
- if (FeatureFlagsSdk.IsAvailable())
- {
- Datadog.Trace.FeatureFlags.FeatureFlagsSdk.RegisterOnNewConfigEventHandler(() => _onNewConfig?.Invoke());
- return true;
- }
-
- return false;
- }
-
- public static void RegisterOnNewConfigEventHandler(Action onNewConfig)
- {
- _onNewConfig = onNewConfig;
- }
-
- public static (string? Value, string? Error)? Evaluate(string key)
- {
- var evaluation = Datadog.Trace.FeatureFlags.FeatureFlagsSdk.Evaluate(key, Datadog.Trace.FeatureFlags.ValueType.String, "Not found", new EvaluationContext(key));
-
- if (evaluation is null)
- {
- Console.WriteLine($"Eval ({key}) : (FeatureFlagsSdk is disabled)");
- return null;
- }
-
- if (evaluation.Error is not null)
- {
- Console.WriteLine($"Eval ({key}) : ");
- }
- else
- {
- Console.WriteLine($"Eval ({key}) : "}>");
- }
-
- return (evaluation.Value as string, evaluation.Error);
- }
-
- public static void ExtraChecks()
- {
- }
-}
diff --git a/tracer/test/test-applications/integrations/Samples.FeatureFlags/Samples.FeatureFlags.csproj b/tracer/test/test-applications/integrations/Samples.FeatureFlags/Samples.FeatureFlags.csproj
deleted file mode 100644
index 2c1d924f1d89..000000000000
--- a/tracer/test/test-applications/integrations/Samples.FeatureFlags/Samples.FeatureFlags.csproj
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- false
- false
- enable
-
-
-
-
-
-
-
-
-
-
diff --git a/tracer/test/test-applications/integrations/Samples.OpenFeature/Evaluator.cs b/tracer/test/test-applications/integrations/Samples.OpenFeature/Evaluator.cs
index 9a4b7bd59466..4ae361eb4ff8 100644
--- a/tracer/test/test-applications/integrations/Samples.OpenFeature/Evaluator.cs
+++ b/tracer/test/test-applications/integrations/Samples.OpenFeature/Evaluator.cs
@@ -1,5 +1,6 @@
using System;
using System.Diagnostics;
+using System.Threading.Tasks;
using OpenFeature.Model;
namespace Samples.FeatureFlags;
@@ -9,20 +10,20 @@ class Evaluator
static global::OpenFeature.FeatureClient client = null!; // assigned by Init()
static Action? _onNewConfig = null;
- public static bool Init()
+ public static async Task Init()
{
Console.WriteLine("OpenFeature FeatureFlags SDK Sample");
- if (Datadog.FeatureFlags.OpenFeature.DatadogProvider.IsAvailable)
+ if (!Datadog.FeatureFlags.OpenFeature.DatadogProvider.IsAvailable)
{
-
- global::OpenFeature.Api.Instance.SetProviderAsync(new Datadog.FeatureFlags.OpenFeature.DatadogProvider()).Wait();
- client = global::OpenFeature.Api.Instance.GetClient();
- Datadog.FeatureFlags.OpenFeature.DatadogProvider.RegisterOnNewConfigEventHandler(() => _onNewConfig?.Invoke());
- return true;
+ return false;
}
- return false;
-
+ // SetProviderAsync awaits the provider's InitializeAsync, which starts agentless delivery
+ // and waits for the first configuration.
+ await global::OpenFeature.Api.Instance.SetProviderAsync(new Datadog.FeatureFlags.OpenFeature.DatadogProvider());
+ client = global::OpenFeature.Api.Instance.GetClient();
+ Datadog.FeatureFlags.OpenFeature.DatadogProvider.RegisterOnNewConfigEventHandler(() => _onNewConfig?.Invoke());
+ return true;
}
public static void RegisterOnNewConfigEventHandler(Action onNewConfig)
diff --git a/tracer/test/test-applications/integrations/Samples.FeatureFlags/Program.cs b/tracer/test/test-applications/integrations/Samples.OpenFeature/Program.cs
similarity index 90%
rename from tracer/test/test-applications/integrations/Samples.FeatureFlags/Program.cs
rename to tracer/test/test-applications/integrations/Samples.OpenFeature/Program.cs
index 156c9da29e7b..7408d1eb7c0d 100644
--- a/tracer/test/test-applications/integrations/Samples.FeatureFlags/Program.cs
+++ b/tracer/test/test-applications/integrations/Samples.OpenFeature/Program.cs
@@ -19,7 +19,7 @@ private async static Task Main(string[] args)
int configUpdates = 0;
Evaluator.RegisterOnNewConfigEventHandler(() => Interlocked.Increment(ref configUpdates));
- if (!Evaluator.Init())
+ if (!await Evaluator.Init())
{
Console.WriteLine($"");
return;
@@ -27,6 +27,11 @@ private async static Task Main(string[] args)
Console.WriteLine($"");
+ // Init() has awaited InitializeAsync, so a known flag resolves now. If the CallTarget stops
+ // substituting the real task, this prints NOT_READY.
+ var probe = Evaluator.Evaluate("simple-string");
+ Console.WriteLine($"");
+
var ev = Evaluator.Evaluate("nonexistent");
if (ev == null || ev.Value.Error is "FeatureFlagsSdk is disabled")
{
diff --git a/tracer/test/test-applications/integrations/Samples.OpenFeature/Samples.OpenFeature.csproj b/tracer/test/test-applications/integrations/Samples.OpenFeature/Samples.OpenFeature.csproj
index c5facbd97664..6fa7f23ba66a 100644
--- a/tracer/test/test-applications/integrations/Samples.OpenFeature/Samples.OpenFeature.csproj
+++ b/tracer/test/test-applications/integrations/Samples.OpenFeature/Samples.OpenFeature.csproj
@@ -8,10 +8,6 @@
2.3.0
-
-
-
-