Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| software:fluent-bit-loki-grafana:loki [2025/11/24 14:12] – mirocow | software:fluent-bit-loki-grafana:loki [2025/11/25 01:45] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== | + | {{tag> |
| + | |||
| + | ====== | ||
| + | |||
| + | ===== Настройка | ||
| <code yaml> | <code yaml> | ||
| Строка 54: | Строка 58: | ||
| retention_deletes_enabled: | retention_deletes_enabled: | ||
| retention_period: | retention_period: | ||
| + | </ | ||
| + | |||
| + | * Менеджер TSDB используется для периодической (раз в 15 минут) сборки индексов TSDB из накопившихся WAL’ов. В случае успеха он ротирует старые TSDB Head и WAL, удаляя их для освобождения диска с памятью и заменяя пустышками, | ||
| + | |||
| + | ===== Индексы ===== | ||
| + | |||
| + | * TSDB — это высокопроизводительные базы данных, | ||
| + | |||
| + | ====== Loki фильтры ====== | ||
| + | |||
| + | |||
| + | Взять любые значения и применить к ним фильтр json: | ||
| + | |||
| + | < | ||
| + | {stream=~" | ||
| + | </ | ||
| + | |||
| + | эквивалент: | ||
| + | |||
| + | < | ||
| + | {stream=~" | ||
| + | </ | ||
| + | |||
| + | В распарсенном json поискать значения парочки ключей: | ||
| + | |||
| + | < | ||
| + | {stream=~" | ||
| + | </ | ||
| + | |||
| + | Вот так я ищу ошибку в monolog: | ||
| + | |||
| + | < | ||
| + | {stream=~" | ||
| + | </ | ||
| + | |||
| + | Найти точно по левой части и что-угодно справа: | ||
| + | |||
| + | < | ||
| + | request_uri=~" | ||
| + | </ | ||
| + | |||
| + | Найти по части совпадения строки: | ||
| + | |||
| + | < | ||
| + | {stream=~" | ||
| + | </ | ||
| + | |||
| + | Тоже самое, но сначала распарсить json: | ||
| + | |||
| + | < | ||
| + | {stream=~" | ||
| + | </ | ||
| + | |||
| + | OR условие: | ||
| + | |||
| + | < | ||
| + | ... | json | scheme=`https` | status=~" | ||
| + | </ | ||
| + | |||
| + | Отрицание: | ||
| + | |||
| + | < | ||
| + | http_referer !~`(http|https):// | ||
| + | </ | ||
| + | |||
| + | Сформировать строку из разных значений: | ||
| + | |||
| + | < | ||
| + | | line_format " | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | sum(count_over_time({app=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | {namespace=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | {app=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | {namespace=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | {namespace=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | {container_name=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | {container_name=" | ||
| </ | </ | ||