Trace to profiles 구성
Trace to profiles 구성 (Configure Trace to profiles)
Trace to profiles는 트레이스 스팬에서 그 스팬의 프로파일링 데이터로 직접 이동할 수 있게 해줘요. Tempo 데이터 소스에서 구성하며, Tempo의 트레이싱 데이터와 Pyroscope의 프로파일링 데이터를 연결해요. 이 기능으로 트레이스와 프로파일을 연결하는 기능을 추가해 Grafana에서 서로 다른 신호를 상호 연관지을 수 있어요.
출처: 문서
본문
참고: 애플리케이션이 프로파일과 트레이스 모두로 계측되어야 해요.
Trace to profiles는 Grafana Pyroscope 데이터 소스를 트레이싱 데이터에 연결해요. 구성되면 Explore에서 트레이스 스팬에서 프로파일 데이터로 쿼리를 실행할 수 있어요. 각 스팬은 쿼리에 연결되며, 링크를 클릭하면 분할 패널에서 쿼리를 실행해요. 태그가 구성되어 있으면 Grafana가 스팬 속성 값을 쿼리에 동적으로 삽입해요. 쿼리는 (스팬 시작 시간 - 60)부터 (스팬 종료 시간 + 60초)의 시간 범위에 걸쳐 실행돼요. 연결된 프로파일이 있는 각 스팬 상세 섹션에는 임베드된 플레임 그래프도 삽입돼 현재 뷰를 벗어나지 않고 각 스팬의 리소스 소비를 확인할 수 있어요.
Trace to profiles 구성에는 기본 구성과 커스텀 쿼리 구성 두 가지 방법이 있어요.
시작 전에
Trace to profiles를 사용하려면: 프로파일과 트레이스로 계측된 애플리케이션, Grafana Pyroscope 데이터 소스, Tempo 데이터 소스가 필요해요.
기본 구성 사용
기본 구성을 사용하려면 Tempo 데이터 소스 설정에서 Trace to profiles 섹션에서 Pyroscope 데이터 소스를 선택하면 돼요. Pyroscope 데이터 소스를 구성했는데도 프로파일 데이터가 없거나 "Profiles for this span" 버튼과 임베드된 플레임 그래프가 보이지 않으면 스팬 태그에 pyroscope.profile.id 키-값 쌍이 존재하는지 확인하세요.
커스텀 쿼리 구성
커스텀 쿼리를 사용하려면 Use custom query를 토글하고 스팬의 변수로 보간한 쿼리를 입력하면 돼요.
구성 옵션
| 설정 이름 | 설명 |
|---|---|
| Data source | 대상 데이터 소스 정의. Pyroscope [profiling] 데이터 소스 선택 |
| Tags | 프로파일 쿼리에 사용할 태그 정의. 기본값: cluster, hostname, namespace, pod, service.name, service.namespace. 대상 데이터 소스에서 허용되지 않는 점을 이름에서 제거하려면 태그 이름 변경 가능. 예: http.status → http_status |
| Profile type | 쿼리에 사용할 프로파일 유형 정의 |
| Use custom query | 보간이 있는 커스텀 쿼리 사용 토글 |
| Query | 커스텀 쿼리 입력. 스팬의 변수로 보간해 커스터마이즈 |
연결 확인
Tempo 데이터 소스를 구성하고 애플리케이션을 계측한 뒤 Trace to profiles가 동작하는지 확인하세요. 스팬 속성 pyroscope.profile.id가 스팬에 없으면 OpenTelemetry 브리지 패키지가 올바르게 구성되지 않은 거예요.
Trace to profiles 문제 해결
- "Profiles for this span" 버튼이 안 나타남: 스팬에
pyroscope.profile.id속성이 있는지, 데이터 소스가 올바르게 구성됐는지 확인하세요. - 버튼은 나타나지만 프로파일 데이터가 안 보임: 프로파일이 Pyroscope에 수집됐는지, 시간 범위와 일치하는지 확인하세요.
- 태그 불일치: Tempo 데이터 소스에서 구성한 태그가 스팬의 속성이나 리소스에 있어야 해요. 태그 이름에
service.name처럼 점이 있고 Pyroscope 데이터 소스가 라벨에 점을 허용하지 않으면service_name처럼 점 없는 이름으로 매핑하세요.