Spec-Zone.ru › OpenTofu 1.10

Трассировка OpenTelemetry

Экспериментальная функция

Поддержка трассировки OpenTelemetry является экспериментальной и может измениться в будущих выпусках.

В OpenTofu 1.10.0 добавлена поддержка трассировки OpenTelemetry (OTel), обеспечивающая видимость внутренних операций OpenTofu. Эта функция помогает выявлять проблемы производительности, понимать ход выполнения операций и оптимизировать рабочие процессы управления инфраструктурой.

Конфиденциальность и безопасность​

При разработке трассировки в OpenTofu конфиденциальность поставлена во главу угла:

  • Только по желанию пользователя: трассировка по умолчанию полностью отключена
  • Только локально: данные телеметрии не отправляются в OpenTofu или какие-либо внешние службы, если вы явно не настроите это
  • Ваша инфраструктура: вы сами определяете, куда отправлять трассировки, используя стандартную конфигурацию OpenTelemetry
  • Без накладных расходов: когда трассировка отключена, она не влияет на производительность

Как подчеркивает команда OpenTofu: «Хотя эта функция основана на проекте под названием OpenTelemetry, мы добавляем ее поддержку специально для того, чтобы вы могли трассировать свое приложение с помощью своих инструментов в своей инфраструктуре». Эта функция не предназначена для сбора данных об особенностях использования OpenTofu или поведении пользователей для самого проекта OpenTofu.

Краткое руководство​

1. Настройте серверную часть трассировки​

Проще всего начать с Jaeger — платформы распределенной трассировки с открытым исходным кодом:

Блок кода
docker run -d --rm --name jaeger \
  -p 16686:16686 \
  -p 4317:4317 \
  -p 4318:4318 \
  jaegertracing/jaeger:latest

2. Настройте OpenTofu​

Включите трассировку, задав следующие переменные среды:

Блок кода
# Enable OTLP trace exporter
export OTEL_TRACES_EXPORTER=otlp

# Point to your Jaeger instance
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

# Required for local development (skip TLS verification)
export OTEL_EXPORTER_OTLP_INSECURE=true

3. Выполните команды OpenTofu​

Теперь любая команда OpenTofu будет создавать трассировки:

Блок кода
tofu init    # Traces provider downloads
tofu plan    # Traces planning operations
tofu apply   # Traces apply workflow

4. Просмотрите трассировки​

Откройте браузер и перейдите по адресу http://localhost:16686, чтобы открыть интерфейс Jaeger. Вы увидите подробные трассировки операций OpenTofu.

Параметры конфигурации​

Для настройки OpenTofu поддерживает стандартные переменные среды OpenTelemetry:

Основная конфигурация​

Переменная Описание Пример
OTEL_TRACES_EXPORTER Для включения трассировки необходимо задать значение otlp otlp
OTEL_EXPORTER_OTLP_ENDPOINT URL конечной точки OTLP http://localhost:4317
OTEL_EXPORTER_OTLP_INSECURE Пропускать проверку TLS true для локальной разработки

Поддерживаются и другие параметры конфигурации OTLP. Подробную информацию см. в документации OpenTelemetry.

Примечание

В этой экспериментальной реализации при включенной трассировке OpenTofu всегда собирает 100% трассировок. Настройка выборки в настоящее время не поддерживается.

Интеграция с платформами наблюдаемости​

Jaeger отлично подходит для начала работы, но поддержка OpenTelemetry в OpenTofu совместима с любой серверной частью, поддерживающей OTLP, например Grafana Tempo, AWS X-Ray или Datadog.

Варианты использования​

Выявление причин медленного выполнения операций​

Трассировка помогает выявлять узкие места в рабочих процессах OpenTofu:

  • Загрузка каких провайдеров занимает больше всего времени?
  • Сколько времени занимает планирование и применение каждого ресурса?
  • На что уходит время во время инициализации?

Оптимизация конвейеров CI/CD​

В средах непрерывной интеграции трассировка помогает выявить:

  • Конфликты параллельных операций
  • Эффективность кэширования
  • Проблемы с задержками сети
  • Проблемы с конкуренцией за блокировки

Развертывания в нескольких средах​

Для сложных развертываний в разных регионах или средах:

  • Сравнивайте производительность разных серверных частей
  • Выявляйте задержки, характерные для конкретного региона
  • Отслеживайте влияние обновления версий провайдеров

Дальнейшая разработка​

Эта экспериментальная функция активно разрабатывается. Команда OpenTofu особенно заинтересована в отзывах о следующем:

  • Какие дополнительные операции следует трассировать
  • Влияние на производительность в реальных сценариях
  • Опыт интеграции с различными серверными частями
  • Конкретные варианты использования, для которых полезна трассировка

Пожалуйста, оставляйте отзывы в обсуждениях на GitHub или в сообществе OpenTofu в Slack.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.10/internals/tracing/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API