목록전체 글 (56)

LogQLLogQL은 Log Stream Selector를 통해 동작한다. Log Stream Selector는 ,로 분리된 여러 쌍의 Key-Value 형태로 명시된다. 여러 쌍의 Key-Value 데이터들을 { } 로 감싸서 Stream Selector를 구분하게 된다. Grafana에서 제공하는 intro-to-mltp 프로젝트에서 Builder를 통해 label을 선택하게 되면 아래쪽에 Log Stream Selector를 확인할 수 있다.{level="error", beast="beholder"} 위 예제의 Log Stream Selector는 모든 Log Stream들 중에서 명시된 Key-Value의 label들을 가지는 스트림들만 쿼리 결과에 포함시키게 된다. LogQL은 이외에도 여러 연..
Chapter 3 - Embracing Risk📌 SummarySRE 조직에서는 완벽한 가용성을 목표로 삼기보다는 비즈니스 목표와 사용자 기대치를 고려하여 적절한 수준의 신뢰성을 유지하는 것이 핵심이다. 모든 시스템의 가용성을 100%로 설정하려 하면 과도한 운영 비용이 발생할 수 있으며, 이는 불필요한 경우가 많다. 가용성 목표치를 100%로 맞추기 위해 더 많은 노력을 기울이는 대신, 일정 수준의 다운타임을 허용함으로써 운영 비용 절감과 새로운 기능 개발의 균형을 맞추려 한다. 서비스의 위험 수용도(Risk Tolerance) 를 정의할 때는, 해당 서비스의 기능과 시장 내 위치를 고려해야 하며, 소비자 대상 서비스인지 인프라스트럭처 서비스인지에 따라 차이가 발생한다. 예를 들어, 유튜브와 같은 소..

Project Architecture Diagram아래의 아키텍처는 Grafana에서 제공하는 intro-to-mltp라는 프로젝트의 아키텍처로, 본 글은 Grafana의 Loki, Grafana, Tempo, Mimir를 통해 해당 프로젝트에서 발생하는 에러의 원인을 파악하는 것을 목적으로 한다.Loki로그는 어디서든 발생할 수 있기 때문에 로그에서 특정한 내용을 찾으려고 할 때 다소 어려움이 존재할 수 있다. 또한 시스템의 가동 시간이 길어지고 사용량이 많아질 수록 기록이 방대해지면서 저장 공간의 필요성도 커지고 있다. 또한, 방대한 양의 로그를 어떤 식으로 결합하고 의미있는 방식으로 집계할지에 대한 고민이 필요하다.이에 더해, 영구적이지 않은 저장소에서 정보를 추출하는 것은 불확실성을 내포하고 있기..