다음을 통해 공유


기능 플래그에 대한 원격 분석 활성화

원격 분석은 애플리케이션 및 해당 기능을 사용하는 방법에 대한 데이터를 수집, 전송 및 분석하는 자동화된 프로세스입니다. 기능 플래그에 대한 원격 분석을 사용하도록 설정하면 기능 롤아웃의 동작 및 영향에 대한 중요한 인사이트를 제공하여 팀이 더 빠르게 반복하고, 사용자 환경을 개선하고, 문제를 조기에 감지하고, 새로운 기능의 효율성을 검증할 수 있도록 지원합니다. 원격 분석을 사용하면 팀은 다음과 같은 중요한 질문에 답변할 수 있습니다.

  • 기능이 예상대로 활성화되었거나 사용하지 않도록 설정되었나요?
  • 특정 사용자 또는 그룹이 새 기능에 액세스하고 있나요?
  • 기능으로 인해 성능이 저하되거나 오류가 발생하나요?
  • 참여 또는 변환과 같은 주요 메트릭에 대한 기능의 영향은 무엇인가요?

조직은 원격 분석 데이터를 활용하여 정보에 입각한 데이터 기반 의사 결정을 내리고, 문제를 신속하게 식별하고 해결하며, 더 나은 비즈니스 및 사용자 결과를 위해 기능 제공을 최적화할 수 있습니다.

원격 분석은 애플리케이션의 사용 및 성능에 대한 데이터를 수집, 전송 및 분석하는 프로세스입니다. 기능 플래그 동작을 모니터링하고 데이터 기반 결정을 내리는 데 도움이 됩니다. 기능 플래그 변경 내용이 배포되면 해당 변경 내용이 애플리케이션에 미치는 영향을 분석하는 것이 중요한 경우가 많습니다. 예를 들어, 다음과 같은 몇 가지 질문이 발생할 수 있습니다.

  • 내 플래그가 예상대로 사용하거나 사용하지 않도록 설정되어 있나요?
  • 대상 사용자가 예상대로 특정 기능에 액세스하고 있나요?
  • 변형은 고객 참여에 어떤 영향을 미치나요?

이러한 형식의 질문은 기능 플래그 평가 이벤트의 발생 및 분석을 통해 답할 수 있습니다.

필수 조건

Application Insights에 연결

  1. Azure Portal에서 App Configuration 저장소를 엽니다.

  2. 원격 분석 섹션에서 Application Insights(미리 보기) 블레이드를 선택합니다.

  3. 구독, 리소스 그룹을 선택합니다. 그런 다음 App Configuration 저장소에 연결할 기존 Application Insights 리소스를 선택하거나 새로 만들기 를 선택하여 새 Application Insights 리소스를 만듭니다.

  4. 연결 단추를 선택합니다.

    애플리케이션 인사이트를 연결하는 Azure Portal의 스크린샷.

기능 플래그에 원격 분석 활성화

  1. Azure Portal에서 App Configuration 저장소를 열고 작업 섹션에서 기능 관리자 블레이드를 선택합니다.

  2. Greeting이라는 기능 플래그를 선택합니다. 없는 경우 지침에 따라 만드세요. 그런 다음 기능 플래그를 마우스 오른쪽 단추로 클릭하고 편집을 선택합니다.

    기능 플래그를 편집하는 Azure Portal의 스크린샷.

  3. 새 보기에서 원격 분석 탭을 선택합니다.

  4. 원격 분석 사용 상자를 선택한 다음 페이지 아래쪽에서 검토 + 업데이트 단추를 선택합니다.

    원격 분석을 사용하도록 설정하는 Azure Portal의 스크린샷.

  5. 사용 중인 언어 또는 플랫폼에 대해 애플리케이션에서 원격 분석을 사용하려면 다음 지침을 계속 진행합니다.

Azure App Configuration에서 원격 분석 결과 검토

  1. App Configuration 포털에서 Application Insights 블레이드로 이동합니다. 애플리케이션의 모든 이벤트를 표시하는 그래프가 표시됩니다. 이 그래프는 활동 패턴의 초기 개요를 제공합니다.

    App Configuration 리소스의 Application Insights 블레이드에서 이벤트를 보는 Azure Portal의 스크린샷

  2. 시간 범위 선택기를 사용하여 특정 기간에 집중하여 추세를 식별하거나 관심 있는 특정 기간을 조사합니다.

  3. 기능 플래그로 필터링

    1. 이벤트 그래프 위의 드롭다운 메뉴를 클릭합니다.
    2. 이벤트가 있는 기능 플래그 아래에서 기능 플래그 선택
    3. 이제 그래프에 기능 플래그 평가와 관련된 이벤트만 표시됩니다.

    App Configuration 리소스의 Application Insights 블레이드에서 특정 기능 플래그를 선택하는 Azure Portal의 스크린샷

  4. 자세한 원격 분석에 액세스하려면 세부 정보 보기를 클릭하여 원격 분석 탭을 엽니다.

    Azure Portal의 스크린샷, App Configuration 리소스의 앱 인사이트 블레이드에서 원격 분석 탭으로 이동합니다.

비고

기능 관리자에서 관심 있는 기능 플래그의 원격 분석 열에 있는 이벤트 보기를 클릭하여 이 탭에 액세스할 수도 있습니다. 기능 관리자의 이벤트를 보는 Azure Portal의 스크린샷.

변형 할당 확인

