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

No one assigned

    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