• 로그인

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

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

문제 신고

Trace API(New Relic 형식)를 통한 추적 보고

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

시작하다

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

  • 예상 형식(이 경우 newrelic 형식)으로 추적 데이터를 보냅니다.
  • 해당 데이터를 적절한 끝점 으로 보냅니다.

Trace API를 사용하기 전에 Infinite Tracing을 사용할지 여부를 결정해야 합니다. 이에 대한 자세한 내용은 무한 추적샘플링 고려 사항 소개 를 참조하십시오.

Trace API 사용을 시작하려면 다음 경로 중 하나를 따르세요.

  • 무한 추적 을 사용하고 싶습니까? 추적 관찰자 설정 지침을 따릅니다. 추적 관찰자를 만들고 샘플 페이로드를 추적 관찰자 끝점으로 보내는 과정을 안내합니다.
  • 무한 추적을 원하지 않습니까? 샘플 페이로드 를 보내는 방법(아래)을 참조하세요.

샘플 추적 페이로드 보내기(비무한 추적)

다음은 newrelic 형식을 사용하여 Trace API에 표준(비 Infinite Tracing ) 페이로드를 보내는 방법을 설명합니다.

  1. 데이터를 보고할 계정에 대한 라이센스 키 를 가져옵니다.

  2. 해당 키를 다음 JSON에 삽입한 다음 JSON을 엔드포인트로 보냅니다. 참고: EU New Relic 계정이 있는 경우 EU 엔드포인트 를 대신 사용하십시오.

    bash
    $
    curl -i -H 'Content-Type: application/json' \
    >
    -H 'Api-Key: YOUR_LICENSE_KEY' \
    >
    -H 'Data-Format: newrelic' \
    >
    -H 'Data-Format-Version: 1' \
    >
    -X POST \
    >
    -d '[
    $
    {
    $
    "common": {
    $
    "attributes": {
    $
    "service.name": "Test Service A",
    $
    "host": "host123.example.com"
    $
    }
    $
    },
    $
    "spans": [
    $
    {
    $
    "trace.id": "123456",
    $
    "id": "ABC",
    $
    "attributes": {
    $
    "duration.ms": 12.53,
    $
    "name": "/home"
    $
    }
    $
    },
    $
    {
    $
    "trace.id": "123456",
    $
    "id": "DEF",
    $
    "attributes": {
    $
    "error.message": "Invalid credentials",
    $
    "service.name": "Test Service A",
    $
    "host": "host456.example.com",
    $
    "duration.ms": 2.97,
    $
    "name": "/auth",
    $
    "parent.id": "ABC"
    $
    }
    $
    }
    $
    ]
    $
    }
    $
    ]' 'https://trace-api.newrelic.com/trace/v1'

    둘 이상의 POST 를 보내는 경우 trace.id 을 고유한 값으로 변경합니다. 동일한 trace.id 에 대해 동일한 페이로드 또는 스팬 id 을 여러 번 전송하면 UI에서 조각화된 추적이 발생할 수 있습니다.

  3. 테스트에서 HTTP/1.1 202 Accepted 이 반환된 경우 UI 로 이동하여 스팬 속성 service.name = Test Service A 을 사용하여 테스트 데이터 쿼리를 확인합니다.

    추적 관찰자와 추적 API 모두에서 추적을 처리하는 데 최대 1분이 소요될 수 있습니다.

추적 API 페이로드(New Relic 형식)

Trace API JSON 페이로드는 각 개체가 단일 추적을 나타내는 개체의 배열입니다. 이러한 각 객체에는 spans 키가 필요하며 common 키도 포함될 수 있습니다. spans (필수)에는 각 개체가 범위를 나타내는 개체 배열이 포함됩니다. common (선택 사항)은 여러 범위에서 정보를 공유합니다.

spans 배열의 Span 객체

필드

유형

description

필수의

기본

id

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

해당 없음

trace.id

단일 추적 내 모든 범위에서 공유하는 고유 식별자입니다.

해당 없음

timestamp

Unix epoch 이후의 스팬 시작 시간(밀리초 )입니다.

아니요

