• Русский
  • Автоинструментирование

    Автоинструментирование — это функция сборки Alauda OpenTelemetry v2 Operator, которая автоматически внедряет библиотеки инструментирования OpenTelemetry в контейнеры приложений. Такой подход устраняет необходимость ручного инструментирования кода, значительно снижая затраты усилий на реализацию наблюдаемости.

    Как работает автоинструментирование

    Operator использует Kubernetes admission webhooks для перехвата запросов на создание подов. Когда под аннотирован для автоинструментирования, Operator автоматически:

    1. Внедряет init-контейнер, который копирует библиотеку инструментирования в общий том
    2. Модифицирует контейнер приложения для загрузки библиотеки инструментирования при запуске
    3. Настраивает переменные окружения для управления поведением инструментирования
    4. Настраивает экспорт телеметрических данных в сконфигурированный бекенд

    Этот процесс происходит прозрачно во время развертывания пода, не требуя изменений в коде приложения или образах контейнеров.

    Поддерживаемые языки

    Сборка Alauda OpenTelemetry v2 Operator поддерживает автоинструментирование для следующих языков программирования и сред выполнения:

    • Apache HTTP Server — автоматическое инструментирование веб-сервера Apache
    • .NET — поддержка приложений и сервисов на .NET
    • Go — инструментирование приложений на Go
    • Java — комплексная поддержка приложений на Java с инструментированием JVM
    • Node.js — автоматическое инструментирование приложений на Node.js
    • Python — поддержка приложений на Python

    Для каждого языка предусмотрены специфические параметры конфигурации и требования, которые описаны в соответствующих разделах по языкам.

    Включение автоинструментирования

    Чтобы включить автоинструментирование для вашего приложения, необходимо:

    1. Создать кастомный ресурс Instrumentation, определяющий конфигурацию инструментирования
    2. Аннотировать поды приложения или пространства имён соответствующей аннотацией инструментирования
    3. Развернуть или перезапустить приложение для применения инструментирования

    Operator автоматически обнаружит аннотацию и внедрит необходимые компоненты инструментирования при создании пода.

    NOTE

    Автоинструментирование требует, чтобы поды вашего приложения имели достаточные права и ресурсы для загрузки библиотек инструментирования. Убедитесь, что политики безопасности подов и лимиты ресурсов учитывают дополнительную нагрузку.

    Преимущества автоинструментирования

    Автоинструментирование предоставляет несколько ключевых преимуществ:

    • Отсутствие изменений в коде — не требуется модификация исходного кода приложения
    • Единообразное инструментирование — стандартизированный сбор телеметрии во всех приложениях
    • Упрощённое развертывание — инструментирование применяется автоматически через аннотации
    • Лёгкое обновление — обновление библиотек инструментирования путём изменения CR Instrumentation
    • Гибкость по языкам — поддержка нескольких языков программирования и фреймворков

    Используя автоинструментирование, вы можете быстро достичь комплексной наблюдаемости в вашем приложении без сложности ручного инструментирования.