Перейти к содержанию

Автоматический мониторинг ошибок

Ошибки, возникающие при работе приложения, регистрируются в журналах:

ℹ️  Логирование смарт-автоматизаций зависит от Общих настроек приложения.

Для эффективного администрирования мы рекомендуем настроить автоматический мониторинг повторяющихся ошибок с помощью смарт-расписаний.

Порядок действий

1. В БД приложения "Первая Форма" выполните файл1 и файл2 (при необходимости предварительно измените название БД). При этом в БД будут созданы две функции, которые будут выделять в журналах три самые часто повторяющиеся ошибки за день:

  • tc_ExceptionLogStatistics_DailyTop3 — в журнале ошибок,

  • tc_EmailJobSessionLogStatistics_DailyTop3 — в журнале сессий почтовых джобов.

Для журнала выполнения автоматизаций отдельная процедура не требуется.

  1. Создайте категорию, в которую будут ставиться задачи с оповещением о повторяющихся ошибках.

Предоставьте права на просмотр и выполнение задач в категории группе администраторов приложения. Подпишите администраторов на получение уведомлений при создании задачи в категории или настройте автоматические назначение их исполнителями.

Добавьте в категорию ДП "Дата последнего появления ошибки" (с типом "Дата") и ДП "Тип лога" (с типом "Выпадающий список") и возможными значениями: ExceptionsLog, EmailsLog, SmartLog.

3. В созданной категории настройте три смарт-расписания. Режим запуска может быть индивидуальным, но рекомендуется запускать расписания каждый рабочий день последовательно одно за другим, в 7:00, 7:05 и 7:10 соответственно.

Для журнала ошибок

select t.TaskID from TasksInSubcatNNDenormalized as t
where t.IsClosed = 0 and
left (dbo.cm_StripHTML(dbo.cm_ReplaceHTML( t.TaskText)),250) in
(
SELECT left (dbo.cm_StripHTML(dbo.cm_ReplaceHTML( 'Автоанализ лога ошибок. Текст ошибки: <br/>' + REPLACE(exc.Exception, CHAR(13), '<br/>') + '<br/><br/> Найдено <b>' + CAST(exc.ExcCount as varchar(32)) + '</b> ошибок')),250)
FROM tc_ExceptionLogStatistics_DailyTop3 exc
)
SELECT 'Автоанализ лога ошибок. Текст ошибки: <br/>' + REPLACE(exc.Exception, CHAR(13), '<br/>') + '<br/><br/> Найдено <b>' + CAST(exc.ExcCount as varchar(32)) + '</b> ошибок'
FROM tc_ExceptionLogStatistics_DailyTop3 exc
WHERE NOT EXISTS(
SELECT t.TaskID
FROM Tasks t WITH (NOLOCK)
WHERE substring('Автоанализ лога ошибок. Текст ошибки: <br/>' + REPLACE(exc.Exception, CHAR(13), '<br/>'), 0, 160) = substring(t.Description, 0, 160)
  AND t.IsClosed = 0 and t.subcatid = NN)

Для журнала сессий почтовых джобов

select t.TaskID from TasksInSubcatNNDenormalized as t
where
t.IsClosed = 0 and
left (dbo.cm_StripHTML(dbo.cm_ReplaceHTML( t.TaskText)),250) in
(
SELECT left (dbo.cm_StripHTML(dbo.cm_ReplaceHTML( 'Автоанализ лога почты. Текст ошибки: <br/>' + REPLACE(exc.Log, CHAR(13), '<br/>') + '<br/><br/> Найдено <b>' + CAST(exc.LogCount as varchar(32)) + '</b> ошибок')),250)
FROM tc_EmailJobSessionLogStatistics_DailyTop3 exc
)
SELECT 'Автоанализ лога почты. Текст ошибки: <br/>' + REPLACE(exc.Log, CHAR(13), '<br/>') + '<br/><br/> Найдено <b>' + CAST(exc.LogCount as varchar(32)) + '</b> ошибок'
FROM tc_EmailJobSessionLogStatistics_DailyTop3 exc
WHERE NOT EXISTS(
SELECT t.TaskID
FROM Tasks t WITH (NOLOCK)
WHERE substring('Автоанализ лога почты. Текст ошибки: <br/>' + REPLACE(exc.Log, CHAR(13), '<br/>'), 0, 160) = substring(t.Description, 0, 160)
  AND t.IsClosed = 0 and t.SubcatID = NN)

Для журнала выполнения автоматизаций

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
where FailedAttemptsCounter >= AttemptsToSuspend and Enabled=1 and NOT EXISTS(
SELECT t.TaskID
FROM Tasks t WITH (NOLOCK)
WHERE (CAST(ID as varchar(32)) + ' ') = substring(SUBSTRING(t.Description, CHARINDEX('ID расписания', t.Description), len(t.Description)), 19, 4)
AND t.IsClosed = 0 and t.subcatid = NN)

Полезные ссылки

Настройки логирования в Общих настройках приложения

Журнал ошибок

Журнал сессий почтовых джобов

Журнал выполнения автоматизаций

Уведомления при создании задачи в категории

Настройка смарт-расписаний