다음을 통해 공유


모델 기반 앱에 사용할 수 있는 데이터는 무엇인가요?

페이지 로드 및 UCI(통합 인터페이스) 아웃바운드 네트워크 요청과 관련된 성능 데이터는 모델 기반 앱에서 사용할 수 있습니다.

어떤 종류의 페이지 로드를 사용할 수 있나요?

종류 성능 및 진단 데이터 사용 가능
대시보드 로드(UCI) - 브라우저
대시보드 로드(UCI) - 내장
대시보드 로드(UCI) - MobileApplication
대시보드 로드(UCI) – MailApp
대시보드 로드(UCI) - MobileApplication
EditForm 로드(UCI) – 브라우저
EditForm 로드(UCI) – 포함
EditForm 로드(UCI) – MailApp
EditForm 로드(UCI) - MobileApplication
EntityList 로드(UCI) – 브라우저
EntityList 로드(UCI) - 포함
EntityList 로드(UCI) – MailApp
EntityList 로드(UCI) - MobileApplication
앱 실행 - (UCI) – 브라우저
앱 실행 - (UCI) - 포함
앱 실행 - (UCI) – MailApp
앱 실행 - (UCI) – MobileApplication
QuickCreateForm 로드(UCI) – 브라우저
QuickCreateForm 로드(UCI) – 포함
QuickCreateForm 로드(UCI) – MailApp
QuickCreateForm 로드(UCI) – MobileApplication
SaveForm 현재 사용할 수 없음
CommandButton 동작 현재 사용할 수 없음

페이지 로드 데이터는 어디에서 사용할 수 있나요?

이 데이터는 Application Insights의 pageViews 테이블로 이동합니다. 사용자가 통합 인터페이스에 페이지를 로드할 때마다 항목이 기록됩니다. 기록된 데이터에는 "클린" 로드만 포함됩니다. 빠른 탐색, 앱에서 나가기, 경고 메시지 등 지속 시간을 정확하게 측정할 수 없는 로드는 포함되지 않습니다. 따라서 사용량 분석과 관련된 정확한 수치를 위해 이 데이터를 사용하지 않는 것이 좋습니다.

customDimensions의 기타 속성에서 통합 인터페이스 페이지 로드에 대한 자세한 내용을 제공합니다. 예를 들어 이 쿼리는 pageViews 테이블에 있는 모든 특성의 값을 반환합니다.

pageViews
| take 1

Application Insights pageViews 테이블.

pageViews 테이블 특성에는 다음이 포함됩니다.

  • appModule: 앱 모듈 이름입니다.
  • entityName: 이 특성은 관련이 있을 때 존재합니다. 엔터티에 바인딩된 경우 EditForm, EntityList 및 Dashboard와 같은 페이지 유형에서 사용할 수 있습니다. 일부 시나리오에서는 양식이 엔터티에 바인딩되지 않고 값이 정의되지 않은 것으로 나타납니다.
  • formId: formId는 양식을 고유하게 식별하고 해당 특정 양식에 영향을 미치는 문제를 연관시키는 데 사용할 수 있습니다.
  • hostType: 브라우저/MobileApplication/포함
  • isBoot: 세션의 첫 번째 로드인지 여부
  • loadType
    • 0: 특정 페이지 유형에 대한 첫 번째 방문(예: 양식에 대한 첫 번째 방문).
    • 1: 특정 구성에 대한 첫 번째 방문(예: 계정 양식에 대한 첫 번째 방문).
    • 2: 특정 레코드에 대한 첫 번째 방문(예: 계정 레코드 A2에 대한 첫 번째 방문).
    • 3: 이 정확한 URL은 이전에 방문한 적이 있습니다.
  • navigationOrigin: 사용자가 탐색한 페이지의 유형입니다.
  • networkConnectivityState: 장치가 연결되어 있는지 여부.
  • pageName: 페이지 로드 유형입니다.
  • serverConnectivityState: 앱이 서버에 연결되어 있는지 여부.
  • syncRequestTime: 동기 요청을 대기하는 데 소요된 시간입니다.
  • coldLatency: SSL 핸드셰이크 시간을 포함하는 네트워크 대기 시간의 첫 번째 추정치입니다.
  • warmLatency: 각 요청에 대해 일반적으로 예상되는 대기 시간인 네트워크 대기 시간의 후속 추정치입니다.
  • warmThroughput: 네트워크의 예상 처리량(Kbps)입니다.

