rpc error: code = ResourceExhausted desc = grpc: received message larger than max (4375193 vs. 4194304)
로키로 로그를 받아오면서 한 팀이 유독 request body 와 header 값을 로그에 남겨, 메시지 크기 에러를 불러오는 경우가 있었다.
grpc는 기본으로 송신하는 쪽에 메시지 사이즈 제한이 없지만, 수신하는 쪽에는 4mb라는 제한이 있다.
해당 팀에서 로그에 해당 내용들은 제거할 수 없다고 하여, loki 서버에서 로그를 받을때 6mb 까지 제한을 풀도록 수정하도록 하였다.
loki-distributed 에 loki의 각 서버마다 존재하는 extraArgs: [] 에 아래 명령어를 추가하면 된다.
단위는 bytes로 되어 있다.
queryScheduler:
extraArgs:
- grpc-max-recv-msg-size = 6291456
예시는 queryScheduler이지만 필자는 사용하고 있는 아래 목록에 추가하였다.
https://grafana.com/docs/loki/latest/configuration/#server_config
https://grafana.com/docs/loki/latest/configuration/#grpc_client_config
필자가 로키 쪽에만 message limit을 올렸지만, 만약 promtail이 scraping 하는 모든 서버가 4mb 이상의 크기의 로그를 전송할 것 같아 promtail의 max log size를 올리고 싶다면, 아래 명령어를 사용하면 된다.
아래는 5mb로 올릴때의 예시이다.
server:
grpc_server_max_recv_msg_size: 5242880
https://grafana.com/docs/loki/latest/send-data/promtail/configuration/#server