• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

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

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

문제 신고

게이트웨이 데이터 스키마 차이점

게이트웨이 프로세서는 텔레메트리 데이터가 뉴렐릭에 도달하기 전에 작동합니다. 이는 NRDB에서 사용할 수 있는 일부 속성을 아직 게이트웨이에서 사용할 수 없음을 의미합니다. 필터, 변환 및 샘플링 프로세서에 대한 OTTL 표현식을 작성할 때 이러한 차이점을 이해하는 것이 매우 중요합니다.

스키마가 서로 다른 이유는 무엇일까요?

데이터 흐름 및 보강

텔레메트리 데이터가 뉴렐릭의 플랫폼을 통해 흐르는 경우:

  1. 게이트웨이 처리 - 게이트웨이는 에이전트 및 기타 소스로부터 원시 텔레메트리를 받습니다.
  2. 강화 - 뉴렐릭은 속성(예: entity.guid, appName)을 추가하고 일부 기존 속성의 이름을 바꿉니다.
  3. 클라우드 규칙 처리 - NRQL기반 cloud 규칙은 보강된 데이터를 기반으로 작동합니다.
  4. 저장 방식 - 모든 보강 처리가 적용된 데이터는 NRDB에 저장됩니다.

게이트웨이 프로세서에 미치는 영향

게이트웨이 프로세서는 사전 보강 데이터를 볼 수 있습니다. 즉, 다음과 같습니다.

  • 일부 속성은 아직 존재하지 않습니다(예: entity.guid, appName, entityGuid).
  • 속성 이름은 NRDB에서 보이는 것과 다를 수 있습니다.
  • 필터 및 변환 로직은 이러한 축소된 속성 집합을 고려해야 합니다.

클라우드 규칙은 보강 후 데이터를 참조합니다. 즉, 다음과 같습니다.

  • 모든 강화 속성을 사용할 수 있습니다.
  • NRQL 쿼리는 게이트웨이에 존재하지 않는 속성을 참조할 수 있습니다.

데이터 소스

게이트웨이는 다음으로부터 텔레메트리를 수신합니다.

  • 뉴렐릭 APM 에이전트 (다국어 지원)
  • 뉴렐릭 인프라 에이전트
  • OpenTelemetry 수집기
  • 뉴렐릭 API (이벤트 API, 로그인 API, 트레이스 API, 지표 API)
  • 기타 OTLP 호환 소스

중요

게이트웨이 구현, 배포에 지원되는 에이전트 및 버전을 확인하려면 에이전트 설정 문서를 참조하세요.

모든 데이터는 수많은 속성을 가진 복잡하고 다중 중첩된 JSON 형식으로 제공됩니다.

게이트웨이 프로세서용 OTTL 표현식 작성

속성 가용성

OTTL 필터 조건 또는 변환문을 작성할 때:

사용 가능한 속성:

  • 에이전트/수집기에서 보낸 코어 텔레메트리 속성
  • 측정 속성, 도구가 직접 추가
  • 표준 OTLP 속성(예: span_id, trace_id, severity.number)

사용 불가능한 속성(정보 보강 중에 추가됨):

  • entity.guid, entityGuid
  • appId, appName
  • host (대부분의 경우)
  • realAgentId
  • 다양한 NR 관련 메타데이터 속성

자세한 내용은 아래 속성 참조표를 참조하십시오.

모범 사례

실제 데이터로 테스트: 복잡한 필터를 작성하기 전에 게이트웨이의 모니터링 데이터를 사용하여 델메트리에 어떤 속성이 있는지 확인하세요.

사용 가능한 속성을 활용하세요:

# ✓ Works - span_id exists in raw telemetry
filter/Spans:
config:
spans:
- 'span_id.string == "abc123"'
# ✗ May not work - entity.guid added during enrichment
filter/Spans:
config:
spans:
- 'attributes["entity.guid"] == "xyz789"'

강화된 속성에 대한 cloud 규칙을 고려하십시오. 필터링 로직에 강화된 속성(예: appName 또는 entity.guid)이 필요한 경우 게이트웨이 프로세서 대신 cloud 규칙을 사용하십시오.

참조표를 확인하세요. 필터 또는 변환에서 속성을 사용하기 전에 아래 표에서 해당 속성이 "게이트웨이에서 사용할 수 없음"으로 표시되어 있지 않은지 확인하십시오.

데이터 유형별 속성 참조

다음 표에서는 각 텔넷리 데이터 유형에 대해 게이트웨이 수준에서 사용할 수 없는 속성을 보여줍니다. 이러한 속성을 기준으로 필터링하거나 변환해야 하는 경우 cloud 규칙을 사용하는 것을 고려해 보세요.

데이터 형식

게이트웨이에서 사용할 수 없는 속성

예시 필터 표현식(OTTL)

프로세서(APM)

appId

,

appName

,

containerId

,

entity.guid

,

entityGuid

,

host

,

realAgentId

,

transactionSubType

,

transactionType

attributes["guid"] == "c2906c2e8b9f11ff"

맞춤 이벤트

appId

,

appName

,

containerId

,

entityGuid

,

host

,

realAgentId

attributes["myFloat"] == 0.603

오류 추적

aggregateFacet

,

appId

,

appName

,

applicationIds

,

count

,

entity.guid

,

entityGuid

