추적 및 호출 분석

Unbounded Analytics에서 트레이스를 확인해 보세요. 이곳에서 Instana 가 수집한 트레이스와 호출 내역을 분석할 수 있습니다. 애플리케이션이 각 호출에서 작동하는 방식을 이해하기 위해 시스템에 들어오는 각 호출을 모니터합니다.

추적 보기

  1. 사이드바에서 애플리케이션을 클릭하십시오.
  2. 애플리케이션 대시보드에서 애플리케이션 또는 서비스를 선택하십시오.
  3. 애플리케이션 또는 서비스 대시보드에서 호출 분석을 클릭하십시오.
  4. 분석 대시보드에서는 애플리케이션, 서비스 및 엔드포인트별로 호출을 분석할 수 있으며, Instana 에서 제공하는 데이터를 각각 서비스, 엔드포인트 및 호출 이름별로 세분화하여 확인할 수 있습니다. 애플리케이션에서 호출 또는 추적을 선택하십시오.
  5. 그룹을 클릭한 후 추적을 선택하십시오.

추적 분석 보기

추적 분석

추적 정보 또는 호출 필터링 및 그룹화

분석 대시보드에서 추적 또는 호출은 임의의 태그를 사용하여 필터링하고 그룹화할 수 있습니다. 호출 분석에서 필터는 ANDOR 논리 연산자를 사용하여 연결할 수 있으며 대괄호로 묶을 수 있습니다. 추적 분석에서는 AND 연산자만 사용할 수 있습니다.

조회 빌더

데이터를 필터링하는 두 가지 방법이 있습니다.

  • 조회 빌더
  • 필터 사이드바

두 가지 모두 자체적으로 사용할 수 있지만 결합할 때 최상의 결과를 얻을 수 있습니다.

조회 빌더

애널리틱스 대시보드의 쿼리 빌더 를 사용하여 초기 결과 집합을 필터링하세요. 필터 추가를 클릭하여 agent.tag 또는 host.name와 같은 인프라 엔티티 태그와 함께 application.name, service.nameendpoint.name 태그를 호출의 소스 및 대상 모두에 적용할 수 있습니다. 기본적으로 대상에 적용됩니다. 소스로 변경하려면 태그 이름 앞에 있는 선택기를 클릭하고 소스를 선택하십시오. 소스와 대상을 결합하여 이 두 서비스 간의 모든 호출 표시 또는 agent.zone '프로덕션' 에서 agent.zone '테스트'로 발행된 모든 호출 표시와 같은 조회를 작성할 수 있습니다. 소스 또는 대상의 선택은 호출 자체의 특성이며 소스 또는 대상과 독립적인 call.http.path 또는 call.tag와 같은 호출 태그에 사용할 수 없습니다.

그룹화를 적용하려면 그룹 추가 를 클릭하고 태그 중 하나를 선택하십시오. 기본 그룹화는 엔드포인트 이름 (endpoint.name) 태그를 사용합니다. 필터와 일치하는 개별 추적 및 호출을 검사하려면 그룹을 펼쳐 최대 따라 적용 장치 수,적 경우 IBM Tivoli Support Assistant 그룹을 제거하고 선택한 그룹의 값으로 결과를 추가 필터링하는 이 그룹에 초점 지정 을 클릭하십시오. 태그를 호출의 소스 또는 대상에 적용할 수 있으므로 이 하나의 서비스에 대한 모든 호출을 표시하고 호출자별로 구분과 같은 조회를 표현할 수 있습니다. 그룹과 일치하지 않는 호출은 Tag not present라는 특수 그룹에 표시됩니다. 예를 들어, agent.zone 의 경우 'agent.zone' 태그가 없는 호출입니다. 결과에서 일치하지 않는 agent.zone 를 제거하려면 is present 연산자를 사용하여 추가 필터를 적용하십시오. 해당 보기의 사용 가능한 그룹은 특정 호출의 소스 또는 대상과 관계가 없으므로 소스 및 대상별 그룹화는 추적 분석에서도 사용할 수 없습니다.

이전 예제에서는 Catalogue (user-journey) 애플리케이션별로 필터링하고 엔드포인트 이름별로 그룹화된 호출을 나열합니다.

필터 사이드바

쿼리 빌더 필터를 적용하여 얻은 결과를 바탕으로, 애널리틱스 대시보드의 ‘필터 사이드바’에서 추가 필터를 적용해 데이터를 신속하게 세부 분석할 수 있습니다.

사이드바

