Инструментарий настройки вручную среды выполнения

Материал из Dynatrace
Версия от 15:46, 31 октября 2022; ENetrebin (обсуждение | вклад) (Новая страница: «Модуль кода NGINX опирается на заблаговременные предположения об объявлениях внутренних...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Модуль кода NGINX опирается на заблаговременные предположения об объявлениях внутренних структур данных NGINX и их расположении в памяти во время его автоматического инструментирования. Если базовые объявления структуры данных исправлены (это означает, что исходный код, определяющий эти структуры, был изменен) и, следовательно, предварительные предположения недействительны, автоматическая инструментирование, выполняемая модулем кода, может вызвать проблемы в NGINX из-за чтения из, или запись в неправильные части памяти.

Чтобы избежать такого сценария, модуль кода NGINX пытается обнаружить исправленные объявления структур данных NGINX. Если обнаружено исправленное объявление, модуль кода отключает автоматическое инструментирование и отображает следующую заметку на странице «Процесс» в веб-интерфейсе:

Уведомление выглядит так:

  • В этом процессе были обнаружены несовместимые модули NGINX. Автоматическая аппаратура была отключена. Чтобы вручную настроить NGINX, см . Инструментирование среды выполнения вручную .

Инструментировать пропатченный NGINX

Модуль кода NGINX может проверять объявления внутренней структуры данных NGINX при запуске (во время выполнения), вместо того чтобы полагаться на предварительные предположения. При таком подходе Dynatrace может без проблем оснастить пропатченный NGINX, но этот подход имеет некоторые ограничения, которые необходимо учитывать.

Примером пропатченного NGINX является Kong Gateway .

Ограничения инструментария времени выполнения

  • Инструментарий времени выполнения зависит от символов отладки, доступных для двоичного файла NGINX, что не всегда так.
  • Инструментарий времени выполнения добавляет заметную задержку запуска (10 секунд и более) в NGINX. Мой NGINX или Kong Pod в Kubernetes не запускается из-за тайм-аута В облачных развертываниях настройте тайм-ауты запуска пода или контейнера, чтобы предотвратить истечение времени ожидания NGINX при запуске. Если NGINX или Kong Pod в Kubernetes не запускается, поищите в журналах упоминание о сбое тестов Liveness или Readiness и настройте начальные значения задержки, тайм-аута и порога сбоя этих тестов на достаточно высокие значения. Точная конфигурация зависит от развертывания.
  • Инструментарий времени выполнения требует больше памяти во время запуска NGINX. Это более высокое пиковое потребление памяти может привести к тому, что поды будут уничтожены Kubernetes (или другими средами выполнения контейнеров) в случае строгих ограничений памяти. Пожалуйста, измените ограничения памяти, чтобы приспособиться к инструментам времени выполнения.

Чтобы вручную настроить исправленный NGINX во время выполнения

  1. Добавьте переменную окружения DT_NGINX_RUNTIME_INSTRUMENTATIONв ваш NGINX:
DT_NGINX_FORCE_RUNTIME_INSTRUMENTATION=on
  1. Перезапустите NGINX, чтобы получить переменную окружения.