События системного журнала#
При включенной интеграции с компонентом Журналирование (LOGA) логи отправляются в Сервис для хранения лог-файлов Platform V Monitor.
Примечание.
Есть возможность отключить интеграцию с компонентом Журналирование (LOGA) (
srls.fluentBitSidecarEnabled=False), тогда логи остаются в рамках Pod.
Примечание.
C версии SRLS 4.9 изменились имена ключей для отображения уровня и времени возникновения событий журналирования. Отныне параметры являются конфигурируемыми и описаны в подразделе «Параметры установки» раздела «Установка» руководства по установке.
Журналируются события уровней Error, Warn, Info, Debug, Trace. Уровень логирования задается при старте приложения в настройках, в runtime уровень логирования можно изменить через REST-сервис в терминале Pod.
Для изменения уровня логирования в runtime из терминала Pod RL Service необходимо выполнить команду:
curl localhost:${port}/logging?level=${level}
Здесь:
port — HTTP-порт RL Service, по умолчанию
8080;level — уровень логирования (error, warn, info, debug или trace).
Для уменьшения нагрузки на инфраструктуру не рекомендуется включать уровни Debug и Trace.
Пример лога оператора обработки загруженного артефакта GlobalRateLimit в прикладной namespace:
2023-10-19T21:02:06.562+0300 info this GRL is mine {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc"}
2023-10-19T21:02:06.563+0300 info reconcile creating external resources {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc"}
2023-10-19T21:02:06.568+0300 debug filter does not exist, try create {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc", "filterName": "da-dp2-sy-dev-srls-06-rls-cluster", "filterNamespace": "da-dp2-sy-dev-srls-06"}
2023-10-19T21:02:06.573+0300 debug filter does not exist, try create {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc", "filterName": "da-dp2-sy-dev-srls-06-serverf", "filterNamespace": "da-dp2-sy-dev-srls-06"}
2023-10-19T21:02:06.579+0300 debug filter does not exist, try create {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc", "filterName": "da-dp2-sy-dev-srls-06-servers", "filterNamespace": "da-dp2-sy-dev-srls-06"}
2023-10-19T21:02:06.582+0300 debug rateLimitConfig Updating Rate Limit config for GRL name [rate-limit-config] namespace [da-dp2-sy-dev-srls-06]... {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc"}
2023-10-19T21:02:06.583+0300 debug rateLimitConfig DependNamespace: [da-dp2-sy-dev-srls-05] {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc"}
2023-10-19T21:02:06.583+0300 debug operatorservice successfuly applied GlobalRateLimit {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc"}
2023-10-19T21:02:06.583+0300 debug reconcile Adding GRL to GRL Keeper {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc"}
2023-10-19T21:02:06.584+0300 info load new configs starting...
2023-10-19T21:02:06.584+0300 debug new config for namespace: [da-dp2-sy-dev-srls-05]
2023-10-19T21:02:06.585+0300 info load new configs success
2023-10-19T21:02:06.588+0300 info config load success to podName: [rate-limiter-service-8467777569-7fjcj] namespace: [da-dp2-sy-dev-srls-05] address: [127.0.0.6:55873]
2023-10-19T21:02:06.589+0300 info reconcile Finished processing of GRL {"controller": "globalratelimit", "controllerGroup": "ratelimit.service", "controllerKind": "GlobalRateLimit", "GlobalRateLimit": {"name":"rate-limit-config","namespace":"da-dp2-sy-dev-srls-06"}, "namespace": "da-dp2-sy-dev-srls-06", "name": "rate-limit-config", "reconcileID": "e934b300-aecc-456f-9629-e3ceffdb56bc"}
2023-10-19T20:52:36.799+0300 info redis server: 'mymaster,redis-sentinel-0.redis-sentinel:26379,redis-sentinel-1.redis-sentinel:26379,redis-sentinel-2.redis-sentinel:26379' status: in wait connection mode
2023-10-19T20:52:36.799+0300 error subscribe channelSizeConnectChange fail {"error": "redis: all sentinels specified in configuration are unreachable"}
2023-10-19T20:52:36.799+0300 error subscribe channelUpdateConfigs fail {"error": "redis: all sentinels specified in configuration are unreachable"}
Журналирование несконфигурированных потребителей (не найденных среди invokers)#
При запуске RL Service в случае задания некорректных периодов логирования и очистки несконфигурированных потребителей выводится соответствующее сообщение уровня Warn (некорректные периоды заменяются на минимально допустимые):
2024-02-21T09:31:26.217 WRN logging period must be less than clearing period; set minimum values gotClear=30 gotLog=35 minClear=30 minLog=1
2024-02-21T09:31:26.217 WRN logging period set as minimum value got=0 min=1
2024-02-21T09:31:26.217 WRN clearing period set as minimum value got=5 min=30
Выводится сообщение уровня Debug, информирующее об успешном запуске логирования и очистки накапливаемых несконфигурированных потребителей в соответствии с установленными периодами:
2024-02-21T09:31:26.217 DBG Periodic (minutes) logging and clearing unconfigured consumers have been launched clearingPeriod=30 loggingPeriod=1
По прошествии любого из периодов выводится соответствующее сообщение уровня Debug, вслед за чем выполняется вывод/очистка накопленных несконфигурированных потребителей:
2024-02-21T09:31:26.217 DBG logging of unconfigured consumers has been performed reason=ticker
2024-02-21T09:31:26.217 DBG clearing of unconfigured consumers has been performed reason=ticker
В момент, когда хранилище несконфигурированных потребителей достигнет 100 уникальных записей, накопленные несконфигурированные потребители будут выведены принудительно с очисткой их хранилища. Тикер очистки будет сброшен:
2024-02-21T09:31:26.217 DBG logging and clearing of unconfigured consumers has been performed, reset clearing ticker maxItems=100 reason="storage overflow"
Лог RL Service уровня Info содержит информацию о несконфигурированных потребителях.
Формат вывода – [key]: value_1 value_2 ..., где «key» формируется из GlobalRateLimit CRD, «value» – значение несконфигурированного потребителя.
Правила формирования key в зависимости от режима работы SRLS и версии Envoy представлены в таблице.
Режим работы |
Ключ |
|---|---|
Rate Limit Header |
|
Rate Limit Prefix |
|
Rate Limit Method |
|
Rate Limit Header Size |
|
Rate Limit Prefix Size |
|
Rate Limit Method Size |
|
Пример лога для режима работы Rate Limit Prefix для CRD – GlobalRateLimit:
2024-02-21T09:31:26.217 INF unconfigured consumers: [my_namespace_endpoint_dev_dev_prefix__bar_dev_synapse_consumerid]: unconfigured-consumer-1 unconfigured-consumer-2
При формировании
keyвсе символы, не являющиеся буквой, цифрой или знаком подчеркивания (удовлетворяющие регулярному выражению\W+), заменяются нижним подчеркиванием (_). Например,header_value«client-1» преобразуется в «client_1», аuri_prefix«/foo» — в «_foo».