События телеметрии для синхронизации и действий мобильных приложений
Данные мобильных приложений 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 | Ошибка конфигурации профиля автономного режима. |