Skip to content

feat(tracing): add feature flag integration and tracking #13

@CalvinAllen

Description

@CalvinAllen

Summary

Add support for tracking feature flag usage and integrating with feature flag systems. Enables A/B testing analysis and understanding which features are being used.

Use Cases

  • Track which features are enabled for users
  • Correlate feature flags with errors/performance
  • A/B testing analysis in observability tools
  • Understand feature adoption

Proposed API

// Register feature flags (typically at startup)
VsixTelemetry.RegisterFeatureFlag("dark-mode", isDarkModeEnabled);
VsixTelemetry.RegisterFeatureFlag("new-editor", () => settings.UseNewEditor);

// Track feature flag evaluation
var isEnabled = VsixTelemetry.EvaluateFeature("new-editor");
// Automatically records: feature flag name, value, and adds to current span

// Bulk registration
VsixTelemetry.RegisterFeatureFlags(new Dictionary<string, bool>
{
    ["feature-a"] = true,
    ["feature-b"] = false,
});

// Integration with feature flag providers
VsixTelemetry.SetFeatureFlagProvider(new LaunchDarklyProvider(client));

Telemetry Emitted

Spans

  • feature.flag.name attribute on current span
  • feature.flag.value attribute on current span

Metrics

  • vs.extension.feature.evaluations (counter by flag name and value)

Resource Attributes

  • All registered flags added as resource attributes for correlation

Benefits

  • Correlate errors with specific feature flag combinations
  • Understand feature usage patterns
  • Debug issues specific to certain configurations

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions