Почему срабатывает алерт LokiDiscardedSamplesWarning?

Алерт LokiDiscardedSamplesWarning срабатывает, когда Loki отказывается принимать логи во время приёма данных, потому что они не проходят валидацию или превышают установленные лимиты.

Иными словами, log-shipper пытается отправить данные, которые Loki не принимает.

Возможные причины

Вероятнее всего превышен лимит на размер или количество стримов.

Loki ограничивает:

  • количество уникальных лейблов в стриме;
  • длину лейблов и их значений;
  • количество стримов от одного клиента;
  • размер пакета данных (batch) при приёме.

Подробное описание каждого ограничения можно найти в официальной документации Loki.

Устранение проблемы

  1. Уточните причину в описании алерта.

    Samples are being discarded because of "{{ $labels.reason }}"...
    

    Поле {{ $labels.reason }} указывает на сработавший лимит и причину, по которой Loki не принимает логи.

  2. Отредактируйте соответствующий лимит в конфигурации модуля loki.

    Описание доступных для настройки полей можно найти в документации модуля.

    Например, если в качестве причины указан rate_limited, необходимо увеличить ingestionRateMB или ingestionBurstSizeMB, если возможны временные повышения объёма логов. В качестве альтернативы можно ограничить количество отсылаемых логов на стороне приложения.