6. 용어 사전
각 장 첫머리 상자에서 흩어져 나온 말들을 신호별로 다시 모은다
이 장의 사용법3개
신호- 이 덱의 뼈대인 세 신호 — 메트릭 · 로그 · 트레이스([1장](/observability/01-signals/)). 아래 표도 그 순서다.
장 링크- 각 항목의 오른쪽 열은 그 말이 실제로 쓰이는 장이다. 뜻만 필요하면 여기서, 맥락이 필요하면 그 장으로 간다.
질의 언어 셋PromQL · LogQL · TraceQL- 각 신호 절의 아래쪽에 문법 요약을 따로 뒀다. 셋의 모양이 닮은 것을 나란히 보면 외우기 쉽다.
관측 일반
섹션 제목: “관측 일반”| 용어 | 풀 이름 | 뜻 | 장 |
|---|---|---|---|
| 관측 가능성 | Observability | 밖에서 나오는 신호로 안을 알아내는 성질 | 0 |
| 메트릭 · 로그 · 트레이스 | — | 얼마나 / 무슨 일이 / 어디서 느렸나 | 1 |
| 시계열 | Time Series | 이름 + 라벨 조합 하나에 붙은 (시각, 값) 수열 | 1 |
| 카디널리티 | Cardinality | 라벨 조합의 가짓수. 스택을 죽이는 1번 원인 | 1 · 2 · 3 |
| 리텐션 · 보존 | Retention | 데이터를 며칠 들고 있을지. 저장소 크기와 직결된다 | 1 |
| 스크랩 | Scrape | 대상의 /metrics를 주기적으로 긁어 오는 것 | 1 · 2 |
| RED | Rate · Errors · Duration | 서비스를 재는 세 지표. 알림은 여기에 건다 | 2 |
| USE | Utilization · Saturation · Errors | 자원을 재는 세 지표. 조사용이지 알림용이 아니다 | 2 |
| 구조화 로그 | Structured Logging | JSON 등 기계가 파싱할 수 있는 로그. 라벨을 절제할 수 있게 하는 전제 | 3 |
| LGTM 스택 | Loki · Grafana · Tempo · Mimir | Grafana Labs 관측 묶음. 이 덱은 Mimir 대신 Prometheus | 0 |
수집 — 에이전트와 표준
섹션 제목: “수집 — 에이전트와 표준”| 용어 | 풀 이름 | 뜻 | 장 |
|---|---|---|---|
| 수집기 | Collector · Agent | 신호를 모아 저장소로 보내는 중간 프로세스 | 1 |
| Grafana Alloy | — | 로그·메트릭·트레이스 통합 수집기. Promtail은 EOL | 1 · 3 |
| OTel | OpenTelemetry | 계측·수집의 벤더 중립 표준 (SDK · 프로토콜 · 컬렉터) | 0 · 4 |
| OTLP | OpenTelemetry Protocol | OTel의 전송 프로토콜. 트레이스·메트릭·로그 모두 이걸로 | 4 |
| relabel | 리라벨링 | 수집 단계에서 라벨을 만들거나 잘라 내는 규칙 | 2 · 3 |
| discovery · source · write | — | Alloy 파이프라인의 단계 — 찾고 · 읽고 · 보낸다 | 3 |
① 메트릭 — Prometheus
섹션 제목: “① 메트릭 — Prometheus”| 용어 | 풀 이름 | 뜻 | 장 |
|---|---|---|---|
| pull 모델 | — | 대상을 직접 긁는 방식. up == 0이 곧 “죽었다” | 2 |
| counter | 카운터 | 늘기만 한다. 재시작하면 0으로. _total로 끝난다 — 반드시 rate()로 본다 | 2 |
| gauge | 게이지 | 오르내리는 현재값. 그대로 그린다 | 2 |
| histogram | 히스토그램 | 관측값을 구간(le)별로 센 것. _bucket·_sum·_count 세 쌍 | 2 |
| summary | 서머리 | 앱이 미리 계산한 분위수. 인스턴스끼리 합칠 수 없다 | 2 |
le | less or equal | 히스토그램 버킷의 경계 라벨. 집계할 때 반드시 남긴다 | 2 |
| exporter | 익스포터 | 메트릭을 Prometheus 형식으로 내주는 프로그램 | 2 |
| node-exporter · kube-state-metrics | — | 노드 상태 / 쿠버네티스 오브젝트 상태를 내주는 두 exporter | 2 |
| ServiceMonitor · PodMonitor | — | “이걸 긁어라”를 선언하는 CRD | 2 |
| PrometheusRule | — | 알림·기록 규칙을 선언하는 CRD | 2 |
| 기록 규칙 | Recording Rule | 무거운 쿼리를 미리 계산해 새 메트릭으로 저장 | 2 |
| kube-prometheus-stack | — | Operator + Prometheus + Alertmanager + Grafana 묶음 Helm 차트 | 2 |
| TSDB | Time Series Database | 시계열 저장소. Prometheus는 로컬 디스크에 쓴다 | 2 |
| Alertmanager | — | 알림의 라우팅 · 묶음 · 억제 · 침묵 | 2 |
| inhibit · silence | 억제 · 침묵 | 상위 알림이 있을 때 하위를 묻기 / 일시적으로 끄기 | 2 |
| Watchdog | — | 항상 발화하는 알림. 알림 경로가 죽은 것을 알아채는 장치 | 2 |
| Thanos · Mimir | — | 메트릭 장기 저장소. 필요해지기 전에 넣지 않는다 | 2 |
PromQL 문법 요약
섹션 제목: “PromQL 문법 요약”| 쓰는 것 | 무엇 |
|---|---|
이름{라벨="값"} | 순간 벡터 — 지금 시점의 값들 |
이름[5m] | 범위 벡터 — 지난 5분치. 함수 안에서만 쓴다 |
rate(x[5m]) · increase(x[1h]) | counter의 초당 속도 · 구간 증가량 |
sum by (l) (...) · sum without (l) (...) | 라벨을 남기고 / 지우고 합친다 |
histogram_quantile(0.99, sum by (le, …) (rate(…_bucket[5m]))) | p99. le를 남기는 것이 핵심 |
predict_linear(x[6h], 24*3600) < 0 | 추세를 외삽 — “찰 것 같다” |
absent(up{job="x"}) | 시계열이 아예 없을 때 참 |
topk(5, …) | 상위 5개 |
순서는 언제나 rate → sum by → histogram_quantile.
② 로그 — Loki
섹션 제목: “② 로그 — Loki”| 용어 | 풀 이름 | 뜻 | 장 |
|---|---|---|---|
| 스트림 | Stream | 라벨 조합 하나 = 스트림 하나. 로그는 스트림 단위로 뭉친다 | 3 |
| chunk | 청크 | 스트림의 로그를 뭉쳐 압축한 덩어리. 오브젝트 스토리지로 간다 | 3 |
| LogQL | Log Query Language | Loki 질의 언어. 네 단계로 읽는다 — 아래 요약 | 3 |
| 라인 필터 · 파서 | Line Filter · Parser | 본문 문자열로 거르기 / 필드를 꺼내기. 필터가 먼저여야 빠르다 | 3 |
| compactor | — | chunk 정리와 보존 기간 적용을 맡는 컴포넌트 | 3 |
| monolithic · SSD · microservices | — | Loki 배포 모드 셋. monolithic → SSD 순으로 간다 | 3 |
| 테넌트 | Tenant | X-Scope-OrgID로 가르는 격리 단위. 팀·규정별 분리에 | 3 |
| ingester · querier | — | 인입을 받아 chunk로 만드는 쪽 / 질의를 처리하는 쪽 | 3 |
| ruler | — | 로그로 알림 규칙을 평가하고 Alertmanager로 보내는 컴포넌트 | 3 · 5 |
LogQL 문법 요약
섹션 제목: “LogQL 문법 요약”| 단계 | 쓰는 것 | 무엇 |
|---|---|---|
| ① 스트림 선택 | {namespace="prod", app="api"} | 필수. 읽을 chunk의 범위 |
| ② 라인 필터 | |= != |~ !~ | 본문 문자열로 거른다. 파서보다 앞에 |
| ③ 파서 | | json | logfmt | pattern | regexp | 필드를 꺼낸다 |
| ④ 라벨 필터 | | status >= 500 | 꺼낸 필드로 다시 거른다 |
| ④ 출력 | | line_format "{{.msg}}" | 보이는 줄을 다시 조립 |
| ④ 집계 | sum by (app) (rate({…}[5m])) | 로그를 세어 그래프로 |
| ④ 숫자 집계 | quantile_over_time(0.99, {…} | json | unwrap duration_ms [5m]) | 꺼낸 필드를 숫자로 |
③ 트레이스 — Tempo와 OpenTelemetry
섹션 제목: “③ 트레이스 — Tempo와 OpenTelemetry”| 용어 | 풀 이름 | 뜻 | 장 |
|---|---|---|---|
| 트레이스 · 스팬 | Trace · Span | 요청 하나의 여정 / 그 안의 구간. 트리로 쌓인다 | 4 |
trace_id · parent_span_id | — | 같은 요청을 묶는 값 / 트리 계층을 만드는 값 | 4 |
| 리소스 속성 | Resource Attributes | 프로세스 전체에 붙는 꼬리표 (service.name · k8s.pod.name) | 4 |
| 스팬 속성 | Span Attributes | 그 구간에만 붙는 꼬리표 (http.route · db.statement) | 4 |
| span kind | — | server · client · producer · consumer · internal | 4 |
| 컨텍스트 전파 | Context Propagation | 서비스 사이로 트레이스 ID를 넘기는 것 (traceparent) | 4 |
| 자동 계측 | Auto-instrumentation | 에이전트가 HTTP·DB 호출을 알아서 잡는 방식 | 4 |
| head · tail 샘플링 | — | 시작할 때 결정 / 끝나고 결과를 보고 결정 | 4 |
| TraceQL | — | Tempo 질의 언어 — 아래 요약 | 4 |
| 서비스 그래프 | Service Graph | 트레이스에서 자동 생성한 “누가 누구를 부르나” 지도 | 4 |
| 스팬 메트릭 | Span Metrics | 트레이스에서 뽑아낸 요청 수·지연·에러율 | 4 |
TraceQL 문법 요약
섹션 제목: “TraceQL 문법 요약”| 쓰는 것 | 무엇 |
|---|---|
{ duration > 2s } | 스팬 자체의 값 — duration · status · name은 접두사가 없다 |
{ resource.service.name = "orders" } | 프로세스 꼬리표로 고르기 |
{ span.http.route = "/orders" } | 구간 꼬리표로 고르기 |
A >> B · A > B | B가 A의 자손 / 직계 자식인 트레이스 |
{ … } | count() > 3 | 조건에 맞는 스팬이 3개 이상 — N+1 질의 찾기 |
| select(span.db.statement) | 결과 표에 이 필드를 같이 보여 준다 |
④ 조회와 연결 — Grafana
섹션 제목: “④ 조회와 연결 — Grafana”| 용어 | 풀 이름 | 뜻 | 장 |
|---|---|---|---|
| 데이터소스 | Data Source | Grafana가 붙는 저장소 하나. uid로 서로를 참조한다 | 5 |
| 프로비저닝 | Provisioning | 대시보드·데이터소스를 파일·CRD로 미리 넣는 것 | 5 |
| Explore | 탐색 | 질의를 그때그때 던지는 화면. 분할 화면이 조사의 핵심 도구 | 5 |
| derived field | 파생 필드 | 로그에서 값을 뽑아 다른 데이터소스로 링크. trace_id → Tempo | 5 |
| exemplar | 표본 링크 | 메트릭 한 점에 매달린 대표 트레이스 ID. 그래프 → 트레이스 | 1 · 5 |
| trace to logs | — | 트레이스 화면에서 그 서비스·시각의 로그로 가는 설정 | 5 |
| 템플릿 변수 | Template Variable | $service 드롭다운. 대시보드 개수를 억누르는 장치 | 5 |
| Unified Alerting | 통합 알림 | Grafana 자체 알림. Alertmanager와 역할이 겹친다 | 5 |
다른 덱으로 넘긴 말들
섹션 제목: “다른 덱으로 넘긴 말들”| 주제 | 어디에 |
|---|---|
| Pod · Deployment · Service · PV/PVC · 리소스 요청·제한 | CKA 덱 |
| 오브젝트 스토리지 · 버킷 · path-style · 라이프사이클 | 온프렘 덱 6장 |
| CloudNativePG · WAL · PITR (Grafana의 DB) | 온프렘 덱 7장 |
| oauth2-proxy · 깨진 유리 계정 · OIDC claim | 온프렘 덱 5장 · Keycloak 덱 |
| 인프라 노드 배치 · 용량 계획 | 온프렘 덱 8장 · 12장 |
| egress 프록시 · 사내 CA | 온프렘 덱 1장 · 4장 |
| 토픽 · 파티션 · 컨슈머 그룹 (Tempo 3.0의 인입 경로) | Kafka 덱 |
| systemd 저널 · 리눅스 로그 로테이션 | 서버 관리 덱 |
7. 마무리전체 지도, 장별 한 문장, 도입 순서 체크리스트, 그리고 사고 대응 카드.