동일한 태그 카테고리 내의 항목은 논리 OR를 통해 연결되고 다른 태그 카테고리는 논리 AND를 사용하여 연결됩니다. 필터 사이드바에서 선택한 모든 필터는 적용된 쿼리 빌더 필터 위에 논리적 AND 연산으로 적용됩니다. 필터 사이드바의 상단에는 모든 태그에 걸쳐 선택된 항목의 총 개수가 표시되며, 적용된 모든 사이드바 필터를 한 번에 해제할 수 있습니다.

주의: 단일 태그에 대한 다중 선택은 현재 추적 분석에서 지원되지 않습니다.

앞의 예시에서는 쿼리 빌더에서 Catalogue (user-journey) ‘애플리케이션’으로 필터링 하고, 필터 사이드바에서 ‘서비스 discount-svccatalogue-demo 선택하거나 ‘선택됨’을 선택하여 필터링하고 있습니다.

필터 사이드바의 태그 중 하나로 빠르게 그룹화하려면, 그룹화에 적합한 각 태그 옆에 표시된 그룹화 버튼을 클릭하세요. 이는 이전에 설명한 대로 쿼리 빌더에서 그룹화를 구성하는 빠른 방법입니다. 특정 필터 사이드바 태그별로 그룹화하는 것과 동일한 방법으로, 현재 그룹화에 사용되는 태그에서 그룹 해제 단추 를 클릭하여 그룹화를 다시 해제할 수도 있습니다.

알려진 제한사항

로그 태그별 호출 그룹화: log.level 또는 log.message로 호출을 그룹화할 때 특수 그룹 Tag not present 은 다른 태그의 경우와 같이 표시되지 않습니다.

대기 시간 분포

추적 및 호출 대기 시간은 대기 시간 분포 차트를 사용하여 검사할 수 있습니다. 차트에서 지연 시간 범위를 선택하면 필터가 그에 따라 조정됩니다. 다음과 같이 테이블의 결과가 지정된 대기 시간 범위 내의 추적 또는 호출만 표시하도록 업데이트됩니다.

대기 시간 분포 보기

추적 보기

추적 보기를 표시하려면 분석 대시보드에서 그룹을 선택한 후 추적을 클릭하십시오. 호출을 선택하면 추적 컨텍스트에 호출이 표시됩니다.

추적 보기

요약 세부사항

추적의 요약 세부사항은 다음과 같습니다.

  • 추적 이름 (일반적으로 HTTP 항목).
  • 발생한 서비스의 이름입니다.
  • 유형 또는 기술입니다.
  • 코어 KPI:
    • 다른 서비스에 대한 하위 호출.
    • 오류가 있는 호출 수입니다.
    • 추적 내의 오류 수입니다.
    • 추적 내의 경고 수입니다.
    • trace duration. 추적에서 첫 번째 호출의 시작과 마지막 호출의 끝 사이의 간격입니다.

타임라인

추적 타임라인은 다음을 표시합니다.

  • 시작되었습니다.
  • 추적을 통해 호출된 서비스의 연대순.

호출 체인은 루트 요소 (범위) 에서 정지됩니다. 단순한 3티어 시스템에서는 일반적으로 4레벨의 깊이를 가집니다. 반대로, 분산 서비스 또는 마이크로서비스 아키텍처가 있는 시스템에서는 더 긴 고드름을 볼 수 있습니다. 데이터베이스 항목당 하나의 HTTP 호출과 같이 추적의 긴 하위 호출 또는 주기적 호출 패턴이 있는 경우 타임라인은 호출 구조의 우수한 개요를 제공합니다.

범위의 세부사항을 보려면 타임라인 그래프 내의 범위를 클릭하십시오. 특정 호출 내에서 시간이 소요된 위치의 세부사항을 보려면 타임라인 그래프에 표시되는 호출 위로 마우스를 이동하십시오.

통화 세부사항에는 다음과 같은 유형의 시간이 포함됩니다.

  • Self: 호출이 다운스트림 호출 외부에서 소비하는 시간 (즉, 호출 내에서 소비되는 시간) 입니다.
  • Waiting: 호출이 모든 다운스트림 호출이 완료되기를 기다리는 데 소요되는 시간입니다.
  • Network: 호출자의 Exit Span Time 와 호출의 Entry Span Time 간의 시간 차이입니다.
  • Total: 호출의 총 시간입니다.

서비스

타임라인 그래프 아래에 나열된 서비스는 서비스당 모든 호출을 요약하고 호출 수, 집계된 시간 및 발생한 오류를 나열합니다. 각 서비스에는 고유한 색상이 있습니다 (이 예제십시오에서 그림 = 파란색, 제품 검색 녹색). 애플리케이션 및 서비스 대시보드에서 해당 세부사항을 보려면 서비스를 선택하십시오.

