Мониторинг Azure Digital Twins с помощью метрик, оповещений и диагностика
Azure Digital Twins интегрируется с Azure Monitor для предоставления метрик и диагностических сведений, которые можно использовать для мониторинга ресурсов Azure Digital Twins. Метрики включены по умолчанию и предоставляют сведения о состоянии ресурсов Azure Digital Twins в подписке Azure. Оповещения могут заранее уведомлять вас, когда определенные условия находятся в данных метрик. Вы также можете собирать журналы диагностики для экземпляра службы, чтобы отслеживать его производительность, доступ и другие данные.
Эти функции мониторинга помогут оценить общую работоспособность службы Azure Digital Twins и ресурсов, подключенных к нему. Их можно использовать, чтобы понять, что происходит в экземпляре Azure Digital Twins, и проанализировать первопричины проблем без необходимости обращаться к поддержка Azure.
К ней можно получить доступ из портал Azure, сгруппированную в заголовке мониторинга для ресурса Azure Digital Twins.
Оповещения и метрики
Общие сведения о просмотре метрик ресурсов Azure см. в статье "Начало работы с обозревателем метрик" в документации по Azure Monitor. Общие сведения о настройке оповещений для метрик Azure см. в статье "Создание нового правила генерации оповещений".
В остальной части этого раздела описываются метрики, отслеживаемые каждым экземпляром Azure Digital Twins, и как каждая метрика связана с общим состоянием экземпляра.
Метрики для отслеживания ограничений службы
Вы можете настроить эти метрики, чтобы контролировать, когда приближается опубликованного ограничения службы для какого-либо аспекта решения.
Чтобы настроить отслеживание, используйте функцию оповещения в Azure Monitor. Вы можете определить пороговые значения для этих метрик, чтобы получать оповещения каждый раз, когда метрика достигает определенного процента от его опубликованного ограничения.
Metric | Отображаемое имя метрики | Единица измерения | Тип агрегирования | Description | Измерения |
---|---|---|---|---|---|
TwinCount | Количество двойников (предварительная версия) | Count | Итог | Общее число двойников в экземпляре Azure Digital Twins. Используйте эту метрику, чтобы определить, приближается ли ограничение службы к максимально допустимому числу двойников для одного экземпляра. | нет |
ModelCount | Количество моделей (предварительная версия) | Count | Итог | Общее число моделей в экземпляре Azure Digital Twins. Используйте эту метрику, чтобы определить, приближается ли ограничение службы к максимально допустимому числу моделей для одного экземпляра. | нет |
Метрики запросов API
Метрики, относящиеся к запросам API:
Metric | Отображаемое имя метрики | Единица измерения | Тип агрегирования | Description | Измерения |
---|---|---|---|---|---|
ApiRequests | Запросы к API | Count | Итог | Количество запросов API, выполненных для операций чтения, записи, удаления и запроса для цифровых двойников. | Аутентификация Операция Протокол Код состояния, Класс кода состояния, текст состояния |
ApiRequestsFailureRate | Частота сбоев запросов API | Процент | По средней | Процент запросов API, получаемых службой для экземпляра, который дает код ответа внутренней ошибки (500) для операций чтения, записи, удаления и выполнения запросов Digital Twins. | Аутентификация Операция Протокол Код состояния, Класс кода состояния, текст состояния |
ApiRequestsLatency | Задержка запросов API | Миллисекунды | По средней | Время отклика для запросов API, т. е. Это значение относится ко времени с момента получения запроса в Azure Digital Twins, до отправки службой успешного/неуспешного результата выполнения операций чтения, записи, удаления и запроса в Digital Twins. | Аутентификация Операция Протокол |
Метрики выставления счетов
Метрики, относящиеся к выставлению счетов:
Metric | Отображаемое имя метрики | Единица измерения | Тип агрегирования | Description | Измерения |
---|---|---|---|---|---|
BillingApiOperations | Операции API выставления счетов | Count | Итог | Метрика выставления счетов для всех запросов API, выполненных к службе Azure Digital Twins. | Идентификатор измерения |
BillingMessagesProcessed | Обработано сообщений о выставлении счетов | Count | Итог | Метрика выставления счетов для количества сообщений, отправленных из Azure Digital Twins во внешние конечные точки. Чтобы считаться одним сообщением о выставлении счетов, размер полезной нагрузки должна превышать 1 КБ. Полезные нагрузки, превышающие это значение, будут считаться дополнительными сообщениями с шагом в 1 КБ (таким образом, сообщение размером от 1 до 2 КБ будет считаться 2 сообщениями, от 2 до 3 КБ – 3 сообщениями и т. д.). Это ограничение также применяется к ответам, например, вызов, который возвращает 1,5 КБ в тексте ответа, будет тарифицироваться как 2 операции. |
Идентификатор измерения |
BillingQueryUnits | Единицы запросов для выставления счетов | Count | Итог | Количество единиц запросов, внутреннее измерение потребления ресурсов службы, использованных для выполнения запросов. Также доступно вспомогательное приложение API для измерения единиц запросов: QueryChargeHelper Class | Идентификатор измерения |
Дополнительные сведения о том, как выставляются счета за использование Azure Digital Twins, см. в статье Цены на службу Azure Digital Twins.
Метрики входящих данных
Метрики, относящиеся ко входным данным:
Metric | Отображаемое имя метрики | Единица измерения | Тип агрегирования | Description | Измерения |
---|---|---|---|---|---|
IngressEvents | Входящие события | Count | Итог | Количество входящих событий телеметрии устройства в Azure Digital Twins. | Результат |
IngressEventsFailureRate | Частота сбоев входящих событий | Процент | По средней | Процент входящих событий телеметрии устройства, для которых служба возвращает код ответа внутренней ошибки (500). | Результат |
IngressEventsLatency | Задержка событий входящих данных | Миллисекунды | По средней | Время с момента, когда происходит событие, до момента, когда оно будет готово к передаче в Azure Digital Twins, и в этом случае служба отправляет результат успешного выполнения или сбоя. | Результат |
Метрики массовых операций (из API заданий)
Метрики с массовыми операциями из API заданий:
Metric | Отображаемое имя метрики | Единица измерения | Тип агрегирования | Description | Измерения |
---|---|---|---|---|---|
ImportJobLatency | Импорт задержки задания | Миллисекунды | По средней | Общее время выполнения задания импорта. | Операция Аутентификация Протокол |
ImportJobEntityCount | Импорт числа сущностей задания | Count | Итог | Количество двойников, моделей или связей, обрабатываемых заданием импорта. | Операция Результат |
DeleteJobLatency | Удаление задержки задания | Миллисекунды | По средней | Общее время завершения задания удаления. | Операция Аутентификация Протокол |
DeleteJobEntityCount | Удаление числа сущностей задания | Count | Итог | Количество моделей, двойников и /или связей, удаленных в рамках задания удаления. | Операция Результат |
Метрики маршрутизации
Метрики, относящиеся к маршрутизации:
Metric | Отображаемое имя метрики | Единица измерения | Тип агрегирования | Description | Измерения |
---|---|---|---|---|---|
MessagesRouted | Направленные сообщения | Count | Итог | Число сообщений, направляемых в службу конечной точки Azure, такую как Центры событий, Служебная шина или Сетка событий. | Тип конечной точки, Результат |
RoutingFailureRate | RoutingFailureRate | Процент | По средней | Процент событий, которые приводят к ошибке при маршрутизации из Azure Digital Twins в конечную точку службы Azure, например Центров событий, служебная шина или сетки событий. | Тип конечной точки, Результат |
RoutingLatency | Задержка маршрутизации | Миллисекунды | По средней | Время, прошедшее между событием, перенаправленным из Azure Digital Twins в службу конечной точки Azure, например Центры событий, служебная шина или сетку событий. | Тип конечной точки, Результат |
Измерения метрик
Измерения помогают определить дополнительные сведения о метриках. Некоторые метрики маршрутизации предоставляют сведения для каждой конечной точки. В таблице ниже перечислены возможные значения для этих измерений.
Измерение | Значения |
---|---|
Проверка подлинности | OAuth |
Операция (для запросов API) | Microsoft.DigitalTwins/digitaltwins/delete, Microsoft.DigitalTwins/digitaltwins/write, Microsoft.DigitalTwins/digitaltwins/read Microsoft.DigitalTwins/eventroutes/read, Microsoft.DigitalTwins/eventroutes/write, Microsoft.DigitalTwins/eventroutes/delete, Microsoft.DigitalTwins/models/read, Microsoft.DigitalTwins/models/write, Microsoft.DigitalTwins/models/delete, Microsoft.DigitalTwins/query/action |
Тип конечной точки | Сетка событий, Центры событий, Cлужебная шина |
Протокол | HTTPS |
Результат | Успех Сбой |
Код состояния | 200, 404, 500 и т. д. |
Класс кода состояния | 2xx, 4xx, 5xx и т. д. |
текст состояния | "Внутренняя ошибка сервера", "Не найдено" и т. д. |
Раздел "Журналы диагностики"
Общие сведения о параметрах Azure диагностика, включая их включение, см. в разделе "Параметры диагностики" в Azure Monitor. Сведения о запросе журналов диагностики с помощью Log Analytics см. в разделе "Обзор Log Analytics" в Azure Monitor.
В остальной части этого раздела описываются категории журналов диагностики, которые Azure Digital Twins могут собирать, и их схемы.
Категории журналов
Ниже приведены подробные сведения о категориях журналов, собираемых Azure Digital Twins.
Категория журнала | Description |
---|---|
ADTModelsOperation | Регистрируют все вызовы API, связанные с моделями |
ADTQueryOperation | Регистрируют все вызовы API, связанные с запросами |
ADTEventRoutesOperation | Регистрировать все вызовы API, связанные с маршрутами событий и исходящими событиями из Azure Digital Twins в конечную точку, например "Сетка событий", "Центры событий" и служебная шина |
ADTDigitalTwinsOperation | Регистрируют все вызовы API, связанные с отдельными цифровыми двойниками |
Каждая категория журнала состоит из операций "write" (запись), "read" (чтение), "delete" (удаление) и "action" (действие). Эти категории сопоставляются с вызовами REST API следующим образом:
Тип события | Операции REST API |
---|---|
Write | PUT и PATCH |
Прочитано | GET |
Удалить | DELETE |
Действие | POST |
Ниже приведен полный список операций и соответствующих вызовов REST API Azure Digital Twins REST API calls, которые регистрируются в каждой категории.
Примечание.
Каждая категория журнала содержит несколько операций или вызовов REST API. В приведенной ниже таблице каждая категория журналов сопоставляется со всеми операциями/вызовами REST API, находящимися под ней, только после этого приводится следующая категория журнала.
Категория журнала | Операция | Вызовы REST API и другие события |
---|---|---|
ADTModelsOperation | Microsoft.DigitalTwins/models/write | API обновления моделей цифровых двойников |
Microsoft.DigitalTwins/models/read | API получения моделей цифровых двойников по идентификаторам и спискам | |
Microsoft.DigitalTwins/models/delete | API удаления моделей цифровых двойников | |
Microsoft.DigitalTwins/models/action | API добавления моделей цифровых двойников | |
ADTQueryOperation | Microsoft.DigitalTwins/query/action | API запроса цифровых двойников |
ADTEventRoutesOperation | Microsoft.DigitalTwins/eventroutes/write | API добавления маршрутов событий |
Microsoft.DigitalTwins/eventroutes/read | API получения маршрутов событий по идентификаторам и спискам | |
Microsoft.DigitalTwins/eventroutes/delete | API удаления маршрутов событий | |
Microsoft.DigitalTwins/eventroutes/action | Сбой при попытке публикации событий в службе конечной точки (не вызов API) | |
ADTDigitalTwinsOperation | Microsoft.DigitalTwins/digitaltwins/write | Добавление цифровых двойников, добавление связи, обновление, обновление компонента |
Microsoft.DigitalTwins/digitaltwins/read | Получение цифровых двойников по идентификатору, получение компонента, получение связи по идентификатору, списка входящих связей, списка связей | |
Microsoft.DigitalTwins/digitaltwins/delete | Удаление цифровых двойников, удаление связи | |
Microsoft.DigitalTwins/digitaltwins/action | Отправка данных телеметрии компонента цифровых двойников, отправка данных телеметрии |
Схемы журналов
Каждая категория имеет схему, определяющую, как направляются отчеты о событиях в этой категории. Каждая отдельная запись журнала хранится как текст, а также в формате большого двоичного объекта JSON. Ниже для каждого типа журнала представлены поля в журнале и примеры тела JSON.
ADTDigitalTwinsOperation
, ADTModelsOperation
и ADTQueryOperation
используют согласованную схему журналов API. В ADTEventRoutesOperation
схема расширена, в своих свойствах она содержит поле endpointName
.
Схемы журналов API
Эта схема журнала является согласованной для ADTDigitalTwinsOperation
, ADTModelsOperation
, ADTQueryOperation
. Эта же схема также используется ADTEventRoutesOperation
для , кроме Microsoft.DigitalTwins/eventroutes/action
имени операции (дополнительные сведения об этой схеме см. в следующем разделе: схемы журналов исходящего трафика).
Схема содержит сведения, относящиеся к вызовам API для экземпляра Azure Digital Twins.
Ниже приведены описания полей и свойств для журналов API.
Имя поля | Тип данных | Description |
---|---|---|
Time |
Дата/время | Дата и время, когда произошло событие, в формате UTC |
ResourceId |
Строка | Идентификатор ресурса Azure Resource Manager для ресурса, в котором произошло событие |
OperationName |
Строка | Тип действия, выполняемого во время события |
OperationVersion |
Строка | Версия API, используемая во время события |
Category |
Строка | Тип создаваемого ресурса |
ResultType |
Строка | Результат события |
ResultSignature |
Строка | Код состояния HTTP для события |
ResultDescription |
Строка | Дополнительные сведения о событии |
DurationMs |
Строка | Время, затраченное на выполнение события, в миллисекундах |
CallerIpAddress |
Строка | Маскированный исходный IP-адрес для события |
CorrelationId |
GUID | Уникальный идентификатор события |
ApplicationId |
GUID | Идентификатор обращения, используемый в носителе при авторизации |
Level |
Int | Степень серьезности события заносимого в журнал |
Location |
Строка | Регион, в котором произошло событие |
RequestUri |
URI-адрес | Версия конечной точки, используемая во время события |
TraceId |
Строка | TraceId как часть контекста трассировки W3C. Идентификатор всей трассировки, используемой для уникальной идентификации распределенной трассировки между системами. |
SpanId |
Строка | SpanId как часть контекста трассировки W3C. Идентификатор этого запроса в трассировке. |
ParentId |
Строка | ParentId как часть контекста трассировки W3C. Запрос без родительского идентификатора является корнем трассировки. |
TraceFlags |
Строка | TraceFlags как часть контекста трассировки W3C. управляет флагами трассировки, такими как выборка, уровень трассировки и т. д. |
TraceState |
Строка | TraceState как часть контекста трассировки W3C. Дополнительные сведения от поставщика об идентификации трассировки, для охвата различных распределенных систем трассировки. |
Ниже приведены примеры с телом JSON для таких типов журналов.
ADTDigitalTwinsOperation
{
"time": "2020-03-14T21:11:14.9918922Z",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
"operationName": "Microsoft.DigitalTwins/digitaltwins/write",
"operationVersion": "2020-10-31",
"category": "DigitalTwinOperation",
"resultType": "Success",
"resultSignature": "200",
"resultDescription": "",
"durationMs": 8,
"callerIpAddress": "13.68.244.*",
"correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"level": "4",
"location": "southcentralus",
"uri": "https://myinstancename.api.scus.digitaltwins.azure.net/digitaltwins/factory-58d81613-2e54-4faa-a930-d980e6e2a884?api-version=2020-10-31",
"properties": {},
"traceContext": {
"traceId": "95ff77cfb300b04f80d83e64d13831e7",
"spanId": "b630da57026dd046",
"parentId": "9f0de6dadae85945",
"traceFlags": "01",
"tracestate": "k1=v1,k2=v2"
}
}
ADTModelsOperation
{
"time": "2020-10-29T21:12:24.2337302Z",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
"operationName": "Microsoft.DigitalTwins/models/write",
"operationVersion": "2020-10-31",
"category": "ModelsOperation",
"resultType": "Success",
"resultSignature": "201",
"resultDescription": "",
"durationMs": "80",
"callerIpAddress": "13.68.244.*",
"correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"level": "4",
"location": "southcentralus",
"uri": "https://myinstancename.api.scus.digitaltwins.azure.net/Models?api-version=2020-10-31",
"properties": {},
"traceContext": {
"traceId": "95ff77cfb300b04f80d83e64d13831e7",
"spanId": "b630da57026dd046",
"parentId": "9f0de6dadae85945",
"traceFlags": "01",
"tracestate": "k1=v1,k2=v2"
}
}
ADTQueryOperation
{
"time": "2020-12-04T21:11:44.1690031Z",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
"operationName": "Microsoft.DigitalTwins/query/action",
"operationVersion": "2020-10-31",
"category": "QueryOperation",
"resultType": "Success",
"resultSignature": "200",
"resultDescription": "",
"durationMs": "314",
"callerIpAddress": "13.68.244.*",
"correlationId": "cccc2222-dd33-4444-55ee-666666ffffff",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"level": "4",
"location": "southcentralus",
"uri": "https://myinstancename.api.scus.digitaltwins.azure.net/query?api-version=2020-10-31",
"properties": {},
"traceContext": {
"traceId": "95ff77cfb300b04f80d83e64d13831e7",
"spanId": "b630da57026dd046",
"parentId": "9f0de6dadae85945",
"traceFlags": "01",
"tracestate": "k1=v1,k2=v2"
}
}
ADTEventRoutesOperation
Ниже приведен пример текста JSON для ADTEventRoutesOperation
Microsoft.DigitalTwins/eventroutes/action
типа (дополнительные сведения об этой схеме см. в следующем разделе: схемы журналов исходящего трафика).
{
"time": "2020-10-30T22:18:38.0708705Z",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
"operationName": "Microsoft.DigitalTwins/eventroutes/write",
"operationVersion": "2020-10-31",
"category": "EventRoutesOperation",
"resultType": "Success",
"resultSignature": "204",
"resultDescription": "",
"durationMs": 42,
"callerIpAddress": "212.100.32.*",
"correlationId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"level": "4",
"location": "southcentralus",
"uri": "https://myinstancename.api.scus.digitaltwins.azure.net/EventRoutes/egressRouteForEventHub?api-version=2020-10-31",
"properties": {},
"traceContext": {
"traceId": "95ff77cfb300b04f80d83e64d13831e7",
"spanId": "b630da57026dd046",
"parentId": "9f0de6dadae85945",
"traceFlags": "01",
"tracestate": "k1=v1,k2=v2"
}
},
Схемы журналов исходящего трафика
В следующем примере представлена схема для журналов ADTEventRoutesOperation
, характерных для имени операции Microsoft.DigitalTwins/eventroutes/action
. Такие журналы содержат подробные сведения об исключениях и операциях API, связанных с конечными точками исходящего трафика, которые подключены к экземпляру Azure Digital Twins.
Имя поля | Тип данных | Description |
---|---|---|
Time |
Дата/время | Дата и время, когда произошло событие, в формате UTC |
ResourceId |
Строка | Идентификатор ресурса Azure Resource Manager для ресурса, в котором произошло событие |
OperationName |
Строка | Тип действия, выполняемого во время события |
Category |
Строка | Тип создаваемого ресурса |
ResultDescription |
Строка | Дополнительные сведения о событии |
CorrelationId |
GUID | Уникальный идентификатор для события, предоставленный пользователем |
ApplicationId |
GUID | Идентификатор обращения, используемый в носителе при авторизации |
Level |
Int | Степень серьезности события заносимого в журнал |
Location |
Строка | Регион, в котором произошло событие |
TraceId |
Строка | TraceId как часть контекста трассировки W3C. Идентификатор всей трассировки, используемой для уникальной идентификации распределенной трассировки между системами. |
SpanId |
Строка | SpanId как часть контекста трассировки W3C. Идентификатор этого запроса в трассировке. |
ParentId |
Строка | ParentId как часть контекста трассировки W3C. Запрос без родительского идентификатора является корнем трассировки. |
TraceFlags |
Строка | TraceFlags как часть контекста трассировки W3C. управляет флагами трассировки, такими как выборка, уровень трассировки и т. д. |
TraceState |
Строка | TraceState как часть контекста трассировки W3C. Дополнительные сведения от поставщика об идентификации трассировки, для охвата различных распределенных систем трассировки. |
EndpointName |
Строка | Имя конечной точки исходящего трафика, созданной в Azure Digital Twins |
Ниже приведен пример тела JSON для ADTEventRoutesOperation
, принадлежащего к типу Microsoft.DigitalTwins/eventroutes/action
.
{
"time": "2020-11-05T22:18:38.0708705Z",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
"operationName": "Microsoft.DigitalTwins/eventroutes/action",
"operationVersion": "",
"category": "EventRoutesOperation",
"resultType": "",
"resultSignature": "",
"resultDescription": "Unable to send EventHub message to [myPath] for event Id [f6f45831-55d0-408b-8366-058e81ca6089].",
"durationMs": -1,
"callerIpAddress": "",
"correlationId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"level": "4",
"location": "southcentralus",
"uri": "",
"properties": {
"endpointName": "myEventHub"
},
"traceContext": {
"traceId": "95ff77cfb300b04f80d83e64d13831e7",
"spanId": "b630da57026dd046",
"parentId": "9f0de6dadae85945",
"traceFlags": "01",
"tracestate": "k1=v1,k2=v2"
}
},
Следующие шаги
Дополнительные сведения об Azure Monitor и ее возможностях см. в документации по Azure Monitor.