Application Insights 데이터 수집, 보존 및 스토리지
앱에 Application Insights SDK를 설치하는 경우 앱에 대한 원격 분석을 클라우드로 보냅니다. 담당하는 개발자는 전송되는 데이터가 정확한 내용, 데이터에 발생한 내용, 데이터를 제어할 수 있는 방법을 알고자 합니다. 특히 중요한 데이터를 보낼 수 있는지, 저장되었는지 및 얼마나 안전한지를 파악합니다.
우선 짧은 응답은 다음과 같습니다.
- "초기"를 실행하는 표준 원격 분석 모듈은 서비스에 중요한 데이터를 전송하지 않을 가능성이 있습니다. 원격 분석은 로드, 성능 및 사용 현황 메트릭, 예외 보고서 및 기타 진단 데이터와 관련되어 있습니다. 진단 보고서에 표시되는 기본 사용자 데이터는 URL입니다. 하지만 앱은 어떤 경우에도 중요한 데이터를 URL에 일반 텍스트로 넣지 않아야 합니다.
- 진단 및 모니터링 사용에 도움이 되도록 더 많은 사용자 지정 원격 분석을 보내는 코드를 작성할 수 있습니다. (이 확장성은 Application Insights의 유용한 기능입니다.) 실수로 개인 및 기타 중요한 데이터를 포함하도록 이 코드를 작성할 수 있습니다. 애플리케이션이 이러한 데이터를 사용하여 작동하는 경우, 작성하는 모든 코드에 철저한 검토 프로세스를 적용해야 합니다.
- 앱을 개발하고 테스트하는 동안 SDK에서 보낼 항목을 쉽게 검사할 수 있습니다. IDE 및 브라우저의 디버깅 출력 창에 데이터가 나타납니다.
- 새 Application Insights 리소스를 만들 때 위치를 선택할 수 있습니다. 지역별 Application Insights 가용성에 대한 자세한 내용은 지역별 사용 가능한 제품을 참조하세요.
- 일부 상황에서 허용되지만 다른 경우에는 허용되지 않는 데이터가 포함될 수 있으므로 수집된 데이터를 검토하세요. 이 상황의 좋은 예는 디바이스 이름입니다. 서버의 디바이스 이름은 개인 정보에 영향을 주지 않으며 유용합니다. 휴대폰 또는 노트북의 디바이스 이름은 개인 정보 보호에 영향을 주고 덜 유용할 수 있습니다. 주로 대상 서버로 개발된 SDK는 기본적으로 디바이스 이름을 수집합니다. 이 기능은 일반 이벤트와 예외 모두에서 덮어써야 할 수 있습니다.
이 문서의 나머지 부분에서 이러한 점에 대해 더 자세히 설명합니다. 독립적인 문서이므로 팀에 속하지 않은 동료와도 공유할 수 있습니다.
Application Insights란?
Application Insights는 라이브 애플리케이션의 성능 및 가용성을 향상시키는 Microsoft에서 제공하는 서비스입니다. 테스트 중인 경우 및 게시하거나 배포한 후에 실행 중인 모든 시간 동안 애플리케이션을 모니터링합니다. Application Insights는 정보 메트릭을 보여주는 차트 및 테이블을 만듭니다. 예를 들어, 많은 사용자를 가져오는 시간, 앱이 얼마나 반응하는지, 종속된 외부 서비스에서 얼마나 잘 제공되는지를 볼 수 있습니다. 오류 또는 성능 문제가 있는 경우 원격 분석 데이터를 찾아보고 원인을 진단할 수 있습니다. 앱의 가용성과 성능에 변경 사항이 있는 경우 서비스에서 사용자에게 이메일을 보냅니다.
이 기능을 가져오기 위해 애플리케이션에서 해당 코드의 일부가 되는 Application Insights SDK를 설치합니다. 앱이 실행 중일 때 SDK는 해당 작업을 모니터링하고 Microsoft Azure에서 호스트하는 클라우드 서비스인 Application Insights Log Analytics 작업 영역에 원격 분석을 보냅니다. Application Insights는 Azure에서 호스팅되는 서비스가 아닌 모든 애플리케이션에 대해서도 작동합니다.
Application Insights는 원격 분석 데이터를 저장하고 분석합니다. 저장된 원격 분석을 통해 분석 또는 검색을 보려면 Azure 계정에 로그인하고 애플리케이션에 Application Insights 리소스를 엽니다. 또한 팀의 다른 구성원 또는 지정된 Azure 구독자와 데이터에 대한 액세스를 공유할 수 있습니다.
예를 들어 데이터베이스 또는 외부 도구에 Application Insights에서 내보낸 데이터가 있을 수 있습니다. 서비스에서 가져와야 하는 특수 키를 사용하여 각 도구를 제공합니다. 필요한 경우 키를 해지할 수 있습니다.
Application Insights SDK는 다양한 애플리케이션 유형에 사용할 수 있습니다.
- 자체 Java EE 또는 ASP.NET 서버 또는 Azure에서 호스트되는 웹 서비스
- 웹 클라이언트, 즉 웹 페이지에서 실행되는 코드
- 데스크톱 앱 및 서비스
- Windows Phone, iOS 및 Android와 같은 디바이스 앱
모두 동일한 서비스에 원격 분석을 보냅니다.
참고
2025년 3월 31일에 계측 키 수집에 대한 지원이 종료됩니다. 계측 키 수집은 계속 작동하지만 더 이상 기능에 대한 업데이트 또는 지원을 제공하지 않습니다. 연결 문자열로 전환하여 새로운 기능을 활용합니다.
어떤 데이터를 수집하나요?
세 가지 데이터 원본이 있습니다.
개발 시 또는 런타임 시 앱과 통합하는 SDK. 다른 애플리케이션 형식에 대한 여러 SDK가 있습니다. 페이지와 더불어 사용자의 브라우저에 로드하는 웹 페이지에 대한 SDK도 있습니다.
- 각 SDK에는 다양한 기술을 사용하여 다양한 형식의 원격 분석을 수집하는 많은 모듈이 있습니다.
- 개발 시 SDK를 설치하면 표준 모듈 외에도 API를 사용하여 사용자 고유의 원격 분석을 보낼 수 있습니다. 이 사용자 지정 원격 분석은 전송하려는 데이터를 포함할 수 있습니다.
또한 일부 웹 서버에는 앱과 함께 실행하고 CPU, 메모리 및 네트워크 선점에 대한 원격 분석을 보내는 에이전트가 있습니다. 예를 들어 Azure VM, Docker 호스트 및 Java 애플리케이션 서버에는 이러한 에이전트가 있을 수 있습니다.
가용성 개요는 정기적으로 웹앱에 요청을 전송하는 Microsoft에서 실행되는 프로세스입니다. 결과는 Application Insights에 전송됩니다.
어떤 종류의 데이터가 수집됩니까?
주요 범주는 다음과 같습니다.
-
웹 서버 원격 분석: HTTP가 요청합니다. URI, 요청, 응답 코드 및 클라이언트 IP 주소를 처리하는 데 걸린 시간.
Session id
. - 웹 페이지: 페이지, 사용자 및 세션 수. 페이지 로드 시간. 예외. Ajax 호출.
- 성능 카운터: 메모리, CPU, IO 및 네트워크 점유율.
- 클라이언트 및 서버 컨텍스트: OS, 로캘, 디바이스 형식, 브라우저 및 화면 해상도.
-
예외 및 크래시: 스택 덤프,
build id
및 CPU 유형. - 종속성: REST, SQL 및 AJAX와 같은 외부 서비스에 대한 호출. URI 또는 연결 문자열, 시간, 성공 및 명령.
- 가용성 테스트: 테스트 및 단계의 기간 및 응답.
- 추적 로그 및 사용자 지정 원격 분석: 로그 또는 원격 분석에 코딩한 것.
자세한 내용은 Application Insights에서 보낸 데이터 섹션을 참조하세요.
수집되는 항목을 어떻게 확인할 수 있나요?
Visual Studio를 사용하여 앱을 개발하는 경우 디버그 모드(F5)에서 앱을 실행합니다. 원격 분석은 출력 창에 나타납니다. 여기에서 복사하고 쉬운 검사를 JSON으로 형식으로 지정할 수 있습니다.
진단 창에 더 읽기 쉬운 보기도 있습니다.
웹 페이지의 경우 브라우저의 디버깅 창을 엽니다. F12 키를 누르고 네트워크 탭을 엽니다.
전송하기 전에 코드를 작성하여 원격 분석을 필터링할 수 있나요?
원격 분석 프로세서 플러그 인을 작성해야 합니다.
데이터가 얼마 동안 보존되나요?
원시 데이터 요소(즉, Analytics에서 쿼리하고 Search에서 검사할 수 있는 항목)는 최대 730일 동안 보관됩니다. 30, 60, 90, 120, 180, 270, 365, 550 또는 730일의 데이터 보존 기간을 선택할 수 있습니다. 730일 이상 데이터를 보관해야 할 경우 진단 설정을 사용할 수 있습니다.
90일 보다 오래 유지되는 데이터는 추가 요금이 발생합니다. Application Insights 가격에 대한 자세한 내용은 Azure Monitor 가격 페이지를 참조하세요.
집계 데이터(즉, 메트릭 탐색기에 표시되는 개수, 평균 및 기타 통계 데이터)는 90일 동안 1분 단위로 보존됩니다.
디버그 스냅샷은 15일 동안 저장됩니다. 이 보존 정책은 애플리케이션 단위로 설정됩니다. 이 값을 늘려야 하는 경우 Azure Portal에서 지원 사례를 열어 증가를 요청할 수 있습니다.
데이터에 액세스할 수 있는 사용자는 누구인가요?
데이터는 사용자 및 조직 계정이 있는 경우 팀 멤버에게 표시됩니다.
사용자와 팀 멤버는 데이터를 내보낼 수 있으며, 다른 위치로 복사하고 다른 사람에게 전달할 수 있습니다.
Microsoft는 내 앱이 Application Insights로 보내는 정보로 무엇을 하나요?
Microsoft는 서비스를 제공하기 위한 목적으로만 데이터를 사용합니다.
데이터가 저장되는 위치는 어디인가요?
새 Application Insights 리소스를 만들 때 위치를 선택할 수 있습니다. Application Insights 가용성에 대한 자세한 내용은 지역별 사용 가능한 제품을 참조하세요.
내 데이터는 어느 정도 안전한가요?
Application Insights는 Azure 서비스입니다. 보안 정책은 Azure 보안, 개인 정보 보호 및 규정 준수 백서에 설명되어 있습니다.
데이터는 Microsoft Azure 서버에 저장됩니다. Azure Portal 계정의 경우 Azure 보안, 개인 정보 및 규정 준수 문서에 계정 제약 사항이 설명되어 있습니다.
Microsoft 직원의 사용자 데이터에 대한 액세스는 제한되어 있습니다. Microsoft에서는 사용자가 허락한 경우에만, 그리고 Application Insights 사용을 지원하는 데 필요한 경우에 사용자 데이터에 액세스합니다.
모든 고객의 애플리케이션에 대한 집계 데이터(예: 데이터 속도 및 평균 추적 크기)는 Application Insights를 개선하는 데 사용됩니다.
다른 사람의 원격 분석이 내 Application Insights 데이터에 방해가 될 수 있나요?
누군가가 계측 키를 사용하여 계정에 더 많은 원격 분석을 보낼 수 있습니다. 이 키는 웹 페이지의 코드에서 찾을 수 있습니다. 추가 데이터가 충분하면 메트릭이 앱의 성능 및 사용을 올바르게 나타내지 않습니다.
다른 프로젝트와 코드를 공유하는 경우 계측 키를 제거해야 합니다.
데이터는 암호화되나요?
모든 데이터는 미사용 시 및 데이터 센터 간에 이동할 때 암호화됩니다.
내 애플리케이션에서 Application Insights 서버로 전송 중에 데이터가 암호화되나요?
예. 웹 서버, 디바이스 및 HTTPS 웹 페이지를 포함하여 거의 모든 SDK에서 HTTPS를 사용하여 포털로 데이터를 보냅니다.
SDK에서 임시 로컬 스토리지를 작성하나요?
예. 엔드포인트에 도달할 수 없는 경우 특정 원격 분석 채널은 데이터를 로컬로 유지합니다. 다음 단락에서는 영향을 받는 프레임워크 및 원격 분석 채널에 대해 설명합니다.
- 로컬 스토리지를 이용하는 원격 분석 채널은 사용자 애플리케이션을 실행하는 특정 계정으로 제한된 TEMP 또는 APPDATA 디렉터리에 임시 파일을 생성합니다. 이는 엔드포인트를 일시적으로 사용할 수 없거나 조정 제한에 도달했을 때 발생할 수 있습니다. 이 문제가 해결되면 원격 분석 채널이 모든 새 지속 데이터 및 지속된 데이터 전송을 재개합니다.
- 이 지속된 데이터는 로컬로 암호화되지 않습니다. 이 문제가 있는 경우 데이터를 검토하고 프라이빗 데이터의 컬렉션을 제한합니다. 자세한 정보는 프라이빗 데이터 내보내기 및 삭제을 참조하세요.
- 고객이 특정 보안 요구 사항으로 이 디렉터리를 구성해야 하는 경우, 프레임워크 별로 구성할 수 있습니다. 애플리케이션을 실행하는 프로세스에 이 디렉터리에 대한 쓰기 권한이 있는지 확인합니다. 또한 의도하지 않은 사용자가 원격 분석을 읽지 않도록 이 디렉터리를 보호해야 합니다.
Java
데이터를 지속하는 데 폴더 C:\Users\username\AppData\Local\Temp
가 사용됩니다. 이 위치는 구성 디렉터리에서 구성할 수 없으며 이 폴더에 대한 액세스 권한은 필수 자격 증명이 있는 특정 사용자로 제한됩니다. (자세한 내용은 구현을 참조하세요.)
.NET
기본적으로 ServerTelemetryChannel
은 현재 사용자의 로컬 앱 데이터 폴더 %localAppData%\Microsoft\ApplicationInsights
또는 임시 폴더%TMP%
를 사용합니다. (자세한 내용은 구현을 참조하세요.)
구성 파일:
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel">
<StorageFolder>D:\NewTestFolder</StorageFolder>
</TelemetryChannel>
코드:
구성 파일에서
ServerTelemetryChannel
을 제거합니다.이 코드 조각을 구성에 추가:
ServerTelemetryChannel channel = new ServerTelemetryChannel(); channel.StorageFolder = @"D:\NewTestFolder"; channel.Initialize(TelemetryConfiguration.Active); TelemetryConfiguration.Active.TelemetryChannel = channel;
NetCore
기본적으로 ServerTelemetryChannel
은 현재 사용자의 로컬 앱 데이터 폴더 %localAppData%\Microsoft\ApplicationInsights
또는 임시 폴더%TMP%
를 사용합니다. (자세한 내용은 구현을 참조하세요.)
Linux 환경에서는 스토리지 폴더를 지정하지 않으면 로컬 스토리지가 비활성화됩니다.
참고
릴리스 2.15.0-beta3 이상의 경우, 로컬 스토리지는 이제 Linux, Mac 및 Windows 용으로 자동 생성됩니다. Windows가 아닌 체제의 경우, SDK는 다음 논리에 따라 로컬 스토리지 폴더를 자동으로 생성합니다.
-
${TMPDIR}
:${TMPDIR}
환경 변수가 설정된 경우, 이 위치가 사용됩니다. -
/var/tmp
: 이전 위치가 없으면/var/tmp
를 시도합니다. -
/tmp
: 모두 이전 위치가 없으면tmp
를 시도합니다. - 이러한 위치가 아예 없는 경우, 로컬 스토리지가 만들어지지 않으며, 수동 구성도 필요합니다.
전체 구현 세부 정보는 비 Windows 환경에서 일시적인 오류 발생 중에 ServerTelemetryChannel이 원격 분석 데이터를 기본 폴더에 저장을 참조하세요.
다음 코드 조각은 Startup.cs
클래스의 ConfigureServices()
메서드에서 ServerTelemetryChannel.StorageFolder
를 설정하는 방법을 보여줍니다.
services.AddSingleton(typeof(ITelemetryChannel), new ServerTelemetryChannel () {StorageFolder = "/tmp/myfolder"});
(자세한 정보는 AspNetCore 사용자 지정 구성을 참조하세요.)
Node.js
기본적으로 %TEMP%/appInsights-node{INSTRUMENTATION KEY}
이(가) 데이터를 지속하는 데 사용됩니다. 이 폴더에 대한 액세스 권한은 현재 사용자 및 관리자로 제한됩니다. 자세한 내용은 구현을 참조하세요.
Sender.ts에 있는 정적 변수 Sender.TEMPDIR_PREFIX
의 런타임 값을 변경하여 폴더 접두사 appInsights-node
을(를) 재정의할 수 있습니다.
JavaScript(브라우저)
HTML5 세션 스토리지는 데이터를 유지하는 데 사용됩니다. 두 가지 별도의 버퍼 AI_buffer
과 AI_sent_buffer
를 사용합니다. 일괄 처리되고 전송 대기중인 원격 분석은 AI_buffer
에 저장됩니다. 방금 전송된 원격 분석은 수집 서버가 성공적으로 수신됨을 응답할 때까지 AI_sent_buffer
에 배치됩니다.
원격 분석이 성공적으로 수신되면 모든 버퍼에서 제거됩니다. 일시적 오류(예: 사용자의 네트워크 연결이 끊김)가 발생하는 경우 원격 분석은 성공적으로 수신될 때까지 또는 수집 서버에서 원격 분석이 잘못된 것으로 응답할 때까지 AI_buffer
에 남습니다(예: 잘못된 스키마 또는 너무 오래됨).
원격 분석 버퍼는 enableSessionStorageBuffer
을 false
로 설정하여 사용하지 않도록 설정할 수 있습니다. 세션 스토리지가 꺼져 있으면 대신 로컬 배열이 영구 스토리지로 사용됩니다. JavaScript SDK는 클라이언트 디바이스에서 실행되기 때문에 사용자는 브라우저의 개발자 도구를 통해 이 스토리지 위치에 액세스할 수 있습니다.
OpenCensus Python
기본적으로 OpenCensus Python SDK는 현재 사용자 폴더 %username%/.opencensus/.azure/
를 사용합니다. 이 폴더에 대한 액세스 권한은 현재 사용자 및 관리자로 제한됩니다. 자세한 내용은 구현을 참조하세요. 지속형 데이터를 포함하는 폴더는 원격 분석을 생성한 Python 파일의 이름을 따라 명명됩니다.
사용 중인 내보내기의 생성자에서 storage_path
매개 변수를 전달하여 스토리지 파일의 위치를 변경할 수 있습니다.
AzureLogHandler(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000',
storage_path='<your-path-here>',
)
TLS 1.2를 사용하여 데이터를 Application Insights에 보내려면 어떻게 할까요?
Application Insights 엔드포인트에 전송 중인 데이터를 보호하려면 고객이 적어도 TLS(전송 계층 보안) 1.2 이상을 사용하도록 해당 애플리케이션을 구성하는 것이 좋습니다. 이전 버전의 TLS/SSL(Secure Sockets Layer)이 취약한 것으로 확인되었습니다. 현재 여전히 이전 버전과의 호환성을 허용하기 위해 작동하지만 권장되지는 않습니다. 업계에서는 이러한 오래된 프로토콜에 대한 지원을 중단하기 위해 빠르게 움직이고 있습니다.
PCI 보안표준 위원회는 이전 버전의 TLS/SSL를 사용하지 않고 좀 더 안전한 보안 프로토콜로 업그레이드하는 최종 기한을 2018년 6월 30일로 정했습니다. Azure가 레거시 지원을 삭제하면 애플리케이션 또는 클라이언트가 TLS 1.2를 통해 통신할 수 없는 경우 Application Insights에 데이터를 보낼 수 없게 됩니다. 애플리케이션의 TLS 지원을 테스트하고 유효성을 검사하는 애플리케이션에서 사용하는 방법은 언어 또는 프레임워크뿐만 아니라 운영 체제 또는 플랫폼에 따라 달라집니다.
필요한 경우가 아니면 TLS 1.2만 사용하도록 애플리케이션을 명시적으로 설정하지 않는 것이 좋습니다. 이렇게 설정하면 TLS 1.3 등을 사용할 수 있게 되면 더 안전한 최신 프로토콜을 자동으로 검색하고 활용할 수 있도록 하는 플랫폼 수준 보안 기능이 중단될 수 있습니다. 특정 TLS/SSL 버전의 하드 코딩을 확인하려면 애플리케이션 코드에 대해 철저한 감사를 수행하는 것이 좋습니다.
플랫폼/언어 특정 지침
플랫폼/언어 | 지원 | 추가 정보 |
---|---|---|
Azure App Services | 지원됨, 구성이 필요할 수 있습니다. | 지원은 2018년 4월에 발표되었습니다. 구성 세부 정보에 대한 공지를 참고하세요. |
Azure 함수 앱 | 지원됨, 구성이 필요할 수 있습니다. | 지원은 2018년 4월에 발표되었습니다. 구성 세부 정보에 대한 공지를 참고하세요. |
.NET | LTS(장기 지원) 지원됨 | 자세한 구성 정보는 이러한 지침을 참조하세요. |
Application Insights 에이전트 | 지원됨, 구성이 필요합니다. | Application Insights 에이전트는 OS 구성 + .NET 구성에 의존하여 TLS 1.2를 지원합니다. |
Node.js | 지원됨, v10.5.0에서 구성이 필요할 수 있습니다. | 애플리케이션 특정 구성에 대해 공인 Node.js TLS/SSL 설명서를 사용합니다. |
Java | 지원됨, TLS 1.2에 대한 JDK 지원이 JDK 6 업데이트 121 및 JDK 7에서 추가되었습니다. | JDK 8은 기본적으로 TLS 1.2를 사용합니다. |
Linux | Linux 배포판은 TLS 1.2 지원에 대해 OpenSSL을 사용하는 경향이 있습니다. | OpenSSL Changelog를 확인하여 OpenSSL 버전이 지원되는지 확인합니다. |
Windows 8.0 - 10 | 지원됨, 기본적으로 활성화됩니다. | 기본 설정을 여전히 사용하는지 확인하려면 다음을 수행합니다. |
Windows Server 2012 - 2016 | 지원되며 기본적으로 사용하도록 설정됩니다. | 기본 설정을 여전히 사용하는지 확인하려면 다음을 수행합니다. |
Windows 7 SP1 및 Windows Server 2008 R2 SP1 | 지원되지만 기본적으로 사용하도록 설정되지 않습니다. | 활성화하는 방법에 대한 자세한 내용은 TLS(전송 계층 보안) 레지스트리 설정 페이지를 참조하세요. |
Windows Server 2008 SP2 | TLS 1.2에 대한 지원에는 업데이트가 필요합니다. | Windows Server 2008 SP2에서 TLS 1.2에 대한 지원을 추가하는 업데이트를 참조하세요. |
Windows Vista | 지원되지 않습니다. | 해당 없음 |
Linux 배포에서 실행 중인 OpenSSL 버전을 확인합니다.
설치한 OpenSSL 버전을 확인하려면 터미널을 열고 다음을 실행합니다.
openssl version -a
Linux에서 테스트 TLS 1.2 트랜잭션을 실행합니다.
예비 테스트를 실행하여 Linux 시스템이 TLS 1.2를 통해 통신할 수 있는지 확인하려면 터미널을 열고 실행합니다:
openssl s_client -connect bing.com:443 -tls1_2
Application Insights에 저장된 개인 데이터
이 문제에 대한 자세한 내용은 Log Analytics 및 Application Insights에서 개인 데이터 관리를 참조하세요.
내 사용자가 Application Insights를 끌 수 있나요?
직접 끌 수는 없습니다. 사용자가 Application Insights를 끄기 위해 작동할 수 있는 스위치는 제공되지 않습니다.
애플리케이션에서 이러한 기능을 구현할 수 있습니다. 모든 SDK에는 원격 분석 수집을 끄는 API 설정이 포함되어 있습니다.
Application Insights에서 보내는 데이터
SDK는 플랫폼마다 다르며, 설치할 수 있는 여러 구성 요소가 있습니다. 자세한 내용은 Application Insights 개요를 참조하세요. 각 구성 요소마다 다른 데이터를 보냅니다.
다양한 시나리오에서 전송되는 데이터 클래스
사용자 작업 | 수집되는 데이터 클래스(다음 표 참조) |
---|---|
.NET 웹 프로젝트에 Application Insights SDK 추가 | ServerContext 유추 성능 카운터 요청 예외 세션 사용자 |
IIS에 Application Insights 에이전트 설치 | 종속성 ServerContext 유추 성능 카운터 |
Java 웹앱에 Application Insights SDK 추가 | ServerContext 유추 요청 세션 사용자 |
웹 페이지에 JavaScript SDK 추가 | ClientContext 유추 페이지 ClientPerf Ajax |
기본 속성 정의 | 속성 |
호출 TrackMetric | 숫자 값 속성 |
호출 추적* | 이벤트 이름 속성 |
호출 TrackException |
예외 스택 덤프 속성 |
SDK는 데이터를 수집할 수 없습니다. 예를 들면 다음과 같습니다. - 성능 카운터에 액세스할 수 없음 - 원격 분석 이니셜라이저 예외 |
SDK 진단 |
다른 플랫폼에 대한 SDK의 경우 해당 문서를 참조하세요.
수집되는 데이터 클래스
수집되는 데이터 클래스 | 포함(전체 목록 아님) |
---|---|
속성 | 임의 데이터 - 코드에 의해 결정됨 |
DeviceContext |
Id , IP, Locale, 디바이스 모델, 네트워크, 네트워크 종류, OEM 이름, 화면 해상도, 역할 인스턴스, 역할 이름, 디바이스 유형 |
ClientContext | OS, 로캘, 언어, 네트워크, 창 해상도 |
세션 | session id |
ServerContext | 컴퓨터 이름, 로캘, OS, 디바이스, 사용자 세션, 사용자 컨텍스트, 작업 |
유추 | IP 주소, 타임스탬프, OS, 브라우저에서 지리적 위치 유추 |
메트릭 | 메트릭 이름 및 값 |
이벤트 | 이벤트 이름 및 값 |
PageViews | URL 및 페이지 이름이나 화면 이름 |
클라이언트 성능 | URL/페이지 이름, 브라우저 로드 시간 |
Ajax | 웹 페이지에서 서버로의 HTTP 호출 |
요청 | URL, 기간, 응답 코드 |
종속성 | 형식(SQL, HTTP, ...), 연결 문자열 또는 URI, 동기/비동기, 지속 기간, 성공, SQL 문(Application Insights 에이전트 사용) |
예외 | 유형, 메시지, 호출 스택, 원본 파일, 줄 번호, thread id |
크래시 |
Process id , parent process id , crash thread id ; 애플리케이션 패치, id , 빌드; 예외 유형, 주소, 이유; 난독 처리된 기호 및 레지스터, 이진 시작 및 끝 주소, 이진 이름 및 경로, CPU 유형 |
추적 | 메시지 및 심각도 수준 |
성능 카운터 | 프로세서 시간, 사용 가능한 메모리, 요청 속도, 예외 속도, 프로세스 프라이빗 바이트, IO 속도, 요청 기간, 요청 큐 길이 |
가용성 | 웹 테스트 응답 코드, 각 테스트 단계, 테스트 이름, 타임 스탬프, 성공, 응답 시간, 테스트 위치의 기간 |
SDK 진단 | 추적 메시지 또는 예외 |
ApplicationInsights.config를 편집하여 일부 데이터를 해제할 수 있습니다.
참고
클라이언트 IP는 지리적 위치를 유추하는 데 사용되지만 기본적으로 IP 데이터는 더 이상 저장되지 않으며 모든 0은 연결된 필드에 기록됩니다. 개인 데이터 처리에 대한 자세한 내용은 Log Analytics 및 Application Insights에서 개인 데이터 관리를 참조하세요. IP 주소 데이터를 저장해야 하는 경우 지리적 위치 및 IP 주소 처리에서 사용자의 옵션을 안내합니다.
수집된 데이터를 수정하거나 업데이트할 수 있나요?
아니요. 데이터는 읽기 전용이며, 제거 기능을 통해서만 삭제할 수 있습니다. 더 자세히 알아보려면 Log Analytics 및 Application Insights에 저장된 개인 데이터에 대한 가이드라인을 참조하세요.
질문과 대답
이 섹션에서는 일반적인 질문에 대한 답변을 제공합니다.
서버 또는 디바이스에서 Azure와의 연결이 끊어지면 Application Insights의 원격 분석은 어떻게 되나요?
웹 SDK를 포함한 모든 SDK에는 ‘신뢰할 수 있는 전송’ 또는 ‘강력한 전송’이 포함됩니다. 서버 또는 디바이스에서 Azure와의 연결이 끊어지면 원격 분석이 파일 시스템(서버 SDK) 또는 HTML5 세션 스토리지(웹 SDK)에 로컬로 저장됩니다. 수집 서비스에서 "부실"로 간주할 때까지 SDK는 이 원격 분석을 주기적으로 보내려고 다시 시도합니다(로그의 경우 48시간, 메트릭의 경우 30분). 오래된 원격 분석이 삭제됩니다. 다시 시도하는 경우(예: 로컬 스토리지가 가득 찬 경우)에 따라 수행되지 않습니다.
원격 분석에서 개인 데이터를 전송하나요?
코드가 그러한 데이터를 보내는 경우 개인 데이터를 보낼 수 있습니다. 스택 추적의 변수에 개인 데이터가 포함된 경우에도 전송될 수 있습니다. 개발 팀은 개인 데이터가 제대로 처리되도록 위험 평가를 수행해야 합니다. 데이터 보존 및 개인 정보에 대해 자세히 알아보세요.
클라이언트 웹 주소의 모든 8진수는 지리적 위치 특성을 조회한 후에 항상 0으로 설정됩니다.
Application Insights JavaScript SDK는 기본적으로 자동 완성에 개인 데이터를 포함하지 않습니다. 그러나 애플리케이션에 사용되는 일부 개인 데이터는 SDK에서 선택할 수 있습니다 (예: window.title
의 전체 이름 또는 XHR URL 쿼리 매개 변수의 계정 ID). 사용자 지정 개인 데이터 마스킹의 경우 원격 분석 이니셜라이저를 추가합니다.