Microsoft Dataverse 이벤트의 경우 Application Insights의 ID 필드 또는 operation_ParentIdx-ms-service-request-id입니다. operationId는 문제 해결 및 지원 요청을 위해 백엔드의 activityId에 매핑됩니다.

UCI 아웃바운드 네트워크 요청에 어떤 종류의 데이터를 사용할 수 있나요?

특정 페이지를 렌더링하기 위해 통합 인터페이스에 의해 만들어진 다른 종속성에 대한 호출입니다. Dataverse 또는 Azure DevOps나 Office와 같은 기타 통합에 대한 발신 호출일 수 있습니다. 다음 쿼리를 사용하여 UCI 요청 종속성 테이블에서 사용할 수 있는 이 데이터를 가져옵니다.

dependencies
| where type == "UCI REQUEST"

UCI 요청 종속성 테이블에는 다음 필드가 있습니다.

  • 이름: 통합 인터페이스에 의해 호출되는 URL입니다.

  • 대상: 현재 이름과 같습니다.

  • 성공: 호출 성공 또는 실패 여부입니다.

  • UserId: 로그인한 사용자의 Dataverse 시스템 사용자 ID입니다.

  • 기간: 호출의 기간입니다.

  • customDimensions: 다음 특성을 포함합니다.

    Application Insights UCI 요청.

    • appModule: 호출하는 appModule입니다.
    • bodySize: 인코딩 및 디코딩된 응답의 크기입니다.
    • cached: 요청이 로컬 캐시로 이동했는지 아니면 서버로 이동해야 하는지 여부입니다. 최종 사용자가 Internet Explorer 브라우저를 사용했다면 정상적으로 작동하지 않습니다.
    • download: 응답을 다운로드하는 데 걸린 시간입니다.
    • stall: 브라우저 큐에서 요청이 대기한 시간입니다.
    • ttfb : "첫 번째 바이트까지의 시간"이라고도 하는 초기 응답을 기다리는 데 소요된 시간입니다. 이 시간은 서버가 응답을 전달하기를 기다리는 데 소요된 시간 외에 서버 왕복 대기 시간을 캡처합니다.
    • coldLatency: SSL 핸드셰이크 시간을 포함하는 네트워크 대기 시간의 첫 번째 추정치입니다.
    • warmLatency: 각 요청에 대해 일반적으로 예상되는 대기 시간인 네트워크 대기 시간의 후속 추정치입니다.
    • warmThroughput: 네트워크의 예상 처리량(Kbps)입니다.

시나리오 검색 및 분석

일부 사용자가 통합 인터페이스에서 속도 저하를 경험하는 이유는 무엇인가요?

검색 및 분석이 가치 있는 한 가지 시나리오는 한 지역(예: 아시아)의 사용자가 양식이 느리게 수행되고 있다고 보고하는 경우입니다. 아시아에 기반을 둔 이 사용자는 북미의 환경이나 조직에 액세스하고 있을 수 있습니다. 세부 정보에는 네트워크 관련 지속 시간과 함께 총 로드 시간이 표시됩니다. 이는 사용자가 인식하는 성능 저하의 원인일 수도 있습니다.

warmLatency, warmThroughputcoldLatency 특성을 사용하여 다음 이미지와 같이 페이지 로드 및 기타 통합 인터페이스 요청에서 시간이 소비된 위치의 분석을 이해할 수 있습니다.

Application Insights UCI 속도 느림.

위의 요청에서 통합 인터페이스 요청은 실제 Dataverse API(웹 API) 요청보다 더 오래 걸립니다. 이 사례의 브레이크다운은 Dataverse API 호출의 길이(56ms)와 CustomDimensions.warmLatency의 값(89ms)을 더한 값이며, 전체 작업의 기간(144ms)에 근접합니다. warmLatency 값은 해당 특정 클라이언트의 속도 저하를 나타내며 다음 쿼리를 사용하여 사용자 수준에서 분석할 수 있는 문제일 수 있습니다.

dependencies
| where ['type'] == "UCI REQUEST"
| summarize avg(toint(customDimensions.warmLatency)), avg(toint(customDimensions.coldLatency)), avg(toint(customDimensions.warmThroughput)) by user_Id

pageViews
| summarize avg(toint(customDimensions.warmLatency)), avg(toint(customDimensions.coldLatency)), avg(toint(customDimensions.warmThroughput)) by user_Id

