Поделиться через


События телеметрии для синхронизации и действий мобильных приложений

Данные мобильных приложений Power Apps, связанные с событиями автономной синхронизации, доступны для приложений на основе модели и приложений на основе холста. Эти данные можно использовать для оценки работоспособности и производительности событий автономной синхронизации для вашей организации.

Эти данные попадают в таблицу Power Apps>Синхронизация и действия мобильного приложения в Application Insights. Запись регистрируется, когда пользователь обращается к мобильному приложению Power Apps, настроенному для автономного режима. Дополнительные данные, связанные с событиями сбоев в приложениях на основе модели, доступны в Power Apps>UCI.

Определения событий синхронизации и действий мобильного приложения

  • id: идентификатор события.
  • target: имя сценария, отслеживаемого событием.
  • type: исходная таблица события.
  • name: имя сценария, отслеживаемого событием.
  • duration: длительность сценария в миллисекундах. Длительность может включать длительные периоды времени, когда приложение неактивно.
  • operation_Id: уникальный идентификатор для сеанса.
  • operation_ParentId: уникальный идентификатор для сценария, отслеживаемого событием.
  • user_Id: идентификатор пользователя Microsoft Entra.
  • application_Version: версия приложения.
  • customDimensions: содержит следующие атрибуты:
    • "EventName": сводка сценария, отслеживаемого событием (ScenarioEnd).
    • "ScenarioResult": УСПЕХ или СБОЙ.
    • ErrorCode: код ошибки, создаваемый при сбое синхронизации. Дополнительные сведения см. в разделе Таблица сопоставления кодов ошибок.
    • ErrorMessage: пустое значение при успешном выполнении или строка, описывающая ошибку.
    • FailureType: определяет тип сбоя синхронизации.
    • LogLevel: уровень серьезности или отчетности события. Допустимые значения: info (информация), error (ошибка), warning (предупреждение), error (ошибка) или verbose (подробно).
    • DataSyncMode: тип автономной синхронизации, с которой столкнулся пользователь.
      • DELTA_SYNC: автоматическая инкрементная синхронизация.
      • GRID_SYNC: вызывается обновлением в представлении сетки.
      • FIRST_SYNC: начальная синхронизация на устройстве (или после выхода/перенастройки).
      • FORCED_SYNC: срабатывает при нажатии кнопки на странице «Состояние устройства».
      • SINGLE_RECORD_SYNC: запускается Push-уведомлением.
    • AppFlavor: нативное приложение, установленное на устройствах. Допустимыми значениями являются FieldService и PowerApps.
    • AppInfo_Version: версия нативного приложения, как отображается в магазине приложений.
    • ActiveDuration: длительность сценария в миллисекундах, включая только время, пока приложение активно.
    • DeviceInfo_Id: уникальный идентификатор устройства.
    • DeviceInfo_model: модель устройства (например, iPhone 13).
    • DeviceInfo_make: марка устройства (например, Apple).
    • DeviceInfo_OsName: операционная система устройства (например Android).
    • DeviceInfo_OsVersion: версия операционной системы устройства (например Android 13).
    • Loc_country: источник устройства телеметрии.
    • eventContext: содержит следующие свойства:
      • CurrentSyncId: идентификатор успешного прохода синхронизации. Сбрасывается после каждой успешной синхронизации. (Он не сбрасывается после ошибки.)
      • CurrentActivityId: идентификатор прохода синхронизации. Сбрасывается после каждой синхронизации.
      • entityName: имя таблицы в событиях загрузки данных.
      • ProfileId: идентификатор автономного профиля, настроенного для приложения и пользователя.
      • RecordCount: количество загруженных записей.
      • ResponseSize: размер входящих полезных данных, сообщаемый HTTPClient (сжатый размер).
      • ContentLength: размер входящих полезных данных, сообщаемый HTTPClient (сжатый размер).