호출

호출 보기

추적 트리는 호출 유형과 함께 업스트림 및 다운스트림 서비스 호출의 구조를 표시합니다. 특정 호출을 탐색하려면 추적 트리의 개별 파트를 펼치고 접으십시오. 서비스 및 엔드포인트 대시보드에서 해당 세부사항을 보려면 호출을 선택하십시오.

미해결 호출

상위 호출이 누락된 경우 호출은 오펀으로 간주됩니다. 아직 완료되지 않았거나 다른 APM 도구로 전송되는 등의 다양한 이유로 통화가 누락될 수 있습니다. 상위-하위 관계가 호출 트리 내에서 호출의 위치를 판별하므로 오펀 호출의 위치를 알 수 없습니다. 고아 호출은 루트 호출에 직접 첨부됩니다. 표시기 아이콘이 루트 호출과 고아 호출 사이의 에지에 표시됩니다.

Orphan 호출

호출 세부사항

통화 세부사항 사이드바를 표시하려면 타임라인 그래프에서 통화를 선택하십시오. 표시되는 세부사항에는 스택 추적과 함께 호출의 소스 및 대상, 오류, 상태 코드가 포함됩니다.

저장소 추적

표시된 트레이스를 장기 저장소(최대 13개월)에 수동으로 저장하려면 ‘트레이스 저장’ 버튼을 클릭하십시오. 또는 ‘추적 세부 정보’ 보기를 15초 이상 열어두면 추적을 자동으로 저장할 수도 있습니다. 단, 대용량 트레이스를 장기간 저장하는 기능은 지원되지 않습니다.

로그 및 오류 기록 수집

Instana 서비스가 잘못된 응답을 반환하거나, 또는 WARN 레벨(또는 프레임워크에 따라 유사한 레벨 ERROR )의 로그가 감지되면 오류를 자동으로 캡처합니다.

짧은 종료 호출의 자동 집계

Instana 항상 서비스 상호작용을 가장 잘 이해할 수 있도록 돕는 동시에, 실제 애플리케이션에 미치는 영향을 최소화하기 위해 노력하고 있습니다. 그러나 특정 상황에서는 이를 달성하기 위해 Instana 가 데이터를 삭제해야 할 수도 있습니다.

시스템에서 공통적인 문제점은 1+N 조회 문제점이라고 하며, 이는 코드가 항목 목록을 가져오기 위해 하나의 데이터베이스 호출을 수행한 후 개별 항목을 검색하기 위해 N개의 개별 호출을 수행하는 상황을 설명합니다. 이 문제점은 일반적으로 한 호출만 수행하고 다른 호출을 이 호출에 결합하여 수정할 수 있습니다.

호출 이름 옆의 아이콘은 함께 일괄처리된 요청 수를 표시합니다. 호출 세부사항은 가장 중요한 서비스 호출의 세부사항과 일치합니다 (예: 지속 기간이 가장 높거나 오류가 있는 요청). 표시된 호출의 지속 기간 및 오류 수는 모든 일괄처리된 호출에서 집계됩니다.

호출 일괄처리 예제

서비스 상호작용의 집계는 다음 제한조건 내에서만 발생합니다.

  • 유사한 유형의 높은 빈도 및 반복 액세스 패턴
  • 개별 서비스 호출에 10ms미만이 소요됩니다.
  • 호출 사이의 시간이 10ms미만입니다.

Capture 매개변수

충돌 문제를 고려하여, 현재 Instana 의 추적 센서는 메서드 매개변수나 메서드 반환값을 자동으로 캡처하지 않습니다. 요청 시 추가 데이터를 캡처하려면 SDK를 사용하십시오.

장기 실행 태스크

제한시간 초과, 높 수 일치 선택어 또는 기타 환경 조건으로 인해 호출에 응답할 때까지 상당한 시간이 필요할 수 있습니다. 추적에는 수십 또는 수백 개의 이러한 호출이 포함될 수 있습니다. Instana 는 사용자에게 추적 정보를 최대한 신속하게 제공하기 위해, 처리 시간이 긴 스팬은 처음에 자리 표시자로 대체됩니다. 장기 실행 범위가 최종적으로 리턴되면 플레이스홀더가 올바른 호출 정보로 다시 바뀝니다.

일괄 추적 처리

고성능 및 거의 실시간인 범위 처리 파이프라인으로 인해, 늦게 도달하고 비동기적으로 처리되는 범위는 결과 추적에 링크될 때 약간 다르게 처리됩니다. 추적 보기의 정보 상자가 사용자에게 표시되며 잘못된 형식의 추적에 대한 정보를 제공합니다.

