본문으로 건너뛰기

관측성 개요

Lumie의 observability 스택은 lumie-infra/observability/**에서 GitOps로 관리되며, UI 접근은 대부분 퍼블릭 ingress가 아니라 Teleport를 통해 노출됩니다.

경계

표면주요 소스 경로네임스페이스비고
Prometheuslumie-infra/observability/prometheus/**prometheusrule 평가, 짧은 로컬 보존, OTLP receiver 활성화
Grafanalumie-infra/observability/grafana/**grafanaUI 및 datasource 허브, infra-db 백엔드 사용
Lokilumie-infra/observability/loki/**lokiemptyDir 로컬 파일시스템 기반 짧은 보존 로그 스토어
Tempolumie-infra/observability/tempo/**tempoemptyDir 기반 짧은 보존 trace 스토어
OpenTelemetry operatorlumie-infra/observability/opentelemetry-operator/**opentelemetry-operatorCRD, webhook, target allocator 지원 설치
OpenTelemetry collectorlumie-infra/observability/opentelemetry/**opentelemetry스크레이프, 로그 수집, 텔레메트리 export를 수행하는 DaemonSet
Alertmanager 및 Karmalumie-infra/observability/alertmanager/**alertmanager알림 라우팅과 UI
Blackbox, Goldilocks, KSM, node-exporter, VPA, Thanoslumie-infra/observability/*앱별 상이보조 probe, exporter, 추천 서비스

런타임 흐름

눈에 잘 띄지 않는 플랫폼 결정

  • 대부분의 워크로드 스크레이프는 Prometheus가 아니라 OpenTelemetry가 수행합니다. collector의 Prometheus receiver가 Target Allocator를 사용해 ServiceMonitor와 PodMonitor 리소스를 읽고, 메트릭을 OTLP HTTP로 Prometheus에 export합니다.
  • Prometheus는 로컬 보존을 3일만 유지하며, 현재 오브젝트 스토리지로 block을 업로드하지 않습니다.
  • 따라서 Thanos는 오늘 장기 메트릭 아카이브가 아니라 query 및 deduplication 계층입니다.
  • Loki와 Tempo는 모두 emptyDir 스토리지와 약 3일 보존으로 실행되므로 pod 교체 시 이력이 사라집니다.
  • Teleport는 lumie-infra/security/teleport/agent/helm-values.yaml에서 Grafana, Prometheus, Alertmanager, Karma, Goldilocks 등 운영자 UI를 게시합니다.

공통 장애 패턴

  • OpenTelemetry collector가 비정상이면 메트릭, 로그, 트레이스가 모두 한꺼번에 저하됩니다. collector가 fan-out 허브이기 때문입니다.
  • Prometheus는 healthy인데 rule 발화가 이상하다면, collector가 여전히 올바른 ServiceMonitor를 스크레이프하는지 확인하세요.
  • Grafana 대시보드는 뜨지만 과거 이력이 보이지 않으면, 요청 시간 범위가 Prometheus, Loki, Tempo의 로컬 보존 기간을 초과했는지 확인하세요.
  • 운영자 UI에 접근할 수 없으면, 기본 서비스가 다운되었다고 가정하기 전에 Teleport 앱 등록을 먼저 확인하세요.

검증

kubectl get applications.argoproj.io -n argocd | rg 'observability|prometheus|grafana|loki|tempo|opentelemetry|alertmanager|thanos'
kubectl get pods -n prometheus
kubectl get pods -n opentelemetry
kubectl get pods -n grafana
kubectl get pods -n loki
kubectl get pods -n tempo

관련 페이지