Конфигурация
Обязательные параметры
Два параметра обязательны для запуска SDK:
| Параметр | Описание |
|---|---|
otel.enabled | Включает инструментирование аннотациями и экспорт логов. При false напильники возвращают желуди без изменений, аппендер ОтелАппендерLogos ничего не пишет, SDK не инициализируется и экспортёры не запускаются. |
otel.service.name | Имя сервиса в телеметрии. |
{
"otel": {
"enabled": true,
"service": {
"name": "my-service"
}
}
}OTEL_ENABLED=true
OTEL_SERVICE_NAME=my-serviceЭкспорт телеметрии
По умолчанию SDK экспортирует трассы, метрики и логи по адресу http://localhost:4318 (протокол http/protobuf).
{
"otel": {
"enabled": true,
"service": {
"name": "my-service"
},
"exporter": {
"otlp": {
"endpoint": "http://localhost:4318",
"protocol": "http/protobuf"
}
},
"traces": { "exporter": "otlp" },
"metrics": { "exporter": "otlp" },
"logs": { "exporter": "otlp" }
}
}Чтобы отключить SDK полностью:
{
"otel": {
"sdk": {
"disabled": true
}
}
}Полный список параметров OpenTelemetry — в документации opentelemetry SDK.
Ресурс
Ресурс — атрибуты, которые SDK прикладывает ко всей телеметрии сервиса. ОтелSdk собирает его в таком порядке, каждый следующий источник важнее предыдущего:
- Атрибуты по умолчанию и встроенные детекторы ядра opentelemetry.
- Детекторы ресурса приложения — желуди с прозвищем
ДетекторРесурса, в порядке&Порядокпо возрастанию. При совпадении ключей важнее детектор с большим&Порядок. - Переменные окружения
OTEL_RESOURCE_ATTRIBUTESиOTEL_SERVICE_NAME, затем параметрыotel.resource.attributesиotel.service.name.
autumn-opentelemetry сам содержит такой детектор — желудь ОтелДетекторРесурсаДистрибутива. Он добавляет атрибуты telemetry.distro.name = autumn-opentelemetry и telemetry.distro.version с версией пакета.
Свой детектор — желудь с прозвищем ДетекторРесурса:
#Использовать opentelemetry
Функция Обнаружить() Экспорт
Атрибуты = Новый Соответствие();
Атрибуты.Вставить("deployment.environment.name", "production");
Возврат Новый ОтелРесурс(Атрибуты);
КонецФункции
&Желудь
&Прозвище("ДетекторРесурса")
&Спецификация("Инициализация")
&Реализует("ИнтерфейсДетекторРесурса")
Процедура ПриСозданииОбъекта()
КонецПроцедуры&Спецификация("Инициализация")обязательна: SDK создаётся на этапе инициализации приложения, и желудь без неё на этом этапе не создаётся.&Реализует("ИнтерфейсДетекторРесурса")обязательна: без неё ядро не примет детектор и выбросит исключение.- Детектор, который завершился с ошибкой, ядро пропускает и пишет ошибку в лог.
При файловой конфигурации SDK (otel.config.file) ресурс задаётся в файле, и детекторы не применяются.
Инструментирование entity
Параметры otel.entity.enabled, otel.entity.query-text и otel.entity.repository.enabled управляют трассировкой и метриками работы с базой данных через autumn-data. Признаки включения по умолчанию наследуют otel.enabled, текст запроса по умолчанию не пишется. Подробнее - в разделе Инструментирование entity.
Конфигурация логирования
ОтелДуб автоматически создаёт желудь ОтелАппендерLogos и регистрирует его в logos. При otel.enabled = false аппендер создаётся без OTel-логгера и отбрасывает события, поэтому конфигурацию logos с ним можно не менять при выключении телеметрии. Для настройки уровня экспортируемых логов используйте autumn-properties.json:
{
"logos": {
"logger": {
"rootLogger": {
"level": "INFO",
"appenders": ["otel", "console"]
}
},
"appender": {
"otel": {
"type": "ОтелАппендерLogos",
"level": "WARN"
},
"console": {
"type": "ВыводЛогаВКонсоль",
"level": "INFO"
}
}
}
}