<aside> 💡 ADR: promtail로의 rollback 결정
context promtail과 python-logging-loki중 어떤 것을 log를 server로부터 loki로 전달해주는 매개체로 사용할 지 ADR을 전에 남겼었다. promtail을 사용하면 아키텍처를 더 복잡하게 한다는 판단으로 그리고 충분히 library로도 이를 커버할 수 있겠다는 판단으로 python library를 사용하자는 결정을 내렸다. 하지만 점차 library의 불완정성 때문에 log를 처리할 때 error와 info logging에 대한 formatting 차이로 많은 오류가 발생했고, 이를 처리하는 과정에서 error가 발생하면 두 개의 logger가 각각 3번씩 무려 6번 로깅을 해야하는 overhead가 발생하는 지경에 이르렀다.
decision 나는 그래서 원래 promtail로 구축했던 과거로 다시 돌아가기로 결정. 불완전한 library로 잘 작업하지 않는 이유에 대해서 시행착오를 겪으면서 절실히 깨달았고 더 늦지 않을 때 promtail을 이용해서 grafana-loki docs에서 제공하는 형식으로 아키텍처를 설계하기로 결정.
consequence grafana-loki에서 공식적으로 결합성이 가장 높은 log 적재 middle ware라고 한만큼 안정성과 편리한 기능들을 제공받을 수 있음. 하지만 지금까지 구성했던 구조를 갈아엎고 처음부터 다시 설정을 해야하며, 그리고 이를 진행하면서 어떤 돌발상황이 생길지 확실하게 예측할 수 없어서 공수가 조금 더 들 수 있음. 하지만 이 정도는 충분히 감수할만한 선택이라고 판단.
</aside>