Каталог решений - Интеграция 1С и Sentry для мониторинга ошибок и расчета Apdex

Интеграция 1С и Sentry для мониторинга ошибок и расчета Apdex

Интеграция 1С и Sentry для мониторинга ошибок и расчета Apdex

В наличии

Данная статья посвящена разработке интеграции 1С и Sentry, что позволяет сделать удобнее анализ ошибок. Также имеется возможность выгрузки замеров времени из 1С для расчета Apdex с целью анализа удовлетворенности пользователей скоростью работы информационной системы. В статье разобраны основные важные моменты при разработке представленной интеграции.

Категория:

Описание

Введение

Появившаяся необходимость выгрузки ошибок из 1С в Sentry  была обусловлена потребностью удобного мониторинга ошибок и пользовательского опыта вне 1С. Такая потребность возникла у одного крупного клиента нашей компании, для которого нужно было придумать решение. Сложилась следующая ситуация: в службу технической поддержки регулярно поступали обращения с жалобами на скорость работы 1С, а в силу отсутствия мониторинга пользовательского опыта расследование инцидентов было затруднено, также нельзя было отследить динамику улучшения/ухудшения работы системы. Для решения описанных проблем был выбран Sentry.

В вопросе реализации выгрузки ошибок статья не несет глобальной новизны (все статьи по данной тематике перечислены в списке источников), но представленное решение имеет свое исполнение. Схожая и полезная статья[1] на эту тему написана Владиславом Журавским, за что автору огромная благодарность. Помимо мониторинга ошибок, Sentry предоставляет возможность расчета такого показателя, как Apdex, суть которого будет описана далее. Было решено воспользоваться, в том числе, и данным функционалом Sentry, что уже более ново в контексте интеграции 1С и Sentry (во всяком случае, по данной теме сходу материалов найти не удалось).

Рассматриваемое решение может быть неидеальным, но оно работоспособно и дает определенный функционал. В статье подробно пояснены не все тонкости разработки решения, а только наиболее важные (по мнению автора).

Что такое Sentry

Sentry — инструмент для сбора и анализа ошибок. Есть возможность указания большого количества дополнительной информации для каждой ошибки: пользователь, окружение, клиент и сервер и многое другое. Процесс создания проекта в Sentry рассматриваться не будет, как и процесс получения DSN токена, эта информация есть в статье [1].

 

Рисунок 1. Пример списка ошибок и иных сообщений в Sentry

 

На рис.1 показан пример списка ошибок (и других сообщений) в Sentry. Видно, что есть возможность настраивания фильтров для отбора нужной информации. Также уже можно заметить некоторые плюсы от использования данного инструмента. Например, указано количество возникновения каждой ошибки и количество пользователей, у которых она когда-либо возникала. 

 

Рисунок 2. Пример списка событий для расчета Apdex в Sentry

   

На данном рисунке проиллюстрирован список событий для расчета Apdex. APDEX (Application Performance Index) — это индекс производительности, который отражает, насколько пользователи удовлетворены скоростью работы информационной системы[2]. Есть возможность внутри каждого события увидеть список событий данного типа (с возможностью раскрыть информацию о конкретном событии), а также ознакомиться с графиками Apdex и длительности события в различные временные промежутки. Это продемонстрировано на рис. 3.

 

Рисунок 3. Пример списка событий конкретного вида для расчета Apdex в Sentry

   

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

 

Рисунок 4. Пример данных конкретного события для расчета Apdex в Sentry

   

На рисунке выше продемонстрированы данные, полученные для конкретного события. Указаны даты начала и окончания события в Unix формате в стандарте UTC в миллисекундах, длительность в миллисекундах, пользователь, база, версии платформы и конфигурации и т.д. Т.к. в примере использованы данные для события открытия формы списка справочника сотрудников, то у пользователя (пользователя Sentry) есть подробная информация о том, когда и у кого была открыта упомянутая форма, как быстро открылось окно и другая полезная информация.

 

Реализация интеграции на стороне 1С

Как и для большинства доработок в 1С, было принято решение воспользоваться дополнительным расширением. Главным преимуществом применения доп. расширений при доработках в 1С является отсутствие необходимости снимать основную конфигурацию с поддержки. Кроме того расширение крайне просто установить в нужную базу или несколько баз. В расширение были добавлены некоторые объекты и есть несколько заимствованных из основной конфигурации. 

Были добавлены 3 общих модуля: sentry_Синхронизацияsentry_RestApisentry_ОбщегоНазначенияСервер. Подсистема sentry_Интеграция. Роль sentry_ОсновнаяРоль для настройки прав доступа к расширению.  Общая картинка для упомянутой подсистемы. Справочник НастройкиСинхронизацииСsentry для настройки интеграции. И 3 системных перечисления: sentry_РежимыРаботыsentry_УровниЖурналаРегистрацииsentry_Окружение. Заимствованные объекты: справочник КлючевыеОперации и РС (регистр сведений) ЗамерыВремени.

Для справочника НастройкиСинхронизацииСsentry были добавлены следующие реквизиты:

  • Сервер (Строка) — хранит адрес Sentry для обмена данными;
  • Токен (Строка) — хранит токен Sentry для обмена данными;
  • НомерПроекта (Строка) — хранит идентификатор проекта Sentry для обмена данными;
  • ЗащищенноеСоединение (Булево) — признак защищенного соединения;
  • Порт (Строка) — номер порта при обмене данными;
  • ОбменЗапущен (Булево) — признак того, что обмен с Sentry запущен;
  • ИдентификаторФоновогоЗадания (УникальныйИдентификатор) — идентификатор текущего выполняемого фонового задания для данной настройки интеграции;
  • РежимРаботы (ПеречислениеСсылка.sentry_РежимыРаботы) — хранит режим работы для данной настройки. Доступны значения: ПолнаяВыгрузкаВыгрузкаЗаПериодВыгружатьТолькоНовыеПослеЗапускаОбмена;
  • НачалоПериодаЖурналРегистрации (Дата) — дата начала выгрузки данных об ошибках при режиме работы ВыгрузкаЗаПериод;
  • ОкончаниеПериодаЖурналРегистрации (Дата) — дата окончания выгрузки данных об ошибках при режиме работы ВыгрузкаЗаПериод;
  • ВыгружатьЖурналРегистрации (Булево) — признак того, необходимо выгружать ошибки;
  • ВыгружатьЗамерыВремени (Булево) — признак того, необходимо выгружать замеры времени;
  • НачалоПериодаЗамерыВремени (Дата) — дата начала выгрузки данных о замерах времени при режиме работы ВыгрузкаЗаПериод;
  • ОкончаниеПериодаЗамерыВремени (Дата) — дата окончания выгрузки данных о замерах времени при режиме работы ВыгрузкаЗаПериод;
  • Окружение (ПеречислениеСсылка.sentry_Окружение) — информация об окружении, доступные значения: Прод, СтейджТест.

Дополнительно была добавлена табличная часть с единственным реквизитом УровеньЖурналаРегистрации (ПеречислениеСсылка.sentry_УровниЖурналаРегистрации) с возможными значениями: ОшибкаПредупреждениеИнформацияПримечание. Табличная часть необходима для возможности указания пользователем типа информации выгружаемой из журнала регистрации.

Важный момент про Сервер, Токен и НомерПроекта будет раскрыт далее. Для данного справочника были созданы 3 формы: ФормаЭлементаФормаСпискаФормаВыполнениеСинхронизации. На рис. 5 продемонстрирована форма элемента справочника.

 

Рисунок 5. Форма настройки в 1С интеграции с Sentry

   

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

 

has been added to your cart:
Оформление заказа