핵심 요약
Loki 3.0의 bloom filter compactor가 큰 차이. 사내 5TB/일 로그 클러스터에서 키워드 검색 평균 14s → 1.7s. TSDB shard 캐시 추가로 인덱스 쿼리도 -68%. 운영 사후.
1. Bloom Filter — 어디서 검색이 빨라지나
특정 키워드(예: request_id, user_id)를 bloom filter로 인덱싱. chunk 단위로 매칭 여부 즉시 확인, 무관한 chunk 다운로드 생략. high-cardinality 키워드에서 결정적.
2. 설정 예시
bloom_compactor:
enabled: true
shard_size: 32
retention:
max_age: 30d
limits_config:
bloom_creation_enabled: true
bloom_split_series_keyspace_by: 256
3. 실측
| 쿼리 유형 | v2.9 | v3.0 |
|---|---|---|
| request_id grep, 24시간 | 14s | 1.7s |
| label 필터 + 7일 | 6.2s | 2.1s |
| regex 정확 매칭 | 42s | 8.4s |
| 수집(write) 처리량 | 420K/s | 480K/s |
4. S3 비용
Bloom 데이터 추가 저장 → S3 사용량 +18%. 다만 query 단가(EC2 read) 64% 절감으로 순감.
5. 함정
- low-cardinality 검색은 효과 없음 — INFO 같은 흔한 키워드는 그대로 느림
- bloom 생성 지연 — 새 데이터는 compaction 후에야 적용, 실시간 쿼리에는 효과 0
- 인덱싱 비용 — bloom compactor가 CPU 무거움, 별도 노드 풀
- v2 인덱스 마이그레이션 — boltdb-shipper → tsdb 변환, 절차 정확히

댓글 0