다음을 통해 공유


ASP.NET Core 애플리케이션에서 기능 플래그에 대한 원격 분석 사용

이 자습서에서는 ASP.NET Core 애플리케이션에서 원격 분석을 사용하여 기능 플래그 평가 및 사용자 지정 이벤트를 추적합니다. 원격 분석을 사용하면 기능 관리 전략에 대해 정보에 입각한 결정을 내릴 수 있습니다. 기능 플래그에 대한 원격 분석 사용 설정 개요에서 만들어진 원격 분석을 사용하는 기능 플래그를 활용합니다. 계속하기 전에 구성 저장소에 Greeting이라는 기능 플래그를 만들고 원격 분석을 사용하도록 설정되어 있는지 확인하세요. 이 자습서는 ASP.NET Core 애플리케이션에서 변형 기능 플래그를 사용하기 위한 자습서를 기반으로 합니다.

필수 조건

ASP.NET Core 애플리케이션에 원격 분석 추가

  1. 최신 버전의 Application Insights 패키지를 추가합니다.

    dotnet add package Microsoft.ApplicationInsights.AspNetCore
    dotnet add package Microsoft.FeatureManagement.Telemetry.ApplicationInsights
    
  2. 컨테이너에 Application Insights 원격 분석 서비스를 추가합니다. Azure App Configuration을 추가하는 줄 다음에 다음 코드를 추가합니다.

    // Add Application Insights telemetry
    builder.Services.AddApplicationInsightsTelemetry(options =>
    {
        options.ConnectionString = builder.Configuration.GetConnectionString("ApplicationInsights");
    });
    
  3. 기능 관리 서비스를 업데이트하여 텔레메트리 게시를 활성화합니다. 호출을 포함하도록 기존 기능 관리 구성을 수정합니다 AddApplicationInsightsTelemetry() .

    // Add Azure App Configuration and feature management services to the container.
    builder.Services.AddAzureAppConfiguration()
        .AddFeatureManagement()
        .WithTargeting()
        .AddApplicationInsightsTelemetry();
    
  4. 대상 지정 미들웨어를 추가하여 나가는 이벤트를 대상 ID와 연결합니다. 줄 app.UseAzureAppConfiguration();다음에 다음 코드를 추가합니다.

    // Use targeting middleware to associate events with the targeting ID
    app.UseMiddleware<TargetingHttpContextMiddleware>();
    

사용자 지정 이벤트 추적

이제 사용자가 인용문을 좋아할 때를 추적하는 사용자 지정 이벤트를 설정합니다. 같은 작업을 처리하고 Application Insights를 사용하여 추적하는 백 엔드 엔드포인트를 만듭니다.

  1. Index.cshtml.cs Application Insights에 대한 using 문을 추가합니다.

    using Microsoft.ApplicationInsights;
    
  2. IndexModel을 조정하여 TelemetryClient을 얻습니다.

    public class IndexModel(
            TelemetryClient telemetry,
            ILogger<IndexModel> logger,
            IVariantFeatureManagerSnapshot featureManager
        ) : PageModel
    {
        private readonly TelemetryClient _telemetry = telemetry;
    
  3. 또한 엔드포인트를 사용할 때 "좋아요"라는 이벤트를 추적하는 OnPostLike() 함수를 추가합니다.

    public IActionResult OnPostLike()
    {
        _telemetry.TrackEvent("Liked");
        return new JsonResult(new { success = true });
    }
    
  4. Index.cshtml에서 스크립트 태그 앞에 위조 방지 토큰을 추가합니다.

    <form method="post" style="display:none;">
        @Html.AntiForgeryToken()
    </form>
    
    <script>
        ...
    
  5. 다음 콘텐츠를 사용하여 heartClicked 함수를 조정합니다.

    async function heartClicked(button) {
        const response = await fetch(`?handler=Like`, { method: "POST" });
        if (response.ok) {
            const data = await response.json();
            if (data.success) {
                var icon = button.querySelector('i');
                icon.classList.toggle('far');
                icon.classList.toggle('fas');
            }
        }
    }
    

    메서드는 OnPostLike 같은 동작을 처리합니다. 사용자가 하트 단추를 클릭할 때 사용자 지정 "좋아요" 이벤트를 추적하는 데 사용됩니다 TelemetryClient .

앱 빌드 및 실행

  1. Application Insights를 사용하려면 Application Insights 리소스에 연결하기 위해 연결 문자열이 필요합니다. ConnectionStrings:ApplicationInsights 사용자 암호로 설정합니다.

    dotnet user-secrets set ConnectionStrings:ApplicationInsights "<your-Application-Insights-Connection-String>"
    
  2. 환경 변수를 설정한 후 터미널을 다시 시작하고 애플리케이션을 다시 빌드하고 실행합니다.

    dotnet build
    dotnet run
    

원격 분석 수집

애플리케이션을 배포하여 사용자로부터 원격 분석 수집을 시작합니다. 기능을 테스트하려면 많은 테스트 사용자를 만들어 사용자 활동을 시뮬레이션할 수 있습니다. 각 사용자는 다양한 인사말 메시지 중 하나를 체험하게 되며, 하트 버튼을 클릭하여 문구를 좋아요 할 수 있습니다. 사용자 기반이 증가함에 따라 Azure App Configuration에서 수집되는 증가하는 원격 분석 데이터의 볼륨을 모니터링할 수 있습니다. 또한 데이터로 드릴다운하여 기능 플래그의 각 변형이 사용자 동작에 미치는 영향을 분석할 수 있습니다.

추가 리소스