본문 바로가기

반응형

Log,Monitorings

(17)
[Log] Grafana Loki 성능 최적화 방법 정리 Loki 3.0에서는 Bloom Filter가 도입될 예정이라고 한다. (이미 Loki 3.0은 release 되었다. Loki를 갓 도입하는 분들는 3.x 버전으로 도입하는게 좋아보인다.) 아마 이게 도입되면 필터링 검색 시 굉장히 빨라질 것으로 생각한다. 하지만 현재 2.x 버전에서는 Bloom Filter란 개념이 없기 때문에 Log 사이즈가 많을 경우 검색 속도에 이슈를 겪는 분들이 상당할 것이다. 당연히 Querier OOM 이슈 또한 그렇다. 이 글은 이런 문제를 해결할 수 있도록 도움을 줄 수 있을것이다. 3.x 버전이 아닌 2.x 버전 기준으로 작성되었으니 참고하셔서 볼 것. Write1. Timestamp Oedering 아래 글에 정리해두었으니 참고할 것. https://nyyang.t..
[Opentelemetry Collector] RED Metric 생성과 샘플링 정책 완벽히 구성하기 1. 개요필자의 경우 Grafana Tempo를 사용하고 있다. Grafana Tempo의 경우 Metrics Generator를 통해 RED Metric을 생성할 것을 권장하고 있다. Metrics-generator | Grafana Tempo documentationOpen source Metrics-generator Metrics-generator is an optional Tempo component that derives metrics from ingested traces. If present, the distributor will write received spans to both the ingester and the metrics-generator. The metrics-generator p..
[Log] Grafana Loki 로그 Write 시 참고 사항 해당 글에서는 운영 시 참고하면 좋을 내용들만 정리합니다. 쓰기와 읽기로 나누어 각각 어떤 부분을 고려하며 Loki를 운영하면 좋은지에 대해 정리합니다. 정석적인 내용은 아니기에 참고용으로만 봐주세요. 1. 로그 쓰기 로그 쓰기 작업은 다양한 방식으로 수행할 수 있다. Log Client로부터 로그를 수집 및 정재한 뒤에 Loki로 바로 전송할 수도 있고 Kafka 같은 Queue를 두어 전송할 수도 있다. Grafana Loki에서는 Promtail, Grafana Agent를 위주로 설명하고 있지만 필수는 아니며 fluentBit, Logstash, fluentD, Vector 등 다양한 Log Client는 물론 AWS Lambda와 같은 Serverless에서 loki HTTP 요청을 통해서도 로..
[Opentelemetry] spanmetrics connector에 대해 알아보기 Span Metrics Connector는 span data로부터 RED(Request, Error, Duration) 메트릭을 만들어낸다. 생성되는 메트릭들은 다음의 dimension들을 최소한 가지게 된다. - service.name - span.name - span.kind - status.code 1. 설정값 histogram : Span duration 측정기준으로부터 record를 계산하기 위한 히스토그램 (explicit, exponential) dimensions : service.name, span.name, span.kind, status.code 외에 생성되는 메트릭들의 label로 등록하고 싶은 리스트 예를 들어 시계열 메트릭의 Label로 IP , Region 등을 추가하고 싶다면..
[Monitoring] Grafana Tempo 알아보기 Grafana Tempo란? Grafana Tempo란 Distributed tracing backend(분산 트레이싱 저장소)이다. Open source tracing protocol(Jaeger, OpenTelemetry, Zipkin, ..)와 연결하여 Tempo를 분산 트레이싱 저장소로써 활용 가능하다. 그렇다면 여기서 분산 트레이싱이란 무엇일까? 분산 트레이스(Distributed Tracing)는 분산 시스템에서 발생하는 작업의 수행 경로를 추적하고 모니터링하기 위한 기술이다. 마이크로서비스 환경에서는 수십, 수백개의 서비스가 존재하고 각 서비스들은 서로 API 간 통신, 데이터베이스, 캐시 서버등 다양한 컴포넌트간 통신하며 서비스를 이루게 된다. 마이크로서비스의 장점은 각 서비스가 독립적으..
[EKS] Data Transfer 비용 절감 작업 (istio destination rule, topology aware hints) EKS 상에서 Data Transfer 비용을 줄이기 위해 했던 노력들과 그 후기를 정리해본다. 결론을 말하자면 서비스 안정성이 더 우선이기에 Data Transfer 줄이기 위한 작업은 포기했다. 1. Data Transfer 발생 원인Data Transfer 비용은 크게 2가지에서 발생되었다. 1. NAT Gateway 비용 2. AZ 간 통신 비용 여기서 이제 Bytes 단위로 과금이 되는데 AZ 간 통신할 때 Network Bytes가 많으면 그만큼 과금이 된다고 보면 된다. 본 글에서는 AZ 간 통신 Data Transfer 비용에 대해서 다룬다.2. EKS에서 Data Transfer 절감 방안요즘 인터넷에 EKS에서 Data Transfer를 절감할 수 있는 다양한 방안들에 대해서 많이 소개..
[Loki] Python으로 Loki에 로그 보내는 방법 일반적으로 Promtail, Logstash, fluentBit 등을 통해 로그를 전송하는 방법이 일반적이다. 하지만 경우에 따라서는 별도 개발언어를 사용하여 커스텀하게 Loki로 Log를 전송할 수 있다. 당연히 Loki도 HTTP API를 지원하기에 API Spec에 따라 POST로 로그를 전송하면 되기 때문이다. https://grafana.com/docs/loki/latest/api/#push-log-entries-to-loki Grafana Loki HTTP API | Grafana Loki documentation Open source Grafana Loki HTTP API Grafana Loki exposes an HTTP API for pushing, querying, and tailing..
Grafana Monitoring 스택 LGTM 구성기 (Loki, Mimir, Tempo) 아직 LGTM(Loki , Grafana , Tempo , Mimir)관련 한글 자료가 별로 없어서 간략하게 작성해본다. 회사에서 도입을 고민하고 있거나 PoC 중이라면 이 글이 조금의 도움은 될 수 있겠다고 본다. LGTM이란 무엇일까? Grafana에서 밀고 있는 LGTM(Loki , Grafana , Tempo , Mimir)이란 무엇일까? L : Loki (로그 수집 저장소) G : Grafana (시각화) T : Tempo (분산 추적 저장소 , APM) M : Mimr (시계열 메트릭 저장소) 그럼 왜 Grafana에서는 LGTM을 밀고 있는 것일까? 잘 생각해보면 답은 은근히 간단한데, 보통 시스템 모니터링 , 로깅 , 애플리케이션 성능 모니터링을 구성하기 위해 대부분의 회사에서 여러가지 오..

반응형