LogQLの確認
한국어 원문으로 표시합니다.
{app="x"} | json | level="error" 와 {app="x"} |= "error" | json | level="error" 중 빠른 쪽과 이유는?
- 앞의 것 — 파싱을 먼저 해야 정확해서
- 같다 — 옵티마이저가 알아서 순서를 바꿔서
- 뒤의 것 — 싼 문자열 검사로 먼저 줄여 파싱할 줄이 적어서
- 앞의 것 — 정규식이 없어 필터가 필요 없어서
status 를 Loki 라벨로 승격하면?
- 그 값으로 거는 쿼리가 늘 빨라진다
- 스트림 수가 값의 개수만큼 곱해져 쿼리가 느려질 수 있다
- 같은 값끼리 모여 저장 용량이 준다
- 본문에 두었을 때와 사실상 같다
파싱해서 만든 필드(| json 뒤의 필드)의 성격은?
- 라벨과 똑같이 색인된다
- 색인되지 않고 훑기로 처리된다
- 질의 뒤 라벨로 저장된다
- 청크에 함께 저장되어 남는다
|~ "error|warn" 보다 싼 방식은?
| regexp| pattern|= "error"로 나눠 쓰기- 어느 쪽이든 비용은 같다
쿼리가 느릴 때 가장 효과가 큰 조치는?
- 시간 범위를 줄이거나 라벨을 하나 더 걸어 좁힌다
- 쿼리어 수를 늘려 병렬도를 높인다
- 정규식을 더 정교하게 다듬는다
- 청크 압축을 꺼서 해제 비용을 없앤다