Перейти к основному содержимому

Метрики процесса интеграции

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

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

Метрики могут быть параметризованными. В таком случае подсчет одной метрики производится одновременно для разных значений параметра. Например, если параметр – расширение файла, тогда метрика считается отдельно для каждого расширения (сколько было в формате .doc, сколько в формате .txt и т. п.). Параметров метрики может быть несколько. Например: имя узла и расширение файла (сколько в данном узле было файлов в формате .doc, сколько в формате .txt и т. п.).

Примеры других задач, которые можно решить с помощью метрик:

  • узнать, сколько сообщений прошло через каждый конкретный узел;
  • узнать количество сообщений, пришедших из HTTP-источника с кодом ответа 200;
  • узнать число файлов, полученных в узле типа ФайлНазначение, в зависимости от расширения;
  • узнать, сколько сообщений было модифицировано в конкретном трансляторе.

Вкладка «Метрики»

Значения предустановленных метрик, которые показываются в пользовательском интерфейсе «1С:Шины», можно получить из встроенного языка, однако изменять их параметры нельзя.

Предопределенные метрики

Ниже перечислены предопределенные метрики.

Счетчик недоставленных сообщений в узлах схемы

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

Параметры: имя узла, в котором увеличилась метрика.

Доступ к метрике из встроенного языка: ИмяПроцессаИнтеграции.СчетчикНедоставленныхСообщенийУзлов.

Счетчик сообщений в файловых узлах

Метрика показывает, сколько сообщений прошло через каждый файловый узел на схеме.

Параметры: имя узла, в котором увеличилась метрика.

Доступ к метрике из встроенного языка: ИмяПроцессаИнтеграции.СчетчикСообщенийФайловыхУзлов.

Счетчик измененных сообщений в трансляторе

Метрика показывает, сколько сообщений было изменено в каждом узле вида «Транслятор».

Параметры: имя узла, в котором увеличилась метрика.

Доступ к метрике из встроенного языка: ИмяПроцессаИнтеграции.СчетчикИзмененныхСообщенийТрансляторов.

Счетчик сообщений в узлах Http

Метрика показывает, сколько сообщений прошло через каждый «Http»-узел на схеме.

Параметры: имя узла, в котором увеличилась метрика, и код ответа.

Доступ к метрике из встроенного языка: ИмяПроцессаИнтеграции.СчетчикСообщенийHttpУзлов.

Счетчик ошибок в элементах схемы

Метрика показывает, сколько ошибок произошло в каждом элементе схемы.

Параметры: элемент схемы, в котором произошла ошибка.

Доступ к метрике из встроенного языка: ИмяПроцессаИнтеграции.СчетчикОшибок.

Счетчик сообщений в узлах

Метрика показывает, сколько сообщений прошло через каждый узел схемы.

Параметры: имя узла, в котором увеличилась метрика.

Доступ к метрике из встроенного языка: ИмяПроцессаИнтеграции.СчетчикСообщенийУзлов.

Счетчик сообщений узлов после старта процесса

Метрика показывает, сколько сообщений прошло через узел с момента запуска процесса. При перезапуске процесса значение метрики обнуляется.

Параметры: имя узла, в котором увеличилась метрика.

Доступ к метрике из встроенного языка: ИмяПроцессаИнтеграции.СчетчикСообщенийУзловПослеСтартаПроцесса.

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

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

Пример процесса интеграции

Сообщения отправляются из узла FtpИсточник, преобразовываются в трансляторе и сохраняются в файл нужному участнику процесса интеграции. Для каждого получателя вы можете подсчитать общий размер файлов, отправленных ему из узла ФайлНазначение. Чтобы это сделать, следует создать новую метрику.

  1. В навигаторе проекта кликните на значок плюса рядом с элементом проекта вида Процесс Интеграции и выберите Метрика:

    Создание метрики процесса интеграции

  2. Задайте имя метрики (в примере — «РазмерФайлов») и нажмите Ввод. Новая метрика отобразится в навигаторе проекта:

    Отображение новой метрики в навигаторе проекта

  3. Так как необходимо подсчитывать размер файлов для каждого участника индивидуально, метрике следует добавить параметр «КодУчастника». Чтобы добавить параметр, нажмите на значок плюса рядом с метрикой и выберите Параметр:

    Создание параметра метрики

  4. Задайте имя параметра (в примере — «КодУчастника») и нажмите Ввод. Параметр отобразится в навигаторе проекта:

    Отображение параметра метрики в навигаторе проекта

  5. Следующим шагом в узле ФайлНазначение, в свойстве ОбновлениеМетрик, следует указать имя обработчика, в котором будет происходить обновление пользовательской метрики. Для этого выделите узел ФайлНазначение и в панели свойств, в свойстве ОбновлениеМетрик, кликните на иконку лупы:

    Создание обработчика для обновления пользовательской метрики

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

    метод ФайлНазначениеОбновлениеМетрик(Контекст: ИнтеграцияСистем.КонтекстВызова, Сообщение: ИнтеграцияСистем.Сообщение)
    знч КодУчастника = Контекст.Участник.Код
    знч РазмерТела = Сообщение.ПолучитьТелоКакПоток().ПрочитатьКакБайты().Размер().ВБайтах()
    ИнтеграцияСистем.Метрики.РазмерФайлов.Увеличить(КодУчастника = КодУчастника, ЗначениеУвеличения = РазмерТела)
    ;

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