• 로그인

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Trace API를 통해 Zipkin 형식 추적 보고

고유한 추적 구현을 생성하려면 Trace API 를 사용할 수 있습니다. 이 문서에서는 Zipkin 형식의 추적 데이터를 Trace API로 보내는 방법을 설명합니다. (일반 데이터 형식은 New Relic 형식 을 참조하십시오.)

Zipkin 버전 요구 사항

Trace API는 수정 없이 Zipkin JSON v2(또는 그 이상)의 데이터를 지원합니다. 이 버전에 대한 자세한 내용은 Zipkin v2 릴리스 세부 정보Zipkin v2 스키마 를 참조하세요.

Trace API 사용 개요

Trace API를 사용하는 것은 다음과 같이 간단합니다.

  • 예상 형식(이 경우 zipkin 형식)으로 추적 데이터를 보냅니다.
  • 해당 데이터를 적절한 엔드포인트 로 보내기

우리의 데이터 전송 지침에는 무한 추적을 활성화하는 옵션이 있습니다. 이에 대한 자세한 내용은 무한 추적샘플링 고려 사항 소개 를 참조하십시오.

Trace API 사용을 시작하려면 다음 옵션을 선택하십시오.

  • Send a sample trace : 이것은 New Relic에 trace를 보내는 curl 예제를 보여줍니다. 이것은 Trace API의 작동 방식을 이해하고 New Relic에서 데이터가 표시되는지 확인하는 데 유용합니다.
  • 기존 Zipkin 계측에서 데이터 보고 : 기존 Zipkin 구현이 있는 경우 데이터가 전송되는 끝점을 간단히 변경할 수 있습니다.

샘플 Zipkin 추적 페이로드 보내기

이 섹션에서는 curl 요청을 통해 Trace API에 간단한 Zipkin 형식 추적을 보내는 방법을 설명합니다. 심층 계측을 수행하기 전에 API 작동 방식을 배우고 데이터가 New Relic에 표시되는지 확인하기 위해 이 작업을 선택할 수 있습니다.

샘플 페이로드 전송을 시작하려면:

  1. (선택 사항, 무한 추적을 활성화하려면) 먼저 추적 관찰자를 설정 해야 합니다. 이 절차에는 일반 new-relic 형식을 사용하여 샘플 추적을 보내기 위한 지침이 포함되어 있습니다. 해당 단계에 도달하면 여기로 돌아와서 대신 Zipkin 형식 추적을 보내는 방법을 알아보세요.
  2. 아래 지침에 따라 Zipkin 형식 페이로드를 보냅니다.

Zipkin 형식 페이로드 보내기

샘플 Zipkin 형식 추적을 보내려면 다음 안내를 따르세요.

데이터를 보고할 계정의 라이선스 키 를 가져옵니다.

아래에서 curl 요청을 실행합니다. 이에 대한 참고 사항:

  • 라이선스 키 자리 표시자를 라이선스 키로 바꿉니다.

  • 무한 추적을 사용하는 경우 표준 끝점 대신

    YOUR_TRACE_OBSERVER_URL

    값을 사용합니다.

  • 둘 이상의 게시물을 보내려면 추적 ID를 다른 값으로 변경하십시오. 동일한 traceId 에 대해 동일한 페이로드 또는 스팬 id 을 여러 번 전송하면 UI에서 조각화된 추적이 발생할 수 있습니다.

bash
$
curl -i -H 'Content-Type: application/json' \
>
-H 'Api-Key: NEW_RELIC_API_KEY' \
>
-H 'Data-Format: zipkin' \
>
-H 'Data-Format-Version: 2' \
>
-X POST \
>
-d '[
$
{
$
"traceId": "test-zipkin-trace-id-1",
$
"id": "3e0f5885710776cd",
$
"kind": "CLIENT",
$
"name": "post",
$
"duration": 508068,
$
"localEndpoint": {
$
"serviceName": "service-1",
$
"ipv4": "127.0.0.1",
$
"port": 8080
$
},
$
"tags": {
$
}
$
},
$
{
$
"traceId": "test-zipkin-trace-id-1",
$
"parentId": "3e0f5885710776cd",
$
"id": "asdf9asdn123lkasdf",
$
"kind": "CLIENT",
$
"name": "service 2 span",
$
"duration": 2019,
$
"localEndpoint": {
$
"serviceName": "service-2",
$
"ipv4": "127.0.0.1",
$
"port": 8080
$
},
$
"tags": {
$
"error.message": "Invalid credentials"
$
}
$
}
$
]' 'https://trace-api.newrelic.com/trace/v1'

1분 이내에 분산 추적 UI 에서 추적을 사용할 수 있습니다. 그것을 찾으려면 trace.id 에 대한 쿼리를 실행하십시오. 이 예에서는 test-zipkin-trace-id-1 이었습니다. trace.id ( traceId 아님)의 변환된 속성 으로 검색합니다.

자세히 알아보려면:

기존 Zipkin 기기에서 데이터 보내기

예비 참고 사항:

기존 Zipkin 계측에서 데이터를 보고하려면 일부 필수 요청 메타데이터를 사용하여 적절한 Trace API 엔드포인트 에서 Zipkin 추적기를 가리킵니다. 필요한 메타데이터를 헤더 또는 쿼리 매개변수로 보낼 수 있습니다(일부 Zipkin 추적 프로그램 버전에서는 HTTP 헤더 지정을 허용하지 않음).

다음은 Trace API용으로 구성된 Java에서 Zipkin OkHttpSender 을 만드는 방법의 예입니다.

OkHttpSender.create("https://trace-api.newrelic.com/trace/v1?Api-Key=NEW_RELIC_LICENSE_KEY&Data-Format=zipkin&Data-Format-Version=2");

Infinite Tracing을 사용 중이거나 EU 지역 New Relic 계정이 있는 경우 엔드포인트 가 다를 수 있습니다.

Api-Key 및 기타 메타데이터에 대한 설명은 메타데이터 요청 을 참조하세요.

Zipkin 데이터의 변환

일관된 검색/쿼리 경험을 만들기 위해 일부 Zipkin 데이터는 New Relic 속성 이름 지정과 일치하도록 변환됩니다. 추적 데이터를 저장하고 구성하는 방법에 대한 자세한 내용은 분산 추적 작동 방식 을 참조하세요.

집킨 태그

New Relic에 다음과 같이 저장...

세부

추적 ID

추적 ID

추적의 고유 식별자입니다.

id

id

범위의 고유 식별자입니다.

부모 ID

부모 아이디

서비스를 호출한 업스트림 범위의 식별자입니다.

kind

kind

Client 또는 Server .

name

name

스팬의 이름입니다.

duration

duration.ms

Zipkin v2 범위에는 마이크로초 단위로 지정된 기간이 있어야 하며 밀리초로 변환됩니다.

로컬 엔드포인트: serviceName

service.name

Zipkin v2 서비스 이름을 사용하여 이 범위를 생성한 엔터티를 식별합니다.

로컬 엔드포인트: port

localEndpoint.port

localEndpoint 객체의 모든 값은 localEndpoint.key

tags

속성 으로 보고됨

Zipkin v2의 tags 객체에 있는 키:값 쌍은 스팬 속성으로 작성됩니다.

주석

지원되지 않음

현재 Trace API에서 주석을 지원하지 않습니다. 주석이 포함된 스팬은 거부되지 않지만 주석 데이터는 작성되지 않습니다.

다른 태그/속성 추가

제한된 태그 를 제외하고 원하는 모든 태그를 tags 블록에 추가할 수 있습니다. 예를 들어, 추적 데이터를 분석하는 데 도움이 되도록 customer.id 또는 user.id 와 같은 속성을 추가할 수 있습니다. 태그는 New Relic 속성 으로 변환됩니다.

New Relic에서 스팬이 표시되는 방식을 제어하는 방법(예: 오류 추가 또는 스팬을 데이터 저장소 스팬으로 설정)을 알아보려면 스팬 장식 을 참조하십시오.

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.