События сбоя единого интерфейса клиента

  • timestamp [UTC]: когда произошло событие.
  • problemId: "uci_trace" или "uciMonitorFailure" (Откуда взяты данные.)
  • type: "uci_trace" или "uciMonitorFailure" (Откуда взяты данные.)
  • outType: "uci_trace" или "uciMonitorFailure" (Откуда взяты данные.)
  • outerMessage: сообщение об ошибке.
  • itemType: "исключение"
  • CustomDimensions:
    • eventContext: дополнительные сведения, связанные с ошибкой.
    • ServerConnectivityState: пользователь находится в автономном режиме? (Автономный режим/в сети)
    • NetworkConnectivityState: есть ли у пользователя подключение к Интернету? Обратите внимание, что пользователь может находиться в автономном режиме, но иметь подключение к Интернету.
    • IsOfflineByDefaultApp: если false, это означает, что функция Работа в автономном режиме включена. Если значение равно true, это означает, что включен параметр Сначала в автономном режиме.
    • callStack: программный код, в котором произошла ошибка.
    • hostSubType: "PowerApps-Player-iOS-fieldservice"
    • hostType: "MobileApplication"
  • Operation_ID: конкатенация строки sessionID, за которой следует "_" и идентификатор внешней корреляции, например, e11e8465-bc8f-4319-b64a-9c1e42453148_0da90a33-ad68-4a4e-bd45-5728d5da719a.
  • Operation_ParentID: идентификатор действия, связанного с ошибкой.
  • SessionId: идентификатор сеанса ошибки.
  • UserId: идентификатор пользователя Dynamics 365.
  • User_authenticatedID: идентификатор пользователя Dynamics 365.
  • Application_version: dерсия приложения, например, 9.2.24045.00212.
  • Client_Type: версия операционной системы, например iOS или Android.

Примеры сценариев

Сбои автономной синхронизации по коду ошибки

Этот запрос позволяет узнать, с какими типами сбоев сталкиваются работники передней линии при сбое синхронизации. Исключение составляют некоторые сбои, например, если мобильное приложение закрыто во время синхронизации или если сеть отключается во время синхронизации и не позволяет завершить синхронизацию. Определение кодов сбоев приведено в таблице сопоставления кодов ошибок.

dependencies
| where name == "Offline.SyncDatabase"
| where success == false
| extend cd = parse_json(customDimensions)
| extend AppVersion = tostring(cd.AppInfo_Version)
| extend ErrorCode = tostring(cd.ErrorCode)
| extend ErrorMessage = tostring(cd.ErrorMessage)
| extend FailureType = tostring(cd.FailureType)
| summarize dcount(user_Id), count() by ErrorCode, ErrorMessage, FailureType, bin(timestamp, 1d)

Обычные записи, синхронизированные по таблице

Этот запрос позволяет оценить, какие таблицы вносят больше всего записей в синхронизацию. Используя эти данные, можно попытаться дополнительно оптимизировать автономный профиль , чтобы уменьшить количество записей или данных в каждой таблице.

dependencies
| where name endswith_cs "Offline.DdsClient.GetRecords"
| extend cd = parse_json(customDimensions)
| extend ec = parse_json(tostring(cd.eventContext))
| extend RecordCount = toint(ec.RecordCount)
| extend EntityName = tostring(ec.EntityName)
| extend syncid = tostring(ec.CurrentSyncId)
| extend DataSyncMode = tostring(cd.DataSyncMode)
//| where DataSyncMode == "FIRST_SYNC" //This is used to pivot on the type of sync being executed.
| summarize sum(RecordCount) by syncid, EntityName, DataSyncMode, user_Id
| summarize percentile(sum_RecordCount, 50), arg_max(sum_RecordCount, user_Id), count() by EntityName, DataSyncMode

Средняя длительность синхронизации по режиму синхронизации

Этот запрос позволяет оценить среднюю длительность синхронизации для пользователей в организации.

