в формате json. Сейчас нужно сделать так, что бы в Loki уходили логи с определенным request_uri, так как все остальное по факту мусор.
Проблема в том, что этих эндпоинтов 200+ штук. Может кто-то решал подобную задачу?
так это в nginx указываешь что логировать а что нет, можно еще в промтейле в цепочке трансформаций обнаруживать при помощи Regexp ненужное и отбрасывать
через pipeline_stages типа прогонять и регуляркой выбирать нужные request_uri, а все остальное дропать? Просто в первые сталкиваюсь с этим инструментом.
там скорее наоборот - есть action drop - искать не нужное и дропать
А вот как раз все что ненужно, не известно. Там всякие боты и прочая нечисть.
так напиши так - все что не соответствует регулярке ...)
У меня к примеру есть регулярка, которая фильтрует эндпоинты из белого списка: \/.+\/(?:v1|v2)\/.+$ Собственно вот пример эндпоинтов, которые попадают под данное выражение /users/api/v1/groups/list /orders/api/v2/create/payments Посмотрел примеры в promtail и нарисовал следующий конфиг: - job_name: nginx-access-log static_configs: - targets: - localhost labels: job: nginx_access_log host: "{{ ansible_hostname }}" __path__: /var/log/nginx/myapp-access-json.log pipeline_stages: - json: expressions: request_uri: request_uri message: message - regex: expression: '\/.+\/(?:v1|v2)\/.+$' source: 'request_uri' - labels: request_uri: - output: source: message Но в итоге все равно приходят логи, в которых фигурируют эндпоинты, которые не попадают под эту регулярку. Примеров с подобными кейсами не нашел на просторах гугла. Что я делаю не так?😒
Обсуждают сегодня