Конфігурація
Конфігурація відбувається у двох точках: під час збірки, де ви контролюєте, як інструмент otelc інструментує ваш застосунок, та під час виконання, де стандартні змінні середовища OpenTelemetry контролюють телеметрію, яку продукує інструментований застосунок.
Команда otelc
otelc обгортає інструментарій Go. Його підкоманди:
| Команда | Призначення |
|---|---|
otelc go … | Запустити команду go (наприклад, go build) з інструментуванням |
otelc setup | Налаштувати середовище для інструментування |
otelc pin | Згенерувати або оновити otel.instrumentation.go для фіксації пакунків інструментування поточного модуля |
otelc cleanup | Видалити всі артефакти, створені фазами налаштування та збірки |
otelc version | Вивести версію інструменту |
Прапорці передаються перед підкомандою:
| Прапорець | Змінна середовища | Призначення |
|---|---|---|
--rules <file> | Використовувати власний файл правил інструментування | |
--debug, -d | OTELC_DEBUG=1 | Увімкнути налагоджувальне логування для збірки |
--work-dir, -w | OTELC_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 поряд із кодом, а інструмент виявляє та завантажує їх, коли інструментує ваш застосунок. Правила підтримують кілька механізмів впровадження, окрім функціональних гачків, включаючи впровадження полів структур, обгортання місць викликів та додавання файлів. Для повної схеми та довідника типів правил дивіться документацію правил інструментування у репозиторії.
Зворотний зв’язок
Чи була ця сторінка корисною?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!