dependencies
| where name == "Offline.SyncDatabase"
| extend cd = parse_json(customDimensions)
| extend ActiveDuration = toint(tostring(cd.ActiveDuration))
| extend WithBackgroundTime = duration
| extend DataSyncMode = tostring(cd.DataSyncMode)
| summarize percentile(ActiveDuration, 50), percentile(WithBackgroundTime, 50) by client_Type, DataSyncMode

Синхронизация сведений по пользователям

Этот запрос предоставляет представление синхронизации для каждого пользователя, включая дату последней синхронизации, последнюю ошибку, продолжительность синхронизации и синхронизированные записи.

dependencies
| where name == "Offline.SyncDatabase"
| extend cd = parse_json(customDimensions)
| extend ActiveDuration = toint(tostring(cd.ActiveDuration))
| extend WithBackgroundTime = duration
| extend DataSyncMode = tostring(cd.DataSyncMode)
| extend ErrorMessage = tostring(cd.ErrorMessage)
| summarize percentile(ActiveDuration, 50), percentile(WithBackgroundTime, 50), arg_max(timestamp, ErrorMessage), countif(success == false) by user_Id, DataSyncMode

Пользователи по типу устройства и версии приложения

Этот запрос предоставляет дополнительные сведения о пользователях в организации, которые обращаются к мобильному приложению на своей модели устройства.

dependencies
| where name == "Offline.SyncDatabase"
| extend cd = parse_json(customDimensions)
| extend AppVersion = tostring(cd.AppInfo_Version)
| summarize dcount(user_Id) by AppVersion, client_Type

Сопоставление кодов ошибок

Код ошибки Тип сбоя Определение
-2146864604 CONFIG_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2146864606 CONFIG_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2146864607 CONFIG_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2146864608 CONFIG_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2146869250 CONFIG_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147015328 ACCESS_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147088248 CONFIG_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147155198 ОШИБКА Коды ошибок, начинающиеся с –214, см. в разделе Коды ошибок веб-служб.
-2147155198 ACCESS_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147167669 ACCESS_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147180269 ACCESS_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147180284 ACCESS_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147187375 ОШИБКА Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147187388 ОШИБКА Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147187389 ОШИБКА Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147204270 ОШИБКА Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147204339 ОШИБКА Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147204784 ОШИБКА Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147209463 ACCESS_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147217124 ОШИБКА Коды ошибок, начинающиеся с –214, см. в разделе Коды ошибок веб-служб.
-2147220884 ОШИБКА Коды ошибок, начинающиеся с –214, см. в разделе Коды ошибок веб-служб.
-2147220955 ACCESS_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147220956 EXTERNAL_ERROR Коды ошибок, начинающиеся с –214, см. в разделе Коды ошибок веб-служб.
-2147220960 ACCESS_ERROR Ошибка конфигурации приложения или пользователя. См. раздел Коды ошибок веб-службы.
-2147220970 ОШИБКА Коды ошибок, начинающиеся с –214, см. в разделе Коды ошибок веб-служб.
-2147220989 ОШИБКА Коды ошибок, начинающиеся с –214, см. в разделе Коды ошибок веб-служб.
-50 ОШИБКА Внутренняя ошибка.
0 ОШИБКА Неизвестная ошибка.
2000 ОШИБКА Несопоставленная ошибка.
2002 ОШИБКА Истекло время ожидания Dataverse SQL.
2003 DATABASE_ERROR Ошибка базы данных.
2004 NETWORK_ERROR Ошибка сети.
2005 SERVER_ERROR Ошибка сервера.
2006 AUTH_ERROR Ошибка проверки подлинности.
2007 DEVICE_ERROR Ошибка "Диск заполнен".
2008 ОШИБКА Внутренняя ошибка.
2009 AUTH_ERROR Ошибка проверки подлинности.
2011 CONFIG_ERROR Ошибка привилегий модуля приложения.
2016 CONFIG_ERROR Ошибка конфигурации автономного режима.
2017 CONFIG_ERROR Ошибка конфигурации профиля автономного режима.
3000 EXPECTED_ERROR Внутреннее событие синхронизации.
3003 CONFIG_ERROR Ошибка конфигурации профиля автономного режима.