Architecture
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f2029ddb-0e20-49ca-a2ea-5901a4b19f50/Untitled.png)
- Jobs/exporters
- 메트릭을 수집하는 프로세스로 간단하게 모니터링 데이터를 수집하는 Agent 역할
- exporter는 수집한 메트릭을 HTTP를 통해 가져갈 수 있도록 /metrics라는 HTTP 엔드포인트를 제공
- Prometheus Server
- exporter에 수집된 데이터를 주기적으로 가져와(Retrieval) 시계열 저장소에 넣고(TSDB) 독자적인 웹서버(HTTP server)를 통해 조회 및 활용할 수 있도록 함
- agent가 데이터를 서버로 넣어주는 PUSH 방식을 사용하는 대부분의 모니터링 시스템과 다르게 prometheus는 exporter들의 HTTP Endpoint에서 수집된 데이터를 주기적으로 가져오는 Pool 방식으로 동작
- Alertmanager
- Prometheus Server가 판단한 내용을 기반으로 알람을 보내주면 이를 설정된 방식으로 notification해주는 역할
- Grafana를 비롯한 다양한 클라이언트
- PromQL을 사용하여 데이터를 시각화하거나 재가공 할 수 있음
- Pushgateway
- 상황에 따라서 순간 발생하고 사라지는 spot성 데이터들이 있고 이들을 수집하기 위한 방법이 필요하기 때문에 Prometheus에서는 Pushgateway를 제공
- 짧은 주기를 갖는 데이터들을 pushgateway로 필요한 순간 보내면 데이터 발생주체(exporter)가 사라져도, prometheus의 데이터 수집주기에 pushgateway를 통해 그 데이터들을 수집해 갈 수 있음
Kube-prometheus
kube-prometheus 프로젝트는 쿠버네티스 클러스터를 모니터링하기 위한 것으로, 모든 쿠버네티스 컴포넌트들의 매트릭스를 수집하도록 사전 설정되었고 추가로 대시보드와 알림 규칙의 기본 세트를 제공한다.
https://github.com/prometheus-operator/kube-prometheus
Grafana
cpu 확인
100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
bot id 확인
<https://api.telegram.org//bot6524870024:AAEz9Zkb9PPyRjuqr5OD6CteDbzDyzULRDg/getUpdates>
https://xapi.telegram.org/bot6524870024:AAEz9Zkb9PPyRjuqr5OD6CteDbzDyzULRDg/getUpdates
[Kubernetes] kube-prometheus 배포 (use storageclass)