Экспорт технологического журнала и журнала регистрации 1С:Предприятия в OpenTelemetry (OTLP)
Пакет лежит в основном пуле хаба, а opm знает этот хаб по умолчанию: короткой формы достаточно.
opm install opentelemetry-v8-logsСкачанный файл ставится командой opm install -f <файл> — сеть для этого уже не нужна.
Описание
opentelemetry-v8-logs
Экспорт технологического журнала (ТЖ), журнала регистрации (ЖР) и метрик кластера 1С:Предприятия в OpenTelemetry по OTLP: логи в Loki, метрики в Prometheus/Mimir, трассы вызовов в Tempo - весь стек LGTM.
Приложение на OneScript и Autumn, телеметрия отправляется через OpenTelemetry SDK для OneScript.
Возможности
- Технологический журнал в текстовом формате и в формате JSON (8.3.25+), размещение файлов по каталогам процессов и плоское, многострочные значения, формат 8.2.
- Журнал регистрации в формате lgf/lgp, включая разделение данных сеанса.
- Дочитывание файлов с сохраненной байтовой позиции: незавершенные события и записи дочитываются при следующем проходе, позиции хранятся в базе через autumn-data (SQLite, JSON и другие коннекторы entity).
- Доставка «хотя бы один раз»: позиции фиксируются только после успешной отправки телеметрии. Логи и спаны при повторе могут продублироваться; метрики - только после успешного сброса.
- Трассы вызовов: CALL со вложенными событиями (DBMSSQL, SDBL, TLOCK, EXCP...) в одну трассу, потоковая отправка спанов без накопления событий, каждая запись лога связана со своим спаном.
- Метрики кластера: сеансы, соединения, рабочие процессы и лицензии через сервер администрирования (
ras) по его протоколу, безracи платформы на машине коллектора; по базе и PID процесса связываются с трассами технологического журнала.
Быстрый старт
opm install opentelemetry-v8-logs
# стек LGTM для проверки
docker compose -f demo/docker-compose.yml up -d
# настройки - в autumn-properties.json текущего каталога, пример в demo/
cp demo/autumn-properties.json . # укажите свои каталоги журналов
opentelemetry-v8-logs
Grafana будет доступна на http://localhost:3000: дашборды «1С: журналы» и «1С: кластер», логи в Explore → Loki
({service_name="1c-cluster"} - технологический журнал, {service_name="erp"} - журнал регистрации,
{service_name="opentelemetry-v8-logs"} - логи самого коллектора), трассы в Explore → Tempo, метрики v8_techlog_event_duration_*,
db_client_operation_duration_* и v8_eventlog_records_total в Prometheus. Метрики кластера v8_cluster_* включаются адресом сервера
администрирования ras (localhost:1545) в массиве otel.v8-logs.cluster в autumn-properties.json,
по элементу на ras.
Вместе с ними в Loki идут снимки сеансов - запись на сеанс за опрос в области opentelemetry-v8-logs.cluster
(память, вызовы, время в СУБД, пользователь, приложение), а метрики v8_cluster_sessions_* дают агрегаты по
базе и приложению.
Подробнее - в документации: настройка, состав телеметрии.
Разработка
opm install -l --dev
oneunit e
Тесты пишутся до кода. Классы разбора и чтения компилируются в режиме #native.
Код - желуди autumn в каталогах подсистем src/<подсистема>/Классы
(Чтение, ТехнологическийЖурнал, ЖурналРегистрации, Кластер, Экспорт, Конвейер, Коллектор, Запуск),
которые подключаются по соглашению о структуре каталогов: класс подключает каталоги подсистем, от которых
зависит, точка входа src/main.os - Запуск (команды autumn-cli). Классы без состояния источника (чтение файлов, парсеры, время) -
синглтоны, классы с параметрами источника журнала (читатели, экспортеры, сборщик трасс, позиции) -
компанейские желуди: параметры передаются блестяшками, а желуди достаются из &Табакерка. Тестовые наборы
oneunit - тоже желуди и получают классы так же.
Лицензия
MIT License. Подробности в файле LICENSE.md.