스팬 필터
스팬 필터 (Span filters)
트레이스, 특히 수많은 스팬을 포함하는 트레이스를 다룰 때 관심 있는 특정 스팬을 정확히 찾는 것은 어려운 작업이에요. 여기서 스팬 필터링(span filtering)이 등장합니다. 트레이스 타임라인 뷰어 위에 위치한 Filters 바는 특정 기준에 따라 표시되는 스팬을 정제하게 해 줘요.
출처: Span filters
본문
특정 서비스의 스팬을 식별하거나, 특정 기간을 초과하거나, 특정 속성으로 태그된 스팬을 찾을 때 스팬 필터링이 그 과정을 간소화해요. 필터를 더 많이 추가할수록 결과가 더 구체적이 돼요.
팁: Service Graph에서 왔다면
service.name과status = error필터를 사용해 오류를 보여 주는 특정 서비스 노드로 드릴다운하세요.
필터 유형 (Filter types)
Filters 텍스트 상자에서 키를 선택하고, 연산자를 고르고, 값을 입력하거나 선택할 수 있어요. 사용 가능한 필터 키는 다음과 같아요.
- Text search: 스팬 콘텐츠 전반의 자유 텍스트 검색
- duration: 스팬 기간으로 필터링(연산자:
=,>=,<,>) - service.name: 스팬을 생성한 서비스
- span.name: 스팬의 작업 이름
- status: 스팬 상태(
ok,error,unset) - kind: 스팬 유형(예:
server,client,internal) - 트레이스에 존재하는 모든 스팬 태그, 프로세스 태그 또는 로그 필드 키
대부분의 속성 키에 대해 사용 가능한 연산자는 =, !=, =~(정규식 일치), !~(정규식 불일치)예요.
참고: 필터 키로 사용 가능한 동일한 속성(예:
span.name,service.name,duration)을 TraceQL 쿼리에서 직접 사용할 수 있어요.
빠른 필터 알약 (Quick filter pills)
텍스트 상자 아래의 세 개 빠른 필터 알약으로 일반적인 필터를 한 번의 클릭으로 적용할 수 있어요.
| 알약 | 효과 |
|---|---|
| Critical path | critical path의 스팬을 강조. 트레이스의 최소 기간을 결정하는 가장 긴 의존 작업 시퀀스. |
| Errors | status = error인 스팬 선택. |
| High latency | 트레이스에서 가장 긴 스팬 10% 선택(p90 임계값). |
알약을 클릭해 필터를 켜거나 꺼요.
스팬 필터 사용 (Use span filters)
Filters 바는 트레이스 타임라인 뷰어 위에 항상 표시돼요. 필터를 추가하려면:
- Filters 텍스트 상자(플레이스홀더: Filter by attribute or text)를 클릭해요.
- 드롭다운에서 키를 선택해요(예:
service.name또는duration). - 연산자를 선택해요(예:
=또는>=). - 값을 선택하거나 입력해요. 텍스트 상자는 현재 트레이스에서 추출된 값을 제안해요.
트레이스 타임라인 뷰어는 필터를 추가하면 업데이트되어 일치하는 스팬을 강조해요.
모든 스팬 표시 (Show all spans):
기본적으로 Show all spans 토글이 활성화되어 모든 스팬이 보이고 일치하는 스팬이 강조돼요. Show all spans을 끄면 일치하지 않는 스팬을 숨기고 필터 기준을 충족하는 스팬만 표시해요. 이는 수천 개의 스팬을 뒤질 때 특히 유용해 정말 중요한 스팬에 집중할 수 있게 해 줘요. 이 토글은 활성 필터가 없으면 비활성화돼요.
일치 항목 간 이동 (Navigate between matches):
일치 개수 옆의 위/아래 화살표 버튼으로 트레이스 타임라인에서 일치하는 스팬 사이를 이동해요. 일치 개수는 현재 위치와 총 일치 수를 표시해요(예: 2/5 matches).
필터 제거 (Remove a filter):
필터를 제거하려면 Filters 텍스트 상자 아래 필터 칩에서 ×를 클릭해요.
일반적인 사용 사례 (Common use cases)
- 특정 서비스의 모든 오류를 찾으려면
service.name=checkout을 선택한 뒤 Errors 알약을 클릭해요. - 느린 데이터베이스 호출을 격리하려면
span.name=~db\..*, 그리고duration>200ms를 선택해요. - critical path만으로 좁히려면 Critical path 알약을 클릭한 뒤 *Show all spans**을 꺼요.
다음 단계 (Next steps)
- Service Graph: 서비스 관계 시각화 및 오류 생성 노드 식별.
- Query editor: 스팬 필터 키로 사용 가능한 동일한 속성을 사용해 TraceQL 쿼리 작성.
- Tempo 데이터 소스 구성: Tempo 데이터 소스와 트레이스 상관관계 설정.