Применение ограничения памяти

Материал из Документация Ключ-АСТРОМ

В следующем примере конфигурации показано, как настроить экземпляр Collector и его собственный процессор-ограничитель памяти, чтобы гарантировать, что распределение памяти будет соответствовать указанным параметрам.

Рекомендуемая конфигурация

Для оптимального использования памяти вашего экземпляра Collector мы рекомендуем применять эту конфигурацию во всех настройках.

Предустановка

Информацию о настройке Collector с использованием указанной ниже конфигурации см. в разделах Развертывание коллектора и Конфигурация коллектора.

Демо конфигурация

receivers:

  otlp:

    protocols:

      grpc:

        endpoint: 0.0.0.0:4317

      http:

        endpoint: 0.0.0.0:4318

processors:

  memory_limiter:

    check_interval: 1s

    limit_percentage: 70

    spike_limit_percentage: 30

exporters:

  otlphttp:

    endpoint: ${env:DT_ENDPOINT}

    headers:

      Authorization: "Api-Token ${env:DT_API_TOKEN}"

service:

  pipelines:

    traces:

      receivers: [otlp]

      processors: [memory_limiter]

      exporters: [otlphttp]

    metrics:

      receivers: [otlp]

      processors: [memory_limiter]

      exporters: [otlphttp]

    logs:

      receivers: [otlp]

      processors: [memory_limiter]

      exporters: [otlphttp]

Компоненты

Для нашей конфигурации мы настраиваем следующие компоненты.

Приемники

В разделе receivers мы указываем стандартный приемник otlp, как активный компонент приемника для нашего экземпляра Collector.

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

Процессоры

В разделе processors мы указываем процессор memory_limiter со следующими параметрами:

  • check_interval настроен на проверку состояния памяти каждую секунду
  • limit_percentage настроен на максимальное выделение памяти в размере 70 процентов
  • spike_limit_percentage настроен на максимальное пиковое использование памяти в 20 процентов

При такой конфигурации Collector проверяет выделение памяти каждую секунду и начинает применять ограничения (например, отклонять запросы или принудительно выполнять сборку мусора), когда выделенная память превышает 70 процентов, с временным ограничением пикового значения в 20 процентов.

Экспортеры

В разделе exporters мы указываем экспортер otlphttp по умолчанию и настраиваем его с помощью URL-адреса нашего API Ключ-АСТРОМ и требуемого токена аутентификации.

Для этой цели мы устанавливаем следующие две переменные среды и ссылаемся на них в значениях конфигурации для endpoint и Authorization.

  • DT_ENDPOINT содержит базовый URL-адрес конечной точки API Ключ-АСТРОМ (например, https://{your-environment-id}.live.astromkey.com/api/v2/otlp)
  • DT_API_TOKEN содержит токен API

Сервисные контейнеры

В разделе service мы собираем наши объекты приемника и экспортера в контейнеры для трассировок, метрик и логов и включаем наш процессор ограничителя памяти, ссылаясь на processors для каждого соответствующего контейнера.