,

error.class

,

message

,

path

,

exceptionClass

,

fingerprint

,

id

,

message

,

realAgentId

,

storageId

,

timestamp

,

transactionName

,

transactionUiName

attributes["traceId"] == "b366efe772fa6d1c8e0852558026c40e"

트랜잭션 오류

aggregateFacet

,

appId

,

appName

,

containerId

,

entity.guid

,

entityGuid

,

host

,

realAgentId

,

transactionUiName

attributes["error.message"] == "my expected error message"

연구소

entity.guids

,

messageId

,

newrelic.logPattern

,

newrelic.logs.batchIndex

,

newrelic.source

span_id == "8b583de97341d094"

지표슬라임)

appId

,

appName

,

entity.guid

,

entityGuid

,

language

,

metricName

,

metricTimesliceName

,

newrelic.timeslice.value

,

scope

,

timestamp

차원적 규칙 또는 cloud 규칙을 사용하세요

스팬(분산 추적)

appId

,

appName

,

containerId

,

duration.ms

,

entity.guid

,

entity.name

,

entityGuid

,

host

,

id

,

process.id

,

realAgentId

,

trace.id

name == "WebTransaction/Go/GET /log"

SQL추적

applicationIds

,

callCount

,

databaseMetricName

,

entity.guid

,

id

,

maxCallTime

,

minCallTime

,

path

,

realAgentId

,

sql

,

sqlId

,

storageId

,

timestamp

,

totalCallTime

,

uri

attributes["uri"] == "Custom/Simple/sqlTransaction"

거래 추적

storageId

,

uri

,

path

,

agentRunId

,

applicationIds

,

duration

,

entity.guid

,

guid

,

id

,

protocolVersion

,

realAgentId

,

timestamp

원시 트레이스 데이터에서 사용 가능한 속성 사용

지표 (게이지)

newrelic.source

(값:

metricAPI

),

metricName

:

{type, count, latest, max, min, sum}

name == "redis_aof_rewrite_in_progress" and value < 100

기준(요약)

newrelic.source

(값:

metricAPI

),

metricName

:

{type, count, max, min, sum}

attributes["scrapedTargetKind"] == "user_provided"

지표(개수)

newrelic.source

(값:

metricAPI

),

metricName

:

{type, count}

attributes["instrumentation.name"] == "nri-prometheus"

시스템 샘플(인프라)

없음

attributes["entityKey"] == "vagrant"

스토리지샘플(인프라)

entityAndMountPoint

attributes["inodesUsed"] == 161604

네트워크 샘플(인프라)

entityAndInterface

attributes["entityKey"] == "vagrant"

프로세스샘플(인프라)

entityAndPid

attributes["entityKey"] == "vagrant"

컨테이너 샘플(인프라)

entityGuid

,

entityType

,

entityId

attributes["agentName"] == "ContainerSampleAgent"

일반적인 시나리오

엔티티별 필터링

문제: 엔티티별로 스팬을 필터링하려고 하는데, 게이트웨이에 entity.guid 존재하지 않습니다.

해결 방법: 원시 텔레메트리에 존재하는 서비스 이름 또는 기타 식별 속성을 사용합니다.

filter/Spans:
config:
spans:
- 'attributes["service.name"] == "my-service"'

애플리케이션 이름으로 필터링

문제: APM 트랜잭션에서 게이트웨이에 appName 없습니다.

해결 방법: 속성을 사용하여 직접 세트를 구성하거나 cloud 규칙을 사용하여 보강 후 필터링을 적용합니다.

엔티티 정보 추가

문제: 게이트웨이에서 텔레메트리에 정보 컨텍스트를 추가하려고 합니다.

해결책: 게이트웨이에서 entity.guid 에 접근할 수는 없지만, 사용자 식별 메타데이터를 추가할 수 있습니다.

transform/Logs:
config:
log_statements:
- set(attributes["deployment"], "production-us-east")
- set(attributes["cluster"], "k8s-prod-01")

문제점 해결

필터가 예상 데이터와 일치하지 않습니다.

필터 프로세서가 예상과 다른 데이터를 반환하는 경우:

  1. 속성 가용성 확인 - 게이트웨이에 해당 속성이 존재하는지 확인합니다(NRDB에만 존재하는 것이 아님).
  2. 실제 텔레메트리 검사 - 게이트웨이 모니터링을 사용하여 실제로 어떤 속성이 존재하는지 확인
  3. 속성 접근 권한 테스트 - 속성에 간단한 필터를 적용하여 존재하는지 확인해 보세요.
    filter/Test:
    config:
    logs:
    - 'attributes["entity.guid"] != ""' # Will match nothing if attribute doesn't exist

변환이 예상 값을 설정하지 않음

속성이 추가되거나 수정되지 않는 경우:

  1. 속성 이름을 확인하십시오 - 사전 보강 속성 이름은 NRDB와 다를 수 있습니다.
  2. 데이터 유형을 확인하세요 - 속성에 올바르게 접근하고 있는지 확인하십시오 (예: attributes["key"] 사용 여부와 필드 직접 접근 여부).
  3. 프로세서 실행 순서를 검토하고 변환 작업이 해당 변환에 의존하는 필터보다 먼저 실행되도록 하십시오.

다음 단계

Copyright © 2026 New Relic Inc.

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