OpenTelemetry의 모든 데이터는 리소스 와 연결됩니다. 자원은 텔레메트리를 자원 속성으로 생산하는 엔터티의 표현입니다. 리소스 속성은 New Relic의 엔터티 개념에 리소스를 적용하는 데 사용됩니다.
수신된 데이터는 엔터티 합성 이라는 프로세스를 통해 엔터티와 연결되며, 이에 따라 존재하는 리소스 속성은 데이터가 연결될 엔터티 유형을 결정하는 규칙과 일치됩니다. OpenTelemetry에서 가져온 데이터의 경우 엔터티 합성 규칙은 OpenTelemetry 리소스 의미 규칙을 따르도록 설계되었습니다.
자원 의미론적 규칙은 다양한 유형의 엔터티를 설명하기 위한 다양한 규칙 본문을 정의합니다. 예를 들어 서비스 및 호스트 규칙은 각각 서비스 또는 호스트 인스턴스를 설명하는 리소스 속성을 정의합니다.
지원되는 엔터티 유형
OpenTelemetry 사용 시 지원되는 뉴웰릭 엔터티 유형에 대해 설명합니다. 지원되는 각 엔터티 유형에는 다음이 포함됩니다.
- 엔터티 합성에 필요한 리소스 속성입니다.
- 뉴렐릭 UI 의 특정 측면을 구동하는 권장 속성입니다.
- 존재하는 경우 엔터티 태그 가 되는 속성입니다.
서비스
서비스 엔터티는 OpenTelemetry 서비스 를 설명하는 자원 의미론적 규칙을 준수하여 합성됩니다.
OpenTelemetry를 사용하여 서비스 엔터티를 모니터링하는 방법에 대한 설명서와 예시를 참조하세요.
필수 속성
service.name
: UI에 표시되는 서비스 이름은 이 값에서 나옵니다.
권장 속성
service.instance.id
: 동일한 서비스의 여러 인스턴스 간에 패싯을 활성화합니다.telemetry.sdk.language
: 존재하는 경우 이 값은 Java 애플리케이션용 JVM 런타임 페이지와 같은 런타임 관련 UI의 표시를 구동합니다.
엔터티 태그
service.namespace
telemetry.sdk.language
(언어 태그로 추가됨)telemetry.sdk.version
k8s.cluster.name
k8s.namespace.name
k8s.deployment.name
호스트
호스트 엔터티는 호스트 를 설명하는 OpenTelemetry 리소스 의미 규칙을 준수하여 합성됩니다.
자세한 내용은 인프라 모니터링을 위한 수집기 의 호스트 모니터링 예를 참조하세요.
필수 속성
엔터티 태그
cloud.provider
cloud.account.id
cloud.region
cloud.availability_zone
cloud.platform
host.id
host.name
host.type
host.arch
host.image.name
host.image.id
host.image.version
Redis 인스턴스
Redis 서버는 수집기 Redis 수신기 에서 방출된 데이터를 사용하여 합성됩니다. 안타깝게도 현재 Redis 인스턴스에 대한 의미적 규칙이 없으며, Redis 수신기가 내보내는 메트릭에서 속성을 식별하는 방법도 없습니다. 따라서 사용자는 아래 설명된 속성을 수동으로 포함해야 합니다.
자세한 Redis 내용은 모니터링을 위한 수집기 의 예제를 참조하세요.
필수 속성
server.address
: UI에 표시되는 Redis 인스턴스 이름은 이 값에서 나옵니다.server.port
엔터티 태그
redis.version
redis.role
host.type
cloud.provider
cloud.account.id
cloud.region
instrumenation.name
server.address
server.port
지원되는 엔터티 관계
뉴렐릭은 OpenTelemetry 에서 소스로 제공되는 엔터티 간의 관계를 지원합니다. 이러한 관계는 적절한 관계 기준이 충족되면 자동으로 합성됩니다. 다음은 현재 지원되는 관계와 필수 기준입니다.
OpenTelemetry Collector를 사용한 인프라 관계에 대한 서비스
OpenTelemetry Collector를 사용하면 인프라를 모니터링 할 수 있습니다. 에서 생성된 권한화된 서비스 간에는 부분 관계가 지원됩니다.OpenTelemetry OpenTelemetry Collector
서비스와 관련된 지원 관계는 다음과 같습니다.
호스트
서비스와 호스트 엔터티 간의 관계에서는 서비스에 host.id
리소스 속성이 포함되어야 하고 서비스가 실행 중인 호스트의 host.id
과 일치해야 합니다.
컨테이너
서비스와 컨테이너 엔티티 간의 관계에는 서비스에 container.id
리소스 속성이 포함되어야 하며 해당 서비스가 실행 중인 컨테이너의 container.id
과 일치해야 합니다.
뉴렐릭 인프라 에이전트를 사용한 서비스-하위 관계
뉴렐릭 인프라 에이전트를 사용하여 클러스터를 모니터링할 수 있습니다. OpenTelemetry 권한화된 서비스와 뉴렐릭 인프라 에이전트에서 생성된 부분 관계가 지원됩니다.
이러한 관계가 작동하려면 서비스에서 내보낸 텔레메트리를 배포 에이전트가 내보낸 텔레메트리와 상호 연관시킬 수 있도록 구성해야 합니다. 이렇게 하려면 서비스의 텔레메트리에 서비스가 실행되고 있는 호스트, 컨테이너 등을 식별하는 리소스 속성을 포함해야 합니다. 이 작업은 일반적으로 해당 언어에 대한 OpenTelemetry SDK에서 제공하는 리소스 감지기를 구성하거나 OpenTelemetry Collector의 리소스 감지 프로세서를 사용하는 것만큼 쉽습니다.
서비스와 관련된 지원 관계는 다음과 같습니다.
블루렐릭 인프라 에이전트를 사용한 호스트 모니터
OpenTelemetry 위임된 서비스와 뉴렐릭 인프라 에이전트에서 생성된 호스트 분리 간의 호스트 관계에는 다음 두 가지가 필요합니다.
host.id
리소스 속성은 서비스의 스프레드시트에 있어야 합니다.host.id
은 인프라 에이전트에서 파생된 호스트의 ID 와 상관 관계가 있어야 합니다.
호스트 정체성 도출
중요
뉴렐릭 Infrastructure 에이전트에서 파생된 호스트 ID는 모든 상황에서 OpenTelemetry 의 host.id
리소스 속성 의미 체계와 정확하게 일치하지 않습니다. 이로 인해 인프라 에이전트로 모니터링되는 호스트에 대한 서비스를 연관시키는 데 어려움이 발생할 수 있습니다. 이 섹션을 주의 깊게 읽고 잠재적인 과제를 파악하세요.
뉴렐릭 인프라 에이전트에 의해 파생된 호스트 ID는 호스팅 환경 및 에이전트 설정에 따라 다릅니다.
서비스가 뉴렐릭 인프라 에이전트에 의해 호스트 모니터와 적절하게 상호 연결되려면 서비스에서 내보낸 host.id
리소스 속성이 에이전트의 호스트 ID 컴퓨트와 일치해야 합니다. 다음 섹션에서는 우선순위 순서대로 호스트의 ID를 분석 에이전트가 계산하는 방법을 설명하여 서비스의 host.id
올바르게 설정하는 방법을 이해할 수 있도록 합니다.
인프라 에이전트는 다음으로 구성됩니다. display_name
인프라 에이전트가 display_name
을 사용하도록 구성된 경우 해당 호스트의 ID로 사용됩니다. OpenTelemetry 계측 서비스는 display_name
와 동일한 host.id
을 내보내도록 구성되어야 합니다.
cloud 환경에서 실행되는 호스트
호스트가 cloud 환경(예: AWS 또는 Azure)에서 실행되는 경우 에이전트는 cloud 공급자가 할당한 인스턴스 ID를 사용합니다. 귀하의 OpenTelemetry 계측 서비스는 귀하의 cloud 환경에 적합한 리소스 감지기를 사용하도록 구성되어야 합니다.
클라우드가 아닌 환경에서 실행되는 호스트
컨테이너화되지 않은 환경에서는 에이전트 컴 퓨트가 호스트의 FQDN(정규화된 이름)입니다. 에이전트가 FQDN을 결정하는 방법은 운영 시스템과 같은 다양한 요소에 따라 다릅니다. 리소스 탐지기는 컴퓨팅 에이전트가 확인하는 FQDN과 동일한 값을 신뢰할 수 없습니다. 인프라 에이전트의 display_name
과 서비스의 host.id
명시적으로 구성하여 일치시키는 것이 좋습니다.
블루렐릭 인프라 에이전트를 사용한 컨트롤러 모니터 서비스
서비스와 컨테이너 간의 관계를 위해서는 container.id
리소스 속성을 포함하는 적절한 리소스 감지기로 서비스를 구성해야 합니다.
Amazon CloudWatch Metric Streams
AWS 에서 호스팅되는 뷰는 뉴렐릭이 Amazon CloudWatch Metric Streams 와 통합되어 모니터링될 수 있습니다. 이는 인프라를 모니터링하기 위한 OpenTelemetry 솔루션이 아닙니다. 그러나 뉴렐릭은 Amazon 사용하여 렌더링된 서비스와 리소스 모니터 간의 다양한 관계를 OpenTelemetry CloudWatch Metric Streams 지원합니다. 지원되는 관계는 아래와 같습니다.
중요
일부 관계는 측정, 통계에 의해 자동으로 지원됩니다. 이러한 관계는 OpenTelemetry 의미 규칙을 활용하여 통해 사용하는 서비스의 텔레메트리를 OpenTelemetry AWS 리소스 모니터와 CloudWatch Metric Streams 상관시킵니다. 하지만 이러한 규칙 중 다수는 아직 안정적이지 않고 계속 발전하고 있다는 점을 알아 두십시오. 아래 프레임워크에 대한 프레임메트리를 생성하는 측정, 로그는 의미 규칙에 대한 성숙도 및 준수 수준에 따라 다릅니다. 따라서 귀하가 사용하는 측정 시스템은 이러한 관계가 작동하는 데 필요한 속성을 방출하지 않을 수 있습니다. OpenTelemetry 의 의미 규칙에 따른 계측, 계측의 완성도에 관한 질문이 있으면 사용 중인 계측, 계측의 유지 관리자에게 문의하세요.
측정, 로그에서 관계가 자동으로 지원되지 않거나 기존 측정, 로그가 표준 규칙을 따르지 않는 경우에는 관계를 설정하기 위해 수동으로 HTML 폼리를 뉴렐릭으로 전송해야 합니다. 리소스의 ARN을 포함하는 속성 newrelic.aws_metric_streams.arn
과 함께 로그나 span을 전송하여 이를 수행합니다. 스팬이 샘플링될 수 있으므로 스팬에 걸쳐 로그를 전송하는 것이 좋습니다. 이러한 관계의 수명(TTL)은 75분이므로 관계를 유지하려면 주기적으로 텔레메트리를 방출해야 합니다.
측정, 관측을 지원 | AWS 제품 |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
엔터티에 사용자 정의 태그 추가
태그를 사용하여 UI에서 엔터티를 구성하고 필터링할 수 있습니다. 태그는 모니터링되는 앱 및 호스트와 같은 다양한 데이터 세트에 추가되는 키-값 쌍(예 team: operations
)입니다. 특정 중요한 속성은 계정 ID와 같은 태그로 자동으로 제공됩니다. UI에서 직접 또는 아래 방법 중 하나를 사용하여 나만의 맞춤 태그를 추가할 수도 있습니다.
접두사가 tags
인 리소스 속성을 추가하면 뉴렐릭의 엔터티에 태그가 표시됩니다. 예를 들어, tags.mytag=myvalue
속성을 추가하면 엔터티 태그 mytag=myvalue
가 생성됩니다.