Application Insights 샘플링
샘플링은 애플리케이션 데이터에 대한 인사이트적으로 정확한 분석을 유지하면서 원격 분석 트래픽, 데이터 비용 및 스토리지 비용을 줄일 수 있는 Application Insights의 기능입니다. 샘플링을 사용하면 Application Insights가 원격 분석을 제한하는 것을 방지할 수도 있습니다. 샘플링 필터는 관련된 항목을 선택하여 진단 조사를 수행할 때 항목 간을 탐색할 수 있도록 합니다.
일반적으로 중소 규모의 애플리케이션 대부분에서는 샘플링이 필요하지 않습니다. 가장 유용한 진단 정보 및 가장 정확한 통계는 모든 사용자 활동에서 데이터를 수집하여 구합니다.
샘플링의 주요 장점은 다음과 같습니다.
- 앱이 짧은 시간 간격으로 높은 비율의 원격 분석을 전송할 때 Application Insights 서비스는 데이터 요소를 삭제('제한')합니다. 샘플링을 사용하면 애플리케이션에서 제한이 발생할 가능성이 줄어듭니다.
- 가격 책정 계층에 대한 데이터 포인트 할당량 내에서 유지할 수 있습니다.
- 원격 분석 컬렉션에서 네트워크 트래픽을 줄일 수 있습니다.
샘플링 작동 방식
샘플링 알고리즘은 삭제할 원격 분석 항목과 유지할 항목을 결정합니다. 이는 SDK에서 샘플링을 하든 Application Insights 서비스에서 샘플링을 하든 마찬가지입니다. 샘플링 의사 결정은 상호 관련된 데이터 요소를 그대로 유지하려는 목표의 여러 규칙에 기반하며 이는 감소된 데이터 집합을 사용하더라도 실행할 수 있고 신뢰할 수 있는 Application Insights에서 진단 환경을 유지 관리합니다. 예를 들어, 앱의 샘플에 실패한 요청이 포함된 경우 추가 원격 분석 항목(예: 이 요청에 대해 기록된 예외 및 추적)이 보존됩니다. 샘플링은 전체를 유지하거나 삭제합니다. 결과적으로 Application Insights에서 요청 세부 정보를 볼 때 항상 연결된 원격 분석 항목과 함께 요청을 확인할 수 있습니다.
샘플링 결정은 요청의 작업 ID를 기준으로 하므로 특정 작업에 속하는 모든 원격 분석 항목이 유지되거나 삭제됩니다. 작업 ID가 없는 원격 분석 항목의 경우(예: HTTP 컨텍스트가 없는 비동기 스레드에서 보고된 원격 분석 항목) 샘플링은 단순히 각 형식의 원격 분석 항목 백분율을 캡처합니다.
원격 분석을 다시 표시하는 경우 Application Insights 서비스는 누락된 데이터 요소를 보완하기 위해 컬렉션의 시간에 사용된 동일한 샘플링 백분율로 메트릭을 조정합니다. 따라서 Application Insights에서 원격 분석을 보면 사용자는 실제 수에 가까운 통계적으로 올바른 근사치를 확인할 수 있습니다.
근사치의 정확도는 주로 구성된 샘플링 비율에 따라 다릅니다. 또한 많은 사용자의 유사한 요청을 대량으로 처리하는 애플리케이션의 경우 정확도가 높아집니다. 반면에 상당한 부하가 있을 때 작동하지 않는 애플리케이션의 경우 이러한 애플리케이션이 일반적으로 할당량 내에 있으면서 제한에서 데이터 손실이 발생하지 않고 해당 원격 분석을 모두 보낼 수 있기에 샘플링은 필요하지 않습니다.
메트릭 수가 포털에 표시되면 샘플링을 고려하여 다시 정규화됩니다. 이렇게 하면 통계에 미치는 영향이 최소화됩니다.
샘플링 유형입니다.
다음은 세 가지 대체 샘플링 방법입니다.
- 적응 샘플링은 ASP.NET/ASP.NET Core 앱의 SDK와 Azure Functions에서 전송된 원격 분석의 양을 자동으로 조정합니다. ASP.NET 또는 ASP.NET Core SDK를 사용하는 경우에 기본 샘플링입니다. 적응 샘플링은 현재 ASP.NET/ASP.NET Core 서버 쪽 원격 분석 및 Azure Functions에만 사용할 수 있습니다.
- 고정 속도 샘플링은 ASP.NET, ASP.NET Core 또는 Java 서버와 사용자 브라우저에서 전송되는 원격 분석의 양을 줄입니다. 비율은 사용자가 설정합니다. 클라이언트와 서버는 샘플링을 동기화하므로 검색에서 관련된 페이지 보기 및 요청 사이를 이동할 수 있습니다.
- 수집 샘플링은 Application Insights 서비스 엔드포인트에서 발생합니다. 설정한 샘플링 주기에 따라 앱에서 보낸 원격 분석 중 일부를 삭제합니다. 앱에서 보낸 원격 분석 트래픽을 줄이지는 않지만 월별 할당량 내로 유지하는 데 도움이 됩니다. 수집 샘플링의 주요 장점은 앱을 다시 배포하지 않고도 샘플링 속도를 설정할 수 있다는 것입니다. 수집 샘플링은 모든 서버 및 클라이언트에 균일하게 작동하지만 다른 유형의 샘플링이 작동하는 경우에는 적용되지 않습니다.
원격 분석 유형에 적응 또는 고정 비율 샘플링 방법을 사용하는 경우 해당 원격 분석에는 수집 샘플링이 사용되지 않습니다. 그러나 SDK 수준에서 샘플링에서 제외된 원격 분석 유형은 여전히 포털에 설정된 비율로 수집 샘플링이 적용됩니다.