Cбор и анализ ошибок при помощи Sentry, или как упростить жизнь себе и пользователям

08.02.26

Администрирование - Мониторинг

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Расширение onec-sentry
.cfe 38,04Kb
1 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

update:

  • 08.02.2026 Обновлен проект на github https://github.com/hexhoc/onec-sentry Добавлено расширение для интеграции с поддержкой любых конфигураций.

 

Какие проблемы поможет решить интеграции с Sentry:

  1. Сбор информации об ошибках, с детализацией как часто, у кого и когда она происходила. У нас будет статистика по каждой ошибке.
  2. Уведомление о всех новых выявленных ошибках. Появилась ошибка в системе, sentry нас об этом уведомляет (один раз, а не заваливает сообщениями каждый раз, когда ошибка произошла)
  3. Моментальный поиск, отбор информации по ошибкам
  4. Интеллектуальная группировка сообщений об ошибках.

Sentry это бесплатный инструмент, благодаря которому мы можем не нервничать при запуске очередного релиза, быстро находить причины возникших проблем, устранять проблемы, которые портят жизнь пользователям раньше, чем о них вам сообщат тестировщики, или helpdesk

Настоятельно рекомендую для начала ознакомиться со статьей Андрея Крапивина (https://infostart.ru/1c/articles/1178723/), в которой он рассказывает о его преимуществах перед остальными решениями для сбора и анализа ошибок.

При своей первой попытке подружить Sentry с 1C, столкнулся с рядом трудностей, одна из которых это отсутствие какой-либо инструкции как это сделать. Как правильно использовать их api, какие параметры устанавливать и откуда их вообще брать.

Всю эту информацию пришлось собирать по кусочкам из документаций самой Sentry, из stackoverflow, сидеть и методом проб и ошибок стучаться по API и пытаться отправить хоть какие-нибудь данные.

Чтобы упростить задачу вам, я собрал все свои грабли, и постараюсь подробно рассказать о них.

Прим. Описанное решение не идеальное, но дает отправную точку для разработчиков, которые решили заняться анализом и сбором ошибок.

Я не буду рассказывать о том, как установить Sentry, подобной информации в интернете хватает. Приведенный ниже пример сделан с использованием облачного сервера Sentry - sentri.oi

 

1. Создаем свой проект и команду

Я предполагаю, что с регистрацией на Sentri.io проблем возникнуть не должно. После того как мы это сделали, можно приступить к созданию своего проекта.

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

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

Далее мы переходим в настройки нашего проекта. В них нам необходимо получить наш public key

Теперь внимание, там мы увидим строку DSN примерно следующего содержания:

https://0cded76306854a4fb615685e1dcf9cfa@o390533.ingest.sentry.io/5449917

В этой строке содержаться 3 нужных нам параметра:

  1. 0cded76306854a4fb615685e1dcf9cfa - это public key
  2. https://0cded76306854a4fb615685e1dcf9cfa@o390533.ingest.sentry.io - а это адрес сервера на который мы будем стучаться. В случае с сервером развернутым у себя, обычно адрес следующий - sentry.<companydomain.ru>
  3. 5449917 - номер нашего проекта

Копируем их куда-нибудь

 

2. Устанавливаем параметры подключения

Теперь устанавливаем http подключение к серверу sentry из 1С

 
 Код установки подключения

 

Разберем параметры подключения

В качестве значения для "X-Sentry-Auth" в документации нам предлагают указать следующие данные как в примере ниже:

  • Sentry sentry_version=7,
  • sentry_timestamp=1329096377,
  • sentry_key=b70a31b3510c4cf793964a185cfe1fd0,
  • sentry_secret=b7d80b520139450f903720eb7991bf3d,
  • sentry_client=sentry-python/1.0

Подробнее:

  • Sentry sentry_version - (обязательный) - текущая используемая версия sentry
  • sentry_timestamp - (не обязательный) - время в формате timestamp которое представляем время в которое произошло наше событие
  • sentry_key - (обязательный) - тот самый public key который мы скопировали ранее
  • sentry_secret - (не обязательный) - Секретный ключ. Этот параметры не используется и будет удален в будущих версиях sentry
  • sentry_client - (не обязательный) - произвольная строка в формате имя_клиента/версия_клиента которая идентифицирует платформу на которой ведется разработка (например python/1.0)

 

Для работы нам достаточно указать только "Sentry sentry_version=7,sentry_key=bd945ed6d56e401da41a1f9262efc20e"

В качестве ресурса к которому идет обращение используется строка /api/<НомерПроекта>/store/

В моем случае это /api/5449900/store/. Напоминаю, что номер проекта мы скопировали чуть ранее

На этом настройка параметров закончена.

 

3. Формируем сообщение в Sentry

Теперь приступим к разбору свойств сообщения которое мы отправляем в Sentry

 
 Код формирования сообщения
  • timestamp - дата в формате timestamp, определяет в какое время событие было создано в sentry
  • logger - имя логгера который создал текущее событие
  • platform - платформа на которой возникло событие. Оставляем по умолчанию Other
  • lever - аналог уровеня журнала регистрации, имеет два значения - error, warning
  • transaction - номер транзакции в которой возникла ошибка
  • server_name - имя рабочего сервера
  • release - версия релиза (версия конфигурации)
  • dist - имя дистрибутива (имя базы)
  • environment - в моем примере это режим совместимости. Но я бы тут указал версию платформы под которой был запущен сеанс.
  • message - комментарий. Текстовое описание ошибки
  • tags - произвольные теги, для удобства поиска и анализа ошибок
  • extra - любая доп. информация о событии на наш вкус.
  • exception - место в котором возникла ошибка. Группировка ошибок происходит по полю exception. Если ошибка произошла в конкретной строке кода, конкретного объекта, то она будет объединена с такими ошибкам, а не выделена в отдельную ошибку.
  • context - конктекст при котором возникла ошибка. Оборудование, операционная система, браузер, версия приложения, номер сеанса, соединения и т.п. Подробней тут https://develop.sentry.dev/sdk/event-payloads/contexts
  • breadcrumbs - Перечень вызывов которые предшевствовали месту возникновения ошибки. Начиная с платформы с версии 8.3.15 мы можем получать полный стек вызовов перед возникновением ошибки. В моем примере этот функционал не используется. https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/
  • user - Собственно сам пользователь под которым произошло событие


4. Profit

Вот и все. Вишенкой на торте остается только создать регламентное задание, которое будет на постоянной основе отправлять данные в Sentry.

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

Ссылка на пример интеграции на github - https://github.com/hexhoc/onec-sentry

Надеюсь данная статья поможет сделать ваш рабочий процесс чуточку приятней и полезней

 

Тестировалось на платформе 8.3.16.1148.

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.428

Вступайте в нашу телеграмм-группу Инфостарт

Интеграция сбор ошибок мониторинг логирование анализ

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    90899    67    44    

77

Инструменты администратора БД Корректировка данных Мониторинг Учет документов 1С 8.3 1С:Управление торговлей 10 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

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

6100 руб.

11.06.2026    865    2    0    

4

HighLoad оптимизация Мониторинг Системный администратор Разработчик 1С 8.3 Абонемент ($m)

64 семейства метрик и 95 рядов про кластер 1С, готовых к тому, чтобы их забрал Prometheus. Снимает их один файл PowerShell без зависимостей: он спрашивает кластер штатной утилитой rac через сервер администрирования RAS, к базе данных не обращается и паролей информационных баз не требует. На кластере, куда никто не входил, семейств 61: сеансовым метрикам не из чего взяться. Главное в поставке лежит рядом со скриптом - дашборд Grafana на 20 панелей, кусок scrape_configs и восемь правил тревоги. Дашборд не нарисован в теории: он импортирован на живом стенде тем же вызовом, которым это делает интерфейс, и дал 20 панелей из 20 с данными. promtool на выводе и на правилах проходит чисто, полный сбор занимает от 1,3 до 2,4 секунды.

10 стартмани

25.09.2026    159    0    nedomolkov.ivan    0    

1

Мониторинг Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Вы отдаёте данные из 1С наружу, метрики или обмен, и проверяете их своими же проверками. Посмотрите, чем именно: кодом ответа, заголовком, длиной, собственным разбором текста? Экспортер метрик кластера 1С прошёл шесть таких проверок и не отдал Prometheus ни одного ряда: виноват один символ в конце каждой строки. Разбираю, почему каждая проверка была зелёной, ещё два дефекта того же класса (версия ras.exe и метрики лицензий на пустом стенде) и главную ловушку RAS как службы Windows: путь к ras.exe содержит версию платформы, и после обновления служба молча перестаёт стартовать. В конце команда, которая заменила все шесть проверок.

25.09.2026    274    nedomolkov.ivan    0    

0

Мониторинг Механизмы платформы 1С Системный администратор Разработчик Бесплатно (free)

Неделю мы искали, почему задание отрабатывает вхолостую, и всё это время оно вообще не запускалось. В истории механизма 580 записей, и все до одной поставлены руками: автоматических нет ни за один день с апреля 2025-го. Ошибок при этом ноль, потому что ошибке негде было возникнуть. Первую версию - задание пропускает запуск, увидев недавний успех - убил замер: четыре дня молчания после того, как мы расчистили состояние. Показываю весь перебор причин, ложную улику с расписанием, из-за которой расследование ушло в сторону на несколько дней, и то поле карточки, которое всё это время решало. Перебор собран списком по порядку проверки, так что по нему можно пройти свою базу.

18.09.2026    806    nedomolkov.ivan    0    

1

HighLoad оптимизация Мониторинг Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Кто потребляет больше всех и что изменилось - два разных вопроса, и деградацию объясняет только ответ на второй. На сервере 1С, который начал грузить процессор, первым под подозрение попал обмен, и ряд запусков за двенадцать суток показал, что запускается он так же, как раньше. Дальше шесть мест, где расследование могло свернуть не туда, от службы печати с почти целым ядром до пустых файлов технологического журнала, и приём, которым нужный сервис кластера нашли без перезапуска агента. Корневая причина в разборе не названа, текст говорит об этом сразу.

16.09.2026    825    nedomolkov.ivan    0    

0

HighLoad оптимизация Мониторинг Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Код не меняли год, а операция, которая раньше шла секунду, стала идти минуту. Виноват в таком обычно не код, а то, что данные перешли порог: у квадратичного алгоритма удвоение объёма стоит четырёхкратного роста работы, поэтому поломка не подкрадывается постепенно, а наступает сразу. В разборе - случай коллеги, где сервис деградировал месяц. Три объяснения закрыли замером, а развязку дал профиль на 16 642 снимках: 80,0 % процессорного времени в одной функции, которую при этом нельзя было чинить. Разогнали её 20 копий одного документа по 443 581 байту, наплодил их собственный экспортёр сервиса. Дальше - как отличить квадратичный рост от линейного двумя замерами, где такие места прячутся в коде 1С и что делать, если урезать боевую базу вдвое нельзя.

27.08.2026    1356    nedomolkov.ivan    2    

0

DevOps и автоматизация разработки Мониторинг Тестирование QA Разработчик 1С:Предприятие 8 Бесплатно (free)

Платформа 1С давно вышла за рамки учетных систем. Сегодня это полноценная среда для создания сложных, высоконагруженных и распределенных приложений. А значит, и стек технологий современного разработчика кардинально изменился. Систематизируем весь инструментарий, который превращает 1С-программиста в инженера: от EDT и Git до автотестов на YAxUnit, контейнеризации приложений в Docker, мониторинга в Prometheus и организации шины данных на Kafka. Разберемся, зачем каждый инструмент нужен, как он вписывается в жизненный цикл разработки и с чего начать его внедрение.

25.08.2026    22494    mrXoxot    55    

84
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. pallid 277 09.10.20 10:47 Сейчас в теме
Надеюсь данная статья поможет сделать ваш рабочий процесс чуточку приятней и полезней


прочитал по диагонали, но это 100% полезная для меня статья, спасибо Вам

поставил звездочки где только смог
2. capitan 2599 09.10.20 20:54 Сейчас в теме
Очень толково, странно что мало плюсов.
pbahushevich; hexhoc; +2 – Ответить
3. Skotarev 15 10.10.20 14:21 Сейчас в теме
(2) наверное потому что статья была написана чуть более суток назад :)
статья нужная, автору - спасибо.
4. malikov_pro 1406 10.10.20 17:52 Сейчас в теме
очепятка "с использованием облачного сервера Sentry - sentri.oi", Sentry.io
Пожелания по оформлению, код как текст, а не как картинка, код и картинки под спойлеры, чтобы основное повествование не терялось.