UTC 시간대의 현재 시간

attributes

물체

범위에 대한 세부 정보를 추가하는 모든 키: 값 쌍의 집합입니다. duration.ms , nameparent.id 를 추가하는 것이 좋습니다.

아니요

해당 없음

위의 필수 키가 없는 요청은 거부되고 NrIntegrationError 이 생성됩니다.

common 객체(선택 사항)

필드

유형

description

필수의

기본

attributes

물체

페이로드의 범위에 대한 공통 세부 정보를 추가하는 키: 값 쌍의 모든 집합입니다. 범위에 common 에 설정된 속성이 포함되어 있으면 범위 속성 객체의 키가 우선합니다. duration.ms , nameparent.id 을(를) 추가하는 것이 좋습니다.

아니요

해당 없음

필수는 아니지만 이러한 속성은 각 범위의 attributes 개체에 있는 데이터에 대한 최상의 경험을 위해 포함되어야 합니다.

기인하다

기본

description

duration.ms

뜨다

없음

이 범위의 기간(밀리초)입니다.

name

없음

이 범위의 이름입니다.

parent.id

없음

이 범위의 호출자의 ID입니다. 루트 범위 인 경우 값은 null 입니다. 루트 범위가 없는 추적은 표시되지 않습니다.

service.name

없음

이 범위를 만든 엔터티의 이름입니다.

예약된 속성

이러한 속성은 현재 내부 New Relic 사용을 위해 예약되어 있습니다. 명시적으로 차단되지는 않지만 사용하지 않는 것이 좋습니다.

기인하다

기본

description

entity.name

service.name

이것은 service.name 속성에서 파생됩니다.

엔터티.유형

service

엔터티 유형은 서비스로 간주됩니다.

entity.guid

없음

entity.guid 은 New Relic의 백엔드에서 엔티티를 고유하게 식별하는 파생 값입니다.

기타 속성

제한된 속성 을 제외하고 common 또는 각 범위 개체의 attributes 개체에 원하는 임의의 속성을 추가할 수 있습니다. 예를 들어, 추적 데이터를 분석하는 데 도움이 되도록 customer.id 또는 user.id 과 같은 속성을 추가할 수 있습니다.

newrelic 형식을 사용하는 추적 JSON에 대한 요구사항 및 가이드라인:

  • 각 JSON 페이로드는 객체의 배열입니다.
  • 각 객체에는 필수 spans 키가 포함되어야 합니다.
  • 각 객체에는 선택적 common 키가 포함될 수 있습니다. 개체의 여러 범위에 걸쳐 정보를 공유하려는 경우 이 옵션을 사용합니다.
  • 범위의 모든 키는 common 블록의 동일한 키보다 우선합니다.
  • spans 키 값은 span 객체 목록입니다.
  • 특정 속성은 필수 이며 선택적 common 블록이나 각 범위에 포함되어야 합니다.
  • 권장 속성과 맞춤 속성은 attributes 이라는 키 아래, 선택적 common 블록 및/또는 각 범위의 키-값 쌍 목록에 선택적으로 포함될 수 있습니다.

다음 예시 POST 에는 trace.id 12345 와 맞춤 속성 host: host123.example.com 이 있는 두 개의 스팬이 있습니다. 첫 번째 범위에는 parent.id 이 없으므로 이것이 추적의 루트입니다. 두 번째 범위의 parent.id 는 첫 번째 범위의 ID를 가리킵니다.

[
{
"common": {
"attributes": {
"host": "host123.example.com"
}
},
"spans": [
{
"trace.id": "12345",
"id": "abc",
"timestamp": 1603336834823,
"attributes": {
"user.email": "bob@newr.com",
"service.name": "my-service",
"duration.ms": 750,
"name": "my-span"
}
},
{
"trace.id": "12345",
"id": "def",
"timestamp": 1603336834899,
"attributes": {
"parent.id": "abc",
"service.name": "second-service",
"duration.ms": 750,
"name": "second-span"
}
}
]
}
]

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

분산 추적에 대해 자세히 알아보기:

Copyright © 2022 New Relic Inc.

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