Мониторинг 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.

Screenshot of the Azure portal showing the Monitoring options.

Оповещения и метрики

Общие сведения о просмотре метрик ресурсов 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, например Центры событий, служебная шина или сетку событий. Тип конечной точки,
Результат

Измерения метрик

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

Измерение Values
Проверка подлинности 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
Запись PUT и PATCH
Прочитано GET
DELETE 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/BBED119E-28B8-454D-B25E-C990C9430C8F/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": "2f6a8e64-94aa-492a-bc31-16b9f0b16ab3",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "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/BBED119E-28B8-454D-B25E-C990C9430C8F/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": "9dcb71ea-bb6f-46f2-ab70-78b80db76882",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "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/BBED119E-28B8-454D-B25E-C990C9430C8F/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": "1ee2b6e9-3af4-4873-8c7c-1a698b9ac334",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "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 для ADTEventRoutesOperationMicrosoft.DigitalTwins/eventroutes/action типа (дополнительные сведения об этой схеме см. в следующем разделе: схемы журналов исходящего трафика).

  {
    "time": "2020-10-30T22:18:38.0708705Z",
    "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/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": "7f73ab45-14c0-491f-a834-0827dbbf7f8e",
    "identity": {
      "claims": {
        "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
      }
    },
    "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/BBED119E-28B8-454D-B25E-C990C9430C8F/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": "7f73ab45-14c0-491f-a834-0827dbbf7f8e",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "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.