용어집
용어집 (Glossary)
프로메테우스(Prometheus) 세계에서 쓰이는 용어들은 처음 보면 낯설 수 있어요. 이 문서는 프로메테우스가 나오는 글을 읽거나 대화할 때 만나게 되는 핵심 용어들을 한곳에 모아 둔 용어집이에요. 알림(Alert)부터 타임시리즈(Time Series)까지, 각 용어가 정확히 무엇을 뜻하는지 차분히 짚어 드릴게요. 옆에서 하나씩 설명해 드리는 느낌으로 천천히 따라와 보세요.
용어 하나하나가 서로 연결되어 있어요. 예를 들어 클라이언트 라이브러리(Client library)로 계측(instrumentation)한 코드에서 수집한 샘플(Sample)이 타임시리즈(Time Series)로 저장되고, 이걸 쿼리로 조회하며, 알림 규칙(alerting rule)이 발화하면 알림(Alert)이 되어 Alertmanager로 보내지는 흐름이죠. 이 문서를 기준으로 전체 그림을 그려 보면 훨씬 이해가 빨라질 거예요.
출처: 문서
본문
Alert (알림)
알림(Alert)은 프로메테우스에서 알림 규칙(alerting rule)이 현재 발화(firing) 중일 때 만들어지는 결과물이에요. 알림은 프로메테우스에서 Alertmanager로 전송돼요.
Alertmanager
Alertmanager는 알림을 받아서 그룹으로 묶고(aggregation), 중복을 제거하며(de-duplication), 사일런스(silence)를 적용하고, 스로틀링(throttling)한 뒤 이메일, Pagerduty, Slack 등으로 알림(notification)을 전송해요.
Bridge (브리지)
브리지(Bridge)는 클라이언트 라이브러리에서 샘플을 가져와 프로메테우스가 아닌 다른 모니터링 시스템에 노출시키는 컴포넌트예요. 예를 들어 Python, Go, Java 클라이언트는 메트릭을 Graphite로 내보낼 수 있어요.
Client library (클라이언트 라이브러리)
클라이언트 라이브러리(Client library)는 어떤 언어(예: Go, Java, Python, Ruby)로 작성된 라이브러리로, 여러분의 코드를 직접 계측(instrument)하기 쉽게 만들어 주고, 다른 시스템에서 메트릭을 가져오는 커스텀 컬렉터(custom collector)를 작성하며, 메트릭을 프로메테우스에 노출시키는 일을 쉽게 해 줘요.
Collector (컬렉터)
컬렉터(Collector)는 익스포터(exporter)의 일부로, 메트릭의 집합을 나타내요. 직접 계측(direct instrumentation)의 일부라면 단일 메트릭일 수도 있고, 다른 시스템에서 메트릭을 가져오는 경우라면 여러 메트릭일 수도 있어요.
Direct instrumentation (직접 계측)
직접 계측(Direct instrumentation)은 클라이언트 라이브러리를 사용해서 프로그램의 소스 코드 안에 인라인으로 추가한 계측 코드를 말해요.
Endpoint (엔드포인트)
스크랩(scrape)할 수 있는 메트릭의 소스로, 보통 단일 프로세스에 대응해요.
Exporter (익스포터)
익스포터(Exporter)는 메트릭을 얻고 싶은 애플리케이션과 나란히 실행되는 바이너리예요. 익스포터는 프로메테우스 메트릭을 노출하며, 보통 프로메테우스가 아닌 형식으로 노출되는 메트릭을 프로메테우스가 지원하는 형식으로 변환해서 제공해요.
Instance (인스턴스)
인스턴스(Instance)는 잡(Job) 안에서 타깃(target)을 고유하게 식별하는 라벨이에요.
Job (잡)
스케일 아웃이나 신뢰성을 위해 복제된 비슷한 프로세스 그룹을 모니터링하는 것처럼, 같은 목적을 가진 타깃(target)의 모음이 잡(Job) 이라고 불려요.
Mixin (믹신)
믹신(Mixin)은 특정 컴포넌트나 시스템을 위한 재사용 가능하고 확장 가능한 프로메테우스 알림(alert), 기록 규칙(recording rule), Grafana 대시보드의 집합이에요. 믹신은 보통 Jsonnet으로 패키징되며, 이를 조합해 포괄적인 모니터링 구성을 만들 수 있어요. 유사한 인프라 컴포넌트 전반에 걸쳐 표준화된 모니터링을 가능하게 해 줘요.
Notification (알림 통지)
알림 통지(Notification)는 하나 이상의 알림으로 구성된 그룹을 나타내며, Alertmanager가 이메일, Pagerduty, Slack 등으로 전송해요.
Promdash
Promdash는 프로메테우스용 네이티브 대시보드 빌더였어요. 이제는 더 이상 사용되지 않으며(deprecated) Grafana로 대체되었어요.
Prometheus (프로메테우스)
프로메테우스(Prometheus)는 보통 프로메테우스 시스템의 핵심 바이너리를 가리켜요. 프로메테우스 모니터링 시스템 전체를 가리킬 수도 있어요.
PromQL
PromQL은 프로메테우스 쿼리 언어(Prometheus Query Language)예요. 집계(aggregation), 분해 및 분석(slicing and dicing), 예측(prediction), 조인(joins)을 포함한 폭넓은 연산을 지원해요.
Pushgateway
Pushgateway는 배치 잡(batch job)에서 푸시된 가장 최근의 메트릭을 보관해요. 이를 통해 프로메테우스가 잡이 종료된 뒤에도 해당 메트릭을 스크랩할 수 있어요.
Recording Rules (기록 규칙)
기록 규칙(Recording rules)은 자주 필요하거나 계산 비용이 많이 드는 표현식을 미리 계산해서, 그 결과를 새로운 타임시리즈 집합으로 저장해요.
Remote Read (원격 읽기)
원격 읽기(Remote read)는 프로메테우스의 기능으로, 쿼리의 일부로서 다른 시스템(예: 장기 저장소)의 타임시리즈를 투명하게 읽을 수 있게 해 줘요.
Remote Read Adapter (원격 읽기 어댑터)
모든 시스템이 원격 읽기를 직접 지원하지는 않아요. 원격 읽기 어댑터(Remote read adapter)는 프로메테우스와 다른 시스템 사이에 위치해, 둘 사이의 타임시리즈 요청과 응답을 변환해 줘요.
Remote Read Endpoint (원격 읽기 엔드포인트)
원격 읽기 엔드포인트(Remote read endpoint)는 원격 읽기를 수행할 때 프로메테우스가 통신하는 대상이에요.
Remote Write (원격 쓰기)
원격 쓰기(Remote write)는 프로메테우스의 기능으로, 수집된 샘플을 즉시 다른 시스템(예: 장기 저장소)으로 전송할 수 있게 해 줘요.
Remote Write Adapter (원격 쓰기 어댑터)
모든 시스템이 원격 쓰기를 직접 지원하지는 않아요. 원격 쓰기 어댑터(Remote write adapter)는 프로메테우스와 다른 시스템 사이에 위치해, 원격 쓰기의 샘플을 상대 시스템이 이해할 수 있는 형식으로 변환해 줘요.
Remote Write Endpoint (원격 쓰기 엔드포인트)
원격 쓰기 엔드포인트(Remote write endpoint)는 원격 쓰기를 수행할 때 프로메테우스가 통신하는 대상이에요.
Sample (샘플)
샘플(Sample)은 타임시리즈에서 특정 시점의 단일 값을 뜻해요.
프로메테우스에서 각 샘플은 float64 값과 밀리초 정밀도의 타임스탬프로 구성돼요.
Silence (사일런스)
Alertmanager의 사일런스(Silence)는 사일런스에 지정된 라벨과 일치하는 알림이 통지(notification)에 포함되지 않도록 막아 줘요.
Target (타깃)
타깃(Target)은 스크랩할 대상 객체의 정의예요. 예를 들어 어떤 라벨을 적용할지, 연결에 필요한 인증이 무엇인지, 그리고 스크랩이 어떻게 일어날지 정의하는 기타 정보를 포함해요.
Time Series (타임시리즈)
프로메테우스의 타임시리즈(Time series)는 같은 메트릭과 같은 라벨 차원 집합에 속하는, 타임스탬프가 붙은 값들의 스트림이에요. 프로메테우스는 모든 데이터를 타임시리즈로 저장해요.
더 알아보기 (Learn more)
- 미디어 (Media) — 프로메테우스 관련 블로그, 튜토리얼, 강연 자료 모음
- 릴리스 주기 (Release cycle) — 프로메테우스의 버전 정책과 지원 주기
- Alertmanager 개요 — 알림이 어떻게 그룹화·중복 제거·전송되는지
- PromQL 기초 — 프로메테우스 쿼리 언어의 시작점