이 자습서에서는 ASP.NET Core 애플리케이션에서 원격 분석을 사용하여 기능 플래그 평가 및 사용자 지정 이벤트를 추적합니다. 원격 분석을 사용하면 기능 관리 전략에 대해 정보에 입각한 결정을 내릴 수 있습니다. 기능 플래그에 대한 원격 분석 사용 설정 개요에서 만들어진 원격 분석을 사용하는 기능 플래그를 활용합니다. 계속하기 전에 구성 저장소에 Greeting이라는 기능 플래그를 만들고 원격 분석을 사용하도록 설정되어 있는지 확인하세요. 이 자습서는 ASP.NET Core 애플리케이션에서 변형 기능 플래그를 사용하기 위한 자습서를 기반으로 합니다.
필수 조건
- 기능 플래그에 대한 원격 분석 사용에서 원격 분석이 사용하도록 설정된 변형 기능 플래그.
- ASP.NET Core 애플리케이션에서 변형 기능 플래그를 사용하는 애플리케이션입니다.
ASP.NET Core 애플리케이션에 원격 분석 추가
최신 버전의 Application Insights 패키지를 추가합니다.
dotnet add package Microsoft.ApplicationInsights.AspNetCore dotnet add package Microsoft.FeatureManagement.Telemetry.ApplicationInsights컨테이너에 Application Insights 원격 분석 서비스를 추가합니다. Azure App Configuration을 추가하는 줄 다음에 다음 코드를 추가합니다.
// Add Application Insights telemetry builder.Services.AddApplicationInsightsTelemetry(options => { options.ConnectionString = builder.Configuration.GetConnectionString("ApplicationInsights"); });기능 관리 서비스를 업데이트하여 텔레메트리 게시를 활성화합니다. 호출을 포함하도록 기존 기능 관리 구성을 수정합니다
AddApplicationInsightsTelemetry().// Add Azure App Configuration and feature management services to the container. builder.Services.AddAzureAppConfiguration() .AddFeatureManagement() .WithTargeting() .AddApplicationInsightsTelemetry();대상 지정 미들웨어를 추가하여 나가는 이벤트를 대상 ID와 연결합니다. 줄
app.UseAzureAppConfiguration();다음에 다음 코드를 추가합니다.// Use targeting middleware to associate events with the targeting ID app.UseMiddleware<TargetingHttpContextMiddleware>();
사용자 지정 이벤트 추적
이제 사용자가 인용문을 좋아할 때를 추적하는 사용자 지정 이벤트를 설정합니다. 같은 작업을 처리하고 Application Insights를 사용하여 추적하는 백 엔드 엔드포인트를 만듭니다.
Index.cshtml.cs Application Insights에 대한 using 문을 추가합니다.
using Microsoft.ApplicationInsights;IndexModel을 조정하여TelemetryClient을 얻습니다.public class IndexModel( TelemetryClient telemetry, ILogger<IndexModel> logger, IVariantFeatureManagerSnapshot featureManager ) : PageModel { private readonly TelemetryClient _telemetry = telemetry;또한 엔드포인트를 사용할 때 "좋아요"라는 이벤트를 추적하는 OnPostLike() 함수를 추가합니다.
public IActionResult OnPostLike() { _telemetry.TrackEvent("Liked"); return new JsonResult(new { success = true }); }Index.cshtml에서 스크립트 태그 앞에 위조 방지 토큰을 추가합니다.
<form method="post" style="display:none;"> @Html.AntiForgeryToken() </form> <script> ...다음 콘텐츠를 사용하여 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.
앱 빌드 및 실행
Application Insights를 사용하려면 Application Insights 리소스에 연결하기 위해 연결 문자열이 필요합니다.
ConnectionStrings:ApplicationInsights사용자 암호로 설정합니다.dotnet user-secrets set ConnectionStrings:ApplicationInsights "<your-Application-Insights-Connection-String>"환경 변수를 설정한 후 터미널을 다시 시작하고 애플리케이션을 다시 빌드하고 실행합니다.
dotnet build dotnet run
원격 분석 수집
애플리케이션을 배포하여 사용자로부터 원격 분석 수집을 시작합니다. 기능을 테스트하려면 많은 테스트 사용자를 만들어 사용자 활동을 시뮬레이션할 수 있습니다. 각 사용자는 다양한 인사말 메시지 중 하나를 체험하게 되며, 하트 버튼을 클릭하여 문구를 좋아요 할 수 있습니다. 사용자 기반이 증가함에 따라 Azure App Configuration에서 수집되는 증가하는 원격 분석 데이터의 볼륨을 모니터링할 수 있습니다. 또한 데이터로 드릴다운하여 기능 플래그의 각 변형이 사용자 동작에 미치는 영향을 분석할 수 있습니다.
추가 리소스
- 오늘의 명언 샘플
- .NET 기능 관리 라이브러리의 전체 기능 개요는 .NET 기능 관리 참조 설명서를 참조하세요.