원격 분석 탭에서 다음을 볼 수 있습니다.

  • 총 이벤트: 애플리케이션에서 내보낸 총 평가 이벤트 수
  • 고유 사용자: 대상이 되고 이벤트를 내보낸 고유 사용자 수입니다.

Simple, Long 및 None 변형에서 사용자 분포 및 평가 수를 표시하려면 메트릭을 Variant별로 그룹화합니다. 이 그룹화는 구성된 할당이 예상대로 작동하는지 여부와 예상되는 모든 변형이 사용자에게 제공되는지 확인할 수 있습니다.

원격 분석 탭에서 변형별로 고유 사용자를 보는 Azure Portal의 스크린샷.

이 예제에서, 사용자 그룹이 "없음", "단순", "긴"으로 각각 50-25-25 비율로 설정된 경우, "없음" 변형에 할당된 사용자 수는 "단순"과 "긴" 변형에 할당된 사용자 수의 거의 두 배에 달하는 것을 알 수 있습니다.

플래그 상태에 따라 재정의 및 동작 확인

사용자는 다양한 이유로 변형을 받을 수 있습니다. 변형 할당이 적절한 비율뿐만 아니라 올바른 이유도 갖도록 하고자 합니다. 할당 이유로 메트릭을 그룹화할 수 있습니다. 이 예제에서는 유일한 할당 이유는 백분위수 할당 때문입니다.

Azure 포털의 스크린샷, 원격 분석 탭에서 할당 이유에 따른 총 이벤트 표시.

  1. 기능 관리자로 이동하고 기능 플래그 "사용" 스위치를 전환하여 기능 플래그를 사용하지 않도록 설정합니다.

  2. 원격 분석 열에서 이벤트 보기를 클릭하여 읽기 전용 모드에서 원격 분석 탭으로 이동합니다.

  3. Variant별 고유 사용자 수를 봅니다. Long 및 Simple에 대한 모든 할당이 0으로 이동하는 것을 볼 수 있습니다. 이 경우 기본값인 None 변형만 사용자에게 할당됩니다.

    원격 분석 탭에서 변형별로 고유한 사용자 수를 보는 Azure Portal의 스크린샷.

  4. 할당 이유로 고유한 사용자 수를 보려면 전환합니다. 그래프에서 백분위수 할당이 0으로 떨어지고 DefaultWhenDisabled가 사용자에게 변형을 할당하는 유일한 이유인지 확인합니다.

    다른 가능한 이유로는 "DefaultWhenEnabled", "Group" 또는 "User"(구성된 경우)가 있습니다.

    원격 분석 탭에서 할당 이유로 고유한 사용자 수를 보는 Azure Portal의 스크린샷.

Application Insights에서 원격 분석

기능 플래그 할당이 예상대로 작동하는지 확인했으므로 원격 분석 이벤트를 자세히 살펴보고 사용자에 대해 내보낸 좋아요에 따라 다른 변형이 어떻게 수행되는지 확인할 수 있습니다.

Azure Portal에서 Application Insights 리소스를 열고 모니터링에서 로그를 선택합니다. 쿼리 창에서 다음 쿼리를 실행하여 원격 분석 이벤트를 확인합니다.

// Step 1: Get distinct users and their Variant from FeatureEvaluation (Replace <store-endpoint> with your store's endpoint)
let evaluated_users =
    customEvents
    | where name == "FeatureEvaluation"
    | where tostring(customDimensions.FeatureFlagReference) == "https://<store-endpoint>/kv/.appconfig.featureflag/Greeting"
    | extend TargetingId = tostring(customDimensions.TargetingId),
            Variant = tostring(customDimensions.Variant)
    | summarize Variant = any(Variant) by TargetingId;

// Step 2: Get distinct users who emitted a "Like"
let liked_users =
    customEvents
    | where name == "Liked"
    | extend TargetingId = tostring(customDimensions.TargetingId)
    | summarize by TargetingId;

// Step 3: Join them to get only the evaluated users who also liked
let hearted_users =
    evaluated_users
    | join kind=inner (liked_users) on TargetingId
    | summarize HeartedUsers = dcount(TargetingId) by Variant;

// Step 4: Total evaluated users per variant
let total_users =
    evaluated_users
    | summarize TotalUsers = dcount(TargetingId) by Variant;

// Step 5: Combine results
let combined_data =
    total_users
    | join kind=leftouter (hearted_users) on Variant
    | extend HeartedUsers = coalesce(HeartedUsers, 0)
    | extend PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%")
    | project Variant, TotalUsers, HeartedUsers, PercentageHearted;

// Step 6: Add total row
let total_sum =
    combined_data
    | summarize Variant="All", TotalUsers = sum(TotalUsers), HeartedUsers = sum(HeartedUsers);

// Step 7: Output
combined_data
| union (total_sum)

애플리케이션 인사이트 분석 결과를 보는 Azure Portal의 스크린샷.

견적 페이지가 로드될 때마다 하나의 "FeatureEvaluation" 이벤트가 표시되고, 좋아요 단추를 클릭할 때마다 하나의 "좋아요" 이벤트가 표시됩니다. "FeatureEvaluation" 이벤트에는 평가된 기능 플래그의 이름으로 호출 FeatureName 된 사용자 지정 속성이 있습니다. 두 이벤트 모두 인용문을 좋아하는 사용자의 이름을 담은 사용자 지정 속성 TargetingId이 있습니다.

이 예제에서는 Long 변형과 Simple을 가져오는 사용자 수가 거의 동일하더라도 Simple 변형이 22%여백으로 더 잘 수행되는 것처럼 보입니다.