Feature Usage

Feature usage in Controllers

Stats are collected automatically when a feature is evaluated, but using is different than being available. To mark a controller or controller method to count as active use of a feature (for usage reporting) just add the FeatureUsage attribute

[FeatureGate(FeatureFlags.Users)]
[FeatureUsage(FeatureFlags.Users)]
[Route("users")]
[Controller]
public class UsersController : Controller
{
    ...
}

The FeatureUsage attribute needs to be declared after the FeatureGate attribute, otherwise, usage will be counted even if the action isn't allowed by the FeatureGate flag, resulting in incorrect reporting

Feature usage Ad-Hoc

Feature usage can also be reported manually through the IFeatureUsageStatsProvider interface

public class AccountController : Controller
{
    private readonly IFeatureUsageStatsProvider _usageService;

    public AccountController(IFeatureUsageStatsProvider usageService)
    {
        _usageService = usageService;
    }

    public IActionResult SignIn()
    {
        _usageService.RecordUsageAsync("SignIn");
            
        return View();
    }
}

Last updated