사용자가 시스템에 액세스하는 방법을 확인할 수 있나요?

Application Insights 요청 테이블의 customDimensions 필드에 있는 userAgent 특성에 이 데이터가 있습니다. 다음 쿼리를 사용하여 사용자가 시스템에 액세스하는 여러 소스에 대한 개요를 얻을 수 있습니다.

pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id

dependencies
| where ['type'] == "UCI REQUEST"
customDimensions.userAgent 값이 다음으로 시작하는 경우 사용자가 시스템에 액세스하는 위치는 어디인가요?
Mozilla 브라우저 유형, 버전
azure-logic-apps Azure 논리 앱
PowerApps Power Apps
Microsoft Office Excel Office Excel
포털 포털
DynamicsDataIntegration Dynamics 데이터 통합
XrmToolBox.exe XrmToolBox
PluginRegistration 플러그 인 등록
LogicAppsDesigner Logic Apps Designer
Apache-HttpClient Apache HTTP 클라이언트
Microsoft Flow Power Automate
UnifiedServiceDesk Unified Service Desk
PostmanRuntime Postman
OfficeGroupsConnector Office 그룹 커넥터
Microsoft.Data.Mashup Power Query
Apache-Olingo Apache Olingo
Dalvik Android
Jakarta Commons-Http 자카르타
Informatica Informatica
axios Axios
node-fetch NodeJS
LinkedInBot LinkedInBot

브라우저, 모바일 또는 임베디드 애플리케이션에서 액세스하는 사용자 수를 어떻게 알 수 있나요?

pageViews
| summarize count() by tostring(customDimensions.hostType)

다음 이미지는 이 쿼리의 결과 집합의 예를 보여줍니다.

Application Insights 샘플 결과 집합.

특정 사용자로 범위를 좁히려면 어떻게 하나요?

pageViews
| where user_Id == "[userid]"
| summarize count() by tostring(customDimensions.hostType)

Monitor로 Application Insights를 사용하려면 어떻게 하나요?

Azure Monitor는 통합 인터페이스 측에서 세션에 대한 실시간 문제 해결에 도움이 됩니다. 종단 간 트랜잭션 요청은 Application Insights에서 사용할 수 있습니다. 지정된 작업에 대한 로그를 보려면 Monitor의 이벤트 세부 정보 페이지에 있는 행에서 활동 ID를 기록해 둡니다. 다음 쿼리를 사용하여 로그를 찾을 수 있습니다.

union *
| where operation_Id contains "[ActivityIdHere]"

Monitor는 실시간 디버깅 도구입니다. 그러나 몇 시간 동안 데이터를 사용하지 못할 수 있습니다.

사용자가 특정 양식에 문제를 겪는 이유는 무엇인가요?

사용자는 특정 조직에 대한 통합 인터페이스의 정보 섹션에서 세션 ID를 공유할 수 있습니다.

설정 > 정보.

설정 > 세션 ID 정보.

그런 다음 이 ID를 사용하여 해당 세션의 모든 활동을 보고 문제를 찾을 수 있습니다. 다음 쿼리를 사용합니다.

union *
| where session_Id == '[sessionIdHere]'

다른 위치에서 어떤 양식이 사용되고 있으며 이러한 위치에서 양식의 로드 성능은 어떤가요?

pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion

외부 API 호출이 실패했으며 디버깅에 도움이 되도록 오류 스택에 드릴다운할 수 있나요?

실패 패널의 브라우저 보기에는 통합 인터페이스 발신 요청이 있습니다. Dataverse 또는 조직으로 전달되는 요청에는 조직 URL이 포함되어 있습니다. 다른 URL로 이동하는 다른 요청이 있을 수 있습니다(예: 다음 이미지에서 조직에는 dc.services.visualstudio.com을 호출하는 사용자 정의가 있음). 종단 간 트랜잭션을 보고 이러한 외부 발신 호출에 대한 실패를 추가로 검사할 수 있습니다.

실패 패널의 브라우저 보기.

특정 양식 작업에 대한 성능 임계값에 대한 경고를 설정할 수 있나요? 경고가 수신되면 제조업체에서 문제를 진단하고 해결할 수 있나요?

예. Application Insights에 알림을 설정하여 애플리케이션의 상태를 모니터링할 수 있습니다.