Regexp лучше через XML, COM на linux нет.

В БСП в ЖР события пишутся через процедуру обертку, можно в нее отправку добавить, чтобы оперативнее информацию о ошибках получать.
Либо через внешнюю обработку и фиксировать дату выгрузки, и запускать чаще.

(2) Позиционирование в начале статьи не акцентировано. Не указано для какого типа мониторинга и в какой момент идет логирование.
На сколько понимаю "Если переросли healthchecks.io (https://infostart.ru/1c/articles/1258466/), но еще не умеете в Zabbix или ELK + kibana alert и у вас нет сис. админа который может развернуть стабильно работающий linux сервис, то можно воспользоваться данным сервисом".
5. malikov_pro 1406 10.10.20 17:55 Сейчас в теме
(3) Проблема в том что подобные статьи если за сутки не набрали 12+ не попадают в "В тренде", то могут погрязнуть в пучине публикаций.
6. malikov_pro 1406 10.10.20 18:02 Сейчас в теме
(2) capitan и hexhoc, коли в теме по мониторингу, то можно разобрать еще слой анализа действий пользователей, например навесить программно на элементы формы обработчики мониторинга и отправлять их в ELK подобный сервис (главное чтобы просадки по производительности у пользователей не было), после удобно на графиках смотреть количественные показатели и цепочки действий.
7. capitan 2599 10.10.20 20:17 Сейчас в теме
(6)Да мне пока даже такая раскладка как в статье не пригождалась.
Потому что у меня команда - это я сам в одно лицо)
Я просто самим же регламентным заданием 1С себе на почту и скидывал.
8. hexhoc 174 11.10.20 07:46 Сейчас в теме
(6) Да, к анализу действий пользователя постараюсь в ближайшее время прийти. В нашей конфигурации есть как минимум 3 достаточно сложных объекта, и пользователи которые с ними работают не могут объяснить нормально что они делали и уж тем более какие параметры использовались при работе (многие из них по-русски плохо говорят).
9. hexhoc 174 11.10.20 07:50 Сейчас в теме
(6) В итоге разработчик большую часть времени сидит и пытается методом научного тыка воспроизвести ошибку (что не всегда получается). Как результат, много затраченного времени, на порой элементарные ошибки.
10. eugeniezheludkov 45 12.10.20 05:07 Сейчас в теме
пользуемся этой sentry уже пару месяцев (1С и C#) и вот что стало отчетливо понятно:
1. система предназначена исключительно для отлова ошибок (Exceptions , редкие)
2. она не пригодна для логирования она не заменит журнал регистрации. (да мы пытаемся писать туда логи)
3. сообщения появляются не сразу, а спустя минуты. что сводит на нет оперативное решение заявок по горячим следам.
4. !!! теряет сообщения , если летят одновременно много сообщений логов , то часть теряется навсегда
5. как оказалось подобную систему написать гораздо проще с нуля используя mongodb nodejs исходник в несколько строчек поднимает сервер экспресс и все сообщения кидает сразу в монго , недастаток лишь в том что для анализа нужно ставить mongo client , а вебморды нет
11. user623969_dusa 12.10.20 10:52 Сейчас в теме
12. ICeZm 23 12.10.20 14:11 Сейчас в теме
Автору - спасибо. Полезная статья.
13. user696899_sk 02.11.22 12:44 Сейчас в теме
Привет подскажите при отправке JSON выдает вот такой ответ
{"detail":"failed to read request body","causes":["Invalid byte 239, offset 0."]}
понимаю что проблема в теле запроса но что именно не так не пойму, код полностью взят с сылки гитхаб
14. mcgru 06.04.23 07:25 Сейчас в теме
товарищи инфостартовцы! исправьте ваш фронтед так, чтобы он показывал ДАТУ ПУБЛИКАЦИИ!!!111разрасрас
что читателю говорит номер публикации??? зачем он ему?
а вот дата - позволяет сразу оценить актуальность статьи.
исправьте прям щяз, послезавтра проверю ;)
15. user1958495 14.06.23 09:30 Сейчас в теме
Теперь всем новым пользователям в Sentry нужно добавлять ещё один параметр к запросу:
ПараметрыПодключения.Вставить("Authorization", "Bearer " + Токен);
Токен создаётся здесь:
Settings --> Settings (ввеху) --> My account --> User Auth Tokens
16. Betis 26 08.06.24 19:33 Сейчас в теме
Спасибо за статью.
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация