BigQuery로 내보내기

이 문서에서는 싱크가 Cloud Trace에서 BigQuery로 trace를 내보낼 때 생성되는 BigQuery 데이터 세트의 몇 가지 속성을 설명합니다.

스키마

trace 데이터를 저장하는 테이블의 스키마는 스팬의 Trace V2 API 정의에 따라 결정됩니다.

Trace는 테이블 스팬을 열을 추적하고 새 스팬에 기존 테이블에 저장할 수 없는 필드가 포함되면 테이블을 패치합니다. 수신되는 스팬에 이전에 보지 못했던 항목이 포함된 경우 패치 작업이 필요합니다. 예를 들어 수신되는 스팬에 새 속성이 포함되어 있으면 테이블에 패치가 적용됩니다.

데이터 보관

BigQuery 테이블의 데이터 보관 정책을 구성합니다. 테이블 및 테이블 데이터 관리에 대한 자세한 내용은 테이블 작업을 참조하세요.

테이블 유형

trace를 BigQuery로 내보내도록 싱크를 구성하면 Trace에서 수집 시간으로 파티션을 나눈 테이블을 구성합니다. 이러한 테이블을 생성, 관리, 쿼리, 삭제하는 방법을 포함하여 파티션을 나눈 테이블에 대한 자세한 내용은 파티션을 나눈 테이블 작업을 참조하세요.

샘플 쿼리

다음 쿼리에서 DATASET은 BigQuery 데이터 세트의 이름이고 MY_TABLE은 해당 데이터 세트의 테이블 이름입니다.

  • 결과를 10개 행으로 제한하면서 2019년 11월 20일의 테이블에 있는 모든 열을 표시하려면 쿼리를 실행합니다.

    SELECT
      *
    FROM
      `DATASET.MY_TABLE`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
  • 테이블에서 사용 가능한 모든 파티션을 표시하려면 쿼리를 실행합니다.

    SELECT
      _PARTITIONTIME as pt
    FROM
      `DATASET.MY_TABLE`
    GROUP BY 1

HipsterShop 쿼리

HipsterShop은 GitHub에서 제공하는 데모 애플리케이션입니다.

다음은 BigQuery 쿼리를 사용하여 Trace 인터페이스에서 쉽게 사용할 수 없는 정보를 수집하는 방법을 보여주는 샘플 쿼리입니다.

내부 쿼리는 2019년 12월 2일에 받은 지정된 정규 표현식과 일치하는 모든 스팬을 찾습니다. 외부 쿼리는 다음을 표시하도록 선택합니다.

  • 이름
  • 일치하는 스팬 수
  • 고유한 trace ID 수
  • 50번째, 90번째 및 99번째 분위수
  • HTTP 경로
  • 오류 메시지

trace 수를 기준으로 정렬된 결과를 표시합니다.

SELECT t0.span.displayName.value, count(t0.span.spanId) as spanCount, count(distinct traceId) as traceCount,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(50)] as p50,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(95)] as p95,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(99)] as p99,
t0.span.attributes.attributeMap._http_path,
t0.span.attributes.attributeMap._error_message
FROM (
SELECT *,
REGEXP_EXTRACT(span.name, r"./traces/([a-f0-9]+).") as traceId,
TIMESTAMP_DIFF(span.endTime,span.startTime, MILLISECOND) as milliseconds
FROM `hipstershop-demo.Hipstershop_trace_export.cloud_trace`
WHERE DATE(_PARTITIONTIME) = "2019-12-02") AS t0
WHERE t0.span.parentSpanId is NULL
GROUP by t0.span.displayName.value, t0.span.attributes.attributeMap._http_path,t0.span.attributes.attributeMap._error_message
ORDER BY traceCount DESC
LIMIT 1000
 

이 애플리케이션을 한 번 설치하면 쿼리 결과가 다음과 같이 표시됩니다.

이전 쿼리에 대한 응답을 표시합니다.

trace 데이터 보기

BigQuery 인터페이스를 사용하여 trace 데이터를 보려면 내보낸 trace가 있는 테이블을 선택합니다.