데이터·관측성
로그 수집, 검색 엔진, 지표와 알람, 데이터 저장소.
Elastic APM Agent vs RUM Agent
APM Agent는 서버 사이드를, RUM Agent는 브라우저 사이드를 봅니다. 백엔드 응답은 빠른데 사용자는 느리다고 할 때, 그 간극이 RUM에만 보입니다.
PromQL rate() vs irate() — 평균 증가율과 순간 증가율
둘 다 Counter의 초당 증가율인데, rate는 범위 전체의 평균, irate는 마지막 두 샘플의 순간값입니다. 알람엔 rate, 실시간 대시보드엔 irate.
Redis SETNX 분산 락 — TTL·소유권·원자적 해제
여러 Pod가 같은 스케줄 작업을 중복 실행하지 않게 SETNX로 락을 겁니다. 그런데 TTL 없으면 데드락, 값이 단순하면 남의 락을 풀고, GET·DEL 사이엔 경합이 생깁니다.
Fluentd OOM — 메모리 버퍼 vs 파일 버퍼
버퍼가 메모리에 무제한으로 쌓이는 구성이었습니다. 파일 버퍼로 바꾸고 상한을 걸었는데, 배포 과정에서 다섯 번 막혔습니다.
EKS Thanos 배포 트러블슈팅 — StorageClass·IRSA 연쇄 오류
StorageClass 하나 잘못 잡은 게 StatefulSet 재생성으로 번지고, IRSA Trust Policy에 ServiceAccount 하나 빠진 게 컴포넌트마다 Access Denied로 나왔습니다.
Postgres initdb 실패 — 볼륨 루트의 lost+found
Postgres 파드가 CrashLoopBackOff에 빠졌습니다. 이미지도 권한도 문제가 아니었고, EBS 볼륨을 데이터 디렉토리에 직접 마운트하면서 생긴 lost+found가 initdb의 빈 디렉토리 검사를 통과 못 시켰습니다.
Kafka Schema Registry — 비즈니스 이벤트 계약
Schema Registry는 로그 파이프라인이 아니라 서비스 간 비즈니스 이벤트의 스키마를 지킵니다. 호환성 모드를 걸면 깨질 스키마를 배포 시점에 막아, 런타임 장애를 배포 실패로 바꿉니다.
Redis ENOTFOUND — 원래 항상 나던 에러
파드가 뜰 때마다 Redis ENOTFOUND가 로그에 찍혔습니다. 그런데 서비스는 멀쩡했습니다. 삭제된 지 몇 달 된 ElastiCache 엔드포인트를 앱이 초기화 때 먼저 찾고 있었습니다.
검색 결과가 없습니다.