Instana 을 사용하는 경우 다음과 같은 현상이 발생할 수 있습니다:

  • 추적 보기에서 추적에 대한 모든 하위 호출이 표시되는 것은 아닙니다.
  • 동일한 trace-id를 사용하여 추적을 분리하고 전체 추적을 부분적으로 표시하십시오.
  • 호출이 해당 애플리케이션 퍼스펙티브에 맵핑되지 않을 수 있으며 무한 비즈니스 모두에서 누락될 수 있습니다.
  • 호출이 해당 서비스에 맵핑되지 않을 수 있으며, 무한 분석에서 누락될 수 있습니다.
  • 플로우 맵에 일치하지 않는 호출 수가 표시될 수 있습니다.
  • 플로우 맵이 일치하지 않는 서비스 맵핑을 표시할 수 있습니다.

이 추적은 여러 일괄처리로 처리되었습니다.

이 상황에서 일부 스팬은 결과 추적이 이미 처리된 경우 2초간격 이후에 도착합니다. 이 접근 방식은 캡처된 모든 범위를 제공하지만 일부 상관이 올바르지 않을 수 있습니다.

이로 인해 Instana 데이터 모델에서 다음과 같은 이상 현상이 발생할 수 있습니다:

  • 엑시트 범위 및 해당 항목 범위는 단일 호출로 병합되지 않을 수 있습니다.
  • 호출이 올바른 서비스에 맵핑되지 않을 수 있습니다.
  • 호출이 올바른 상위 호출에 링크되지 않을 수 있습니다.
  • 호출에서 인프라 태그가 누락될 수 있습니다.
  • 호출이 애플리케이션 퍼스펙티브에 맵핑되지 않았거나 잘못 맵핑되었을 수 있습니다.

다음 이미지는 루트 범위의 컨텍스트에서 처리되어 단일 일괄처리로 추적에 링크되는 모든 범위와 함께 유사한 추적을 표시합니다.

단일 일괄처리로 처리된 추적

근사 데이터

추적 및 호출은 7일동안 유지됩니다. 이 기간 동안 보유된 호출 수 및 원래 호출 수의 추정에 대한 대략적인 데이터 표시기가 표시됩니다. 드물게 발생하는 추적 및 호출은 이러한 시나리오에서 표시되지 않을 수 있습니다.

참고: 시간 범위의 timepicker 시작일이 7일 전보다 더 오래전이고 종료일이 지난 7일 이내인 경우, 해당 시간 범위의 일부에 대해서는 전체 데이터가 유지되더라도 선택한 전체 시간 범위는 추정 데이터를 사용하여 분석됩니다. 전체 데이터 세트를 분석하려면 선택한 시간 범위가 지난 7일내에 시작되는지 확인하십시오.

근사값 데이터 표시기

애플리케이션 퍼스펙티브의 정확한 지표는 지난 31일동안 유지됩니다. 그룹을 펼치거나 그룹을 제거하여 개별 호출을 볼 때 보유된 호출 및 대략적인 데이터 표시기만 볼 수 있습니다.

31일이 지나면 메트릭과 호출이 모두 대략적으로 표시됩니다.

대략적인 그룹 데이터 표시기

통화 수준 지표의 표본 정확도에 관한 참고 사항

이 시스템은 트레이스 ID 해시를 기반으로 무작위 표본 추출을 수행하여, 트레이스 수준에서 일관된 표본 추출을 보장합니다. 그러나 이는 호별 지표를 분석할 때 몇 가지 함의를 갖습니다:

  • 샘플링은 호출 단위가 아닌 트레이스 단위로 수행됩니다. 추적당 호출 횟수가 크게 달라지면 호출 수준 데이터가 왜곡될 수 있습니다.
  • 예를 들어, 호출 횟수가 100만 회가 넘는 예외적인 추적 기록 하나가 샘플링에 포함될 경우, 호출 수준 지표에 큰 영향을 미칠 수 있습니다.
  • 이는 정상적인 동작이며, 결함이 아닙니다. 이는 트레이스 기반 샘플링이 어떻게 작동하는지를 보여줍니다.

제한사항

HTTP 이름을 지정하지 않은 매개변수는 호출 분석 시 무시되며, 필터링이나 그룹화 용도로 사용할 수 없습니다. 예를 들어, 쿼리 문자열이 포함된 호출에서는 값이 인 =val1&key=val2key 명명된 val2 매개변수만 인식됩니다. 이름이 지정되지 않은 매개변수는 =val1 무시됩니다. 하지만 호출 내역에서는 전체 쿼리 문자열을 여전히 확인할 수 있습니다.