TGViewer
🚀🐳 Летит Кит: SRE и не только 🚀🐳 Летит Кит: SRE и не только @letitkit · 201 subscribers
Post #251 174
Распределённая трассировка для 1С. ЧТО?

Привет, киты 🐳!

Разбирались с коллегами с распределенной трассировкой, писали как мы видим это у себя, чтобы люди делали одинаково и предсказуемо, а именно просто подключали бы нашу либу/пакет в проект и почти все уже было бы настроено.
Начали с того, что решили договориться. Стандарт по логам и метрикам у нас уже был, а по трассировке нет.

Подключились и коллеги разрабатывающие под 1С с вопросом, а нас сюда как?
Как ожидал, нет тут готовых решений и OTEL SDK 1C.

Что же можно сделать и как?
Нужно
1. отправлять спаны в коллектор из 1С
2. передавать контекст трассировки в вызовах из 1С, например, в HTTP или Kafka
3. извлечение контекста из входящих вызовов и прокидывание его внутри 1С

Как отправлять спаны
В1. Если не критичны задержки, то можно отправлять на HTTP endpoint OTEL Collector. Вызов будет в код синхронным, потому тут нужны короткие таймауты. Также можно, кстати и в PHP приложениях делать. А OTEL Collector лучше поставить сайдкаром прямо рядом с 1С, чтобы задержки были минимальные.
В2. Асинхронно. Через логи. Создаем файл 1с-traces.log (ротацию мы конечно не забыли включить) и в него скидываем готовые JSON со спанами, читает это файл агент типа Vector/FluentBit, готовит и отправляет в OTEL Collector

Как извлечь контекст трассировки
Читайте заранее определенные заголовки или метаданные, параметры фоновых задач (контекст трассировки в них надо явно передавать). Создавайте спан из них.

Как передавать контекст трассировки
В1. Линейный код (в рамках одго вызова). Добавьте доп параметр КонтекстТрассировки во все функции явно и передавайте.
В2. В рамках одного сеанса. Передавать через Параметры Сеанса (глобальное хранилище для текущего пользователя/сеанса HTTP). Работает только в рамках одного потока (сеанса). Если внутри кода вызывается фоновое задание, параметры сеанса туда автоматически не перенесутся.
В3. Передача в Фоновые задания. Самый частый сценарий в 1С: HTTP-сервис быстро принимает запрос, записывает документ и передает задачу фоновому заданию для отправки в Kafka. Передавайте структуру с TraceID и текущим SpanID внутрь массива параметров фонового задания. И доставайте в фоновом задании контекст для отправки спана если надо.
В4. Использование БСП (Библиотеки Стандартных Подсистем). БСП предоставляет готовые механизмы архитектуры, к которым можно «подцепиться», чтобы протащить TraceID от входа к выходу. Используйте ДополнительныеСвойства объектов, куда кладите контекст трассировки.

Интересно в реальности кто-нибудь делал такое у себя, ведь у многих компаний 1С часть бизнес-процессов многих?

#observability #1С #трейсинг #sre #distributed-tracing
More from @letitkit
  1. Sep 22, 2026Споры про искусственный интеллект в SRE изменились. Мы уже не гадаем, заменит ли агент деж…
  2. Sep 15, 2026Toil в работе SRE. Измерять, или "мы и так знаем что работы дофига“? Привет, киты 🐳. Пора…
  3. Sep 8, 2026О важности отдыха Привет, киты! 🐳 Оказалось я забыл как отдыхать. Перед отпуском делал за…
  4. Sep 3, 2026Важное про безопасность с чужим кодом - еще раз. Привет, киты 🐳! TL; DR; на чужих AI-скил…
  5. Aug 26, 2026Реклама конференции в которой я выступаю. Если вы думали, пойти или нет, а хотели пойти с…
  6. Aug 25, 2026О постановке задач и проклятии знания Бул-буль,привет, Киты 🐳! Вы замечали, что часто зад…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →