스팬 필터

스팬 필터 (Span filters)

트레이스, 특히 수많은 스팬을 포함하는 트레이스를 다룰 때 관심 있는 특정 스팬을 정확히 찾는 것은 어려운 작업이에요. 여기서 스팬 필터링(span filtering)이 등장합니다. 트레이스 타임라인 뷰어 위에 위치한 Filters 바는 특정 기준에 따라 표시되는 스팬을 정제하게 해 줘요.

출처: Span filters

본문

특정 서비스의 스팬을 식별하거나, 특정 기간을 초과하거나, 특정 속성으로 태그된 스팬을 찾을 때 스팬 필터링이 그 과정을 간소화해요. 필터를 더 많이 추가할수록 결과가 더 구체적이 돼요.

: Service Graph에서 왔다면 service.namestatus = 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 바는 트레이스 타임라인 뷰어 위에 항상 표시돼요. 필터를 추가하려면:

  1. Filters 텍스트 상자(플레이스홀더: Filter by attribute or text)를 클릭해요.
  2. 드롭다운에서 키를 선택해요(예: service.name 또는 duration).
  3. 연산자를 선택해요(예: = 또는 >=).
  4. 값을 선택하거나 입력해요. 텍스트 상자는 현재 트레이스에서 추출된 값을 제안해요.

트레이스 타임라인 뷰어는 필터를 추가하면 업데이트되어 일치하는 스팬을 강조해요.

모든 스팬 표시 (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 데이터 소스와 트레이스 상관관계 설정.

더 알아보기 (Learn more)