Конфігурація

Налаштування інструменту otelc та телеметрії, що продукується інструментованими застосунками.

Конфігурація відбувається у двох точках: під час збірки, де ви контролюєте, як інструмент otelc інструментує ваш застосунок, та під час виконання, де стандартні змінні середовища OpenTelemetry контролюють телеметрію, яку продукує інструментований застосунок.

Команда otelc

otelc обгортає інструментарій Go. Його підкоманди:

КомандаПризначення
otelc go …Запустити команду go (наприклад, go build) з інструментуванням
otelc setupНалаштувати середовище для інструментування
otelc pinЗгенерувати або оновити otel.instrumentation.go для фіксації пакунків інструментування поточного модуля
otelc cleanupВидалити всі артефакти, створені фазами налаштування та збірки
otelc versionВивести версію інструменту

Прапорці передаються перед підкомандою:

ПрапорецьЗмінна середовищаПризначення
--rules <file>Використовувати власний файл правил інструментування
--debug, -dOTELC_DEBUG=1Увімкнути налагоджувальне логування для збірки
--work-dir, -wOTELC_WORK_DIRТека для робочих файлів, що записуються під час збірки

Наприклад, щоб зібрати з власним файлом правил та налагоджувальним виведенням:

otelc --rules my-rules.yaml --debug go build -o myapp .

Змінні середовища під час виконання

Інструментовані застосунки поважають стандартні змінні середовища SDK OpenTelemetry для експортерів, ресурсів та ідентичності сервісу, наприклад:

  • OTEL_SERVICE_NAME: імʼя сервісу, що передається з телеметрією
  • OTEL_EXPORTER_OTLP_ENDPOINT: кінцева точка OTLP для експорту
  • OTEL_RESOURCE_ATTRIBUTES: додаткові атрибути ресурсу

Крім того, наступні змінні контролюють, які впроваджені інструментування активні під час виконання:

ЗміннаПризначення
OTEL_GO_ENABLED_INSTRUMENTATIONSРозділений комами список інструментувань для ввімкнення, наприклад nethttp,grpc. Коли встановлено, активні лише зазначені інструментування.
OTEL_GO_DISABLED_INSTRUMENTATIONSРозділений комами список інструментувань для вимкнення.

Власні правила інструментування

Який код інструментується визначається декларативними YAML правилами. Кожне правило називає цільовий пакунок, опціонально звужує відповідність за допомогою селекторів та оголошує, що впроваджувати. Наприклад, наступне правило викликає функції-гачки на вході та виході (*sql.DB).Exec:

instrument_sql_exec:
  target: database/sql
  where:
    func: Exec
    recv: '*DB'
  do:
    - inject_hooks:
        before: BeforeExec
        after: AfterExec
        path: github.com/example/sqlinstr

Передайте власний файл правил для збірки за допомогою --rules. Правила також можуть постачатися всередині Go пакунків: пакунок оголошує інструментування файлом otel.instrumentation.go (або otelc.tool.go) та надає свої правила у файлах otelc.yml або *.otelc.yml поряд із кодом, а інструмент виявляє та завантажує їх, коли інструментує ваш застосунок. Правила підтримують кілька механізмів впровадження, окрім функціональних гачків, включаючи впровадження полів структур, обгортання місць викликів та додавання файлів. Для повної схеми та довідника типів правил дивіться документацію правил інструментування у репозиторії.


Востаннє змінено July 12, 2026: [uk] Ukrainian documentation for OpenTelemetry (f46a7552)