Автоматический мониторинг ошибок¶
Ошибки, возникающие при работе приложения, регистрируются в журналах:
-
ошибки при выполнении смарт-автоматизаций — в Журнале выполнения автоматизаций,
-
ошибки в работе почты — Журнале сессий почтовых джобов,
-
другие ошибки — в общем Журнале ошибок.
ℹ️ Логирование смарт-автоматизаций зависит от Общих настроек приложения.
Для эффективного администрирования мы рекомендуем настроить автоматический мониторинг повторяющихся ошибок с помощью смарт-расписаний.
Порядок действий¶
1. В БД приложения "Первая Форма" выполните файл1 и файл2 (при необходимости предварительно измените название БД). При этом в БД будут созданы две функции, которые будут выделять в журналах три самые часто повторяющиеся ошибки за день:
-
tc_ExceptionLogStatistics_DailyTop3 — в журнале ошибок,
-
tc_EmailJobSessionLogStatistics_DailyTop3 — в журнале сессий почтовых джобов.
Для журнала выполнения автоматизаций отдельная процедура не требуется.
- Создайте категорию, в которую будут ставиться задачи с оповещением о повторяющихся ошибках.
Предоставьте права на просмотр и выполнение задач в категории группе администраторов приложения. Подпишите администраторов на получение уведомлений при создании задачи в категории или настройте автоматические назначение их исполнителями.
Добавьте в категорию ДП "Дата последнего появления ошибки" (с типом "Дата") и ДП "Тип лога" (с типом "Выпадающий список") и возможными значениями: ExceptionsLog, EmailsLog, SmartLog.
3. В созданной категории настройте три смарт-расписания. Режим запуска может быть индивидуальным, но рекомендуется запускать расписания каждый рабочий день последовательно одно за другим, в 7:00, 7:05 и 7:10 соответственно.
Для журнала ошибок
Для в пакете действий для расписания должны быть два смарт-действия: одно — для регистрации ошибок, которые были выявлены ранее и повторились снова, второе — для регистрации новых ошибок. Первое смарт-действие — Изменить значение ДП. Если снова возникли ошибки, которые уже были выявлены ранее, и на эти ошибки уже поставлены задачи, в эти задачи в ДП "Дата последнего появления ошибки" записывается текущая дата. Нужная задача ищется по тексту ошибки. select t.TaskID from TasksInSubcatNNDenormalized as t где NN — ID категории, созданной для регистрации ошибок (см. п.2). Второе смарт-действие — Cоздать задачу. Создаются три задачи на три самые часто повторяющиеся ошибки. Текст задачи (смарт-выражение в режиме T-SQL): SELECT 'Автоанализ лога ошибок. Текст ошибки: <br/>' + REPLACE(exc.Exception, CHAR(13), '<br/>') + '<br/><br/> Найдено <b>' + CAST(exc.ExcCount as varchar(32)) + '</b> ошибок' где NN — ID категории, созданной для регистрации ошибок (см. п.2). При создании задачи заполнять ДП: , "Дата последнего появления ошибки" — текущая дата, , "Тип лога" — ExceptionsLog. |
Для журнала сессий почтовых джобов
Для в пакете действий для расписания должны быть два смарт-действия: одно — для регистрации ошибок, которые были выявлены ранее и повторились снова, второе — для регистрации новых ошибок. Первое смарт-действие — Изменить значение ДП. Если снова возникли ошибки, которые уже были выявлены ранее, и на эти ошибки уже поставлены задачи, в эти задачи в ДП "Дата последнего появления ошибки" записывается текущая дата. Нужная задача ищется по тексту ошибки. select t.TaskID from TasksInSubcatNNDenormalized as t где NN — ID категории, созданной для регистрации ошибок (см. п.2). Второе смарт-действие — Cоздать задачу. Создаются три задачи на три самые часто повторяющиеся ошибки. Текст задачи (смарт-выражение в режиме T-SQL): SELECT 'Автоанализ лога почты. Текст ошибки: <br/>' + REPLACE(exc.Log, CHAR(13), '<br/>') + '<br/><br/> Найдено <b>' + CAST(exc.LogCount as varchar(32)) + '</b> ошибок' где NN — ID категории, созданной для регистрации ошибок (см. п.2). При создании задачи заполнять ДП: , "Дата последнего появления ошибки" — текущая дата, , "Тип лога" — EmailsLog. |
Для журнала выполнения автоматизаций
Для в пакете действий для расписания должно быть одно смарт-действие: для регистрации остановленных смарт-расписаний. Cоздать задачу. Создаются задачи на все остановленные смарт-расписания. Текст задачи (смарт-выражение в режиме T-SQL): SELECT 'Автоанализ лога smart.<br/>Smart расписание в категории:<b> ' + ISNULL(CAST(SubcatID as varchar(32)),'Не в категории') +'</b><br/>ID расписания:<b> ' + CAST(ID as varchar(32)) + ' </b><br/>ID пакета действий:<b> ' + CAST(ActionsPackID as varchar(32)) + '</b><br/>Ошибок выполнения: <b>' + CAST(FailedAttemptsCounter as varchar(32))+'</b>' FROM SmartRecurrence где NN — ID категории, созданной для регистрации ошибок (см. п.2). При создании задачи заполнять ДП: , "Дата последнего появления ошибки" — текущая дата, , "Тип лога" — SmartLog. |
Полезные ссылки¶
Настройки логирования в Общих настройках приложения
Журнал выполнения автоматизаций