Prometheus 5

Prometheus TSDB 분석

https://ganeshvernekar.com/blog/prometheus-tsdb-the-head-block/ Prometheus TSDB (Part 1): The Head Block | Ganesh Vernekar Walk-through on how the in-memory part of Prometheus TSDB works ganeshvernekar.com 위 블로그를 바탕으로 좀 더 이해가 될수 있도록 추가 분석한 내용을 정리한다. 프로메테우스는 자체 TSDB(TimeSeries DataBase)를 가지고 있다. DB의 기본적인 특성을 가지고 있으면서도 시계열에 특화된 구조로 되어있다. TSDB의 기본적인 구조는 다음과 같다. Sample (t,v): (timestamp, value) 이 하나..

Monitoring 2024.01.28

nvidia dcgm-exporter(gpu-exporter)

nvidia 에서 제공하는 공식 gpu exporter인 dcgm-exporter에 대해 알아본다. DCGM 이란? DCGM은 DataCenter GPU Manager의 약자로, nvidia gpu 를 위한 종합 관리 및 모니터링 도구다. 이 도구는 데이터 센터 내의 nvidia gpu의 상태를 모니터링하고, 관리하는 데 사용된다. 여기서는 여러 기능 중 하나인 모니터링에 대해서 알아본다. DCGM 은 자체적으로 메트릭을 내보내지 않기 때문에 nvidia 이와 통신해서 메트릭을 만들어서 출력해주는 exporter를 별도로 제공하고 있다. DCGM exporter 동작방식 그림에서와 같이 dcgm exporter는 Kubelet/node-exporter/DCGM과 통신하여 메트릭을 수집한다. Service..

Monitoring 2024.01.18

동적 Prometheus 쿼리 만들기 with golang(레이블 삽입하기)

그라파나를 통해서 사용자에게 메트릭을 제공하려고 할때 가끔가다가 사용자별 테넌트 분리를 해야하는 경우가 있다. 또는 동적으로 변하는 특정 타겟별로 각 메트릭을 얻어오는 사이드카를 만들려고 할때 고정된 쿼리를 사용할수 없는 경우도 있다. 이럴 때는 base prometheus 쿼리를 기반으로 동적으로 레이블을 넣어줄 수 있다. 여기서는 golang client를 이용하는 방법을 설명한다. package main import ( "fmt" "github.com/prometheus/prometheus/promql/parser" ) // addLabelToQuery는 주어진 PromQL 쿼리에 새로운 레이블을 추가합니다. func addLabelToQuery(query, labelName, labelValue ..

Monitoring 2023.12.27

Thanos Tips

Thanos 는 Prometheus 사용할 때 HA 와 Long-term storage 를 보완하기 위한 솔루션으로서 기본적인 컨셉과 설명은 조대협님 블로그에 잘 설명되어 있다. https://bcho.tistory.com/1375 Prometheus 를 스케일링 하기 위한 Thanos (타노스) 문제 정의 프로메테우스가 좋은 모니터링 시스템이긴 하지만 두가지 결정적인 문제점을 가지고 있다. 결정적으로 클러스터링 구조를 지원하지 않기 때문에, 확장성과 가용성 문제를 가지고 있다. 확장성 측면에서.. bcho.tistory.com 여기서는 추가적으로 실 운영단계에서 알아둬야할 몇가지 팁을 요약해보고자 한다. - Thanos의 쿼리 속도는 Vanila Prometheus 보다 최소 2~10배 까지 느릴 수 ..

Monitoring 2020.02.11

Kubernetes 에서 Monitoring System(Prometheus) 운영경험기

필자는 2017년 초부터 현재까지 약 2년 6개월에 가까운 기간동안 kubernetes 기반 모니터링 시스템을 운영하였다.(실제 Prometheus로 운영한 것은 2019년 2월부터) 기간으로만 따지면 매우 긴 기간이지만 그에 비해 경험이 충분하지 않다고 생각한다.(전체 시스템 Scalability에 한계가 있음) 하지만 k8s에서의 모니터링 시스템 운영할 예정이거나 운영하고 계시는 분들에게 미약하게나마 도움이 되고자 사용 경험담(실수, 팁 등)을 공유하고자 한다. 전체를 크게 3개 부분으로 나누었다. 1. Kubernetes 사용 관련 2. Prometheus 설치/운영 관련 3. Prometheus Query, Grafana 사용 관련 각각의 세부 내용은 중요하다고 생각하는 부분을 흐름이나 순서없이 ..

Monitoring 2019.11.27