• 로그인지금 시작하기

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

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

문제 신고

호스트 내 통합 실행 파일: JSON 사양

인프라 모니터링을 위해 통합 SDK 를 사용하여 맞춤형 호스트 통합 을 구축하는 경우 통합은 실행 파일과 하나 이상의 구성 파일 등 최소 3개의 파일로 구성됩니다. 실행 파일은 인프라 모니터링 에이전트에서 사용하고 New Relic으로 전송되는 JSON 데이터를 생성합니다. JSON 개체를 SDK 통합 프로토콜이라고 합니다.

실행 파일 요구 사항

실행 파일은 명령줄 인터페이스에서 실행되는 모든 파일일 수 있습니다. 예를 들어:

  • 쉘 스크립트
  • 스크립팅 언어 스크립트
  • 컴파일된 바이너리

실행 파일의 유일한 요구 사항은 이 문서의 사양 을 충족하는 JSON 데이터를 한 줄 형식으로 내보내는 것입니다.

권장 사항: Go를 사용하여 통합을 생성하십시오. 호스트 통합 및 통합 구축 도구 를 만드는 데 사용하는 언어입니다. 그러나 모든 언어로 통합을 생성할 수 있습니다.

파일 배치

실행 파일은 다음 디렉토리에 있습니다.

  • 리눅스:

    /var/db/newrelic-infra/custom-integrations
  • Windows:

    C:\Program Files\New Relic\newrelic-infra\newrelic-integrations

통합 프로토콜 v4: JSON 출력 예시

다음 섹션에서는 새로운 JSON 스키마(통합 프로토콜 v4)에 대해 설명합니다. SDK v4는 이 새 프로토콜 버전만 지원합니다. 다음은 가장 중요한 변경 사항입니다.

  • 최상위 수준의 새 integration 개체입니다.
  • entitymetrics 개체가 수정되었습니다.

자세한 내용은 v3에서 v4로 마이그레이션 가이드 를 참조하세요.

{
"protocol_version":"4", # protocol version number
"integration":{ # this data will be added to all metrics and events as attributes,
# and also sent as inventory
"name":"integration name",
"version":"integration version"
},
"data":[ # List of objects containing entities, metrics, events and inventory
{
"entity":{ # this object is optional. If it's not provided, then the Entity will get
# the same entity ID as the agent that executes the integration.
"name":"redis:192.168.100.200:1234", # unique entity name per customer account
"type":"RedisInstance", # entity's category
"displayName":"my redis instance", # human readable name
"metadata":{} # can hold general metadata or tags. Both are key-value pairs that will
# be also added as attributes to all metrics and events
},
"metrics":[ # list of metrics using the dimensional metric format
{
"name":"redis.metric1",
"type":"count", # gauge, count, summary, cumulative-count, rate or cumulative-rate
"value":93,
"attributes":{} # set of key-value pairs that define the dimensions of the metric
}
],
"inventory":{...}, # Inventory remains the same
"events":[...] # Events remain the same
}
]
}

통합 프로토콜 v3: JSON 출력 예시

JSON에는 다음이 포함됩니다.

  • 기본 통합 데이터(이름, 버전)가 있는 헤더
  • 데이터(메트릭, 인벤토리 및/또는 이벤트 데이터)를 보고하는 하나 이상의 엔터티 가 포함된 데이터 목록

이 다이어그램은 다음 구조를 보여줍니다.

다음은 JSON 출력의 예입니다(가독성을 위해 줄 바꿈으로 형식 지정됨). 정의 및 사양은 다음 예를 따릅니다.

{
"name": "my.company.integration",
"protocol_version": "3",
"integration_version": "x.y.z",
"data": [
{
"entity": {
"name": "my_garage",
"type": "building",
"id_attributes": [
{
"key": "environment",
"value": "production"
},
{
"key": "node",
"value": "master"
}
]
},
"metrics": [
{
"temperature": 25.3,
"humidity": 0.45,
"displayName": "my_garage",
"entityName": "building:my_garage",
"event_type": "BuildingStatus"
}
],
"inventory": {
"out_door": {
"status": "open"
}
},
"events": []
},
{
"entity": {
"name": "my_family_car",
"type": "car",
"id_attributes": [
{
"key": "environment",
"value": "production"
},
{
"key": "node",
"value": "master"
}
]
},
"metrics": [
{
"speed": 95,
"fuel": 768,
"displayName": "my_family_car",
"entityName": "car:my_family_car",
"event_type": "VehicleStatus"
}
],
"inventory": {
"motor": {
"brand": "renault",
"cc": 1800
}
},
"events": [
{
"category": "gear",
"summary": "gear has been changed"
}
],
"add_hostname": true
}
]
}

JSON: 일반 사양

다음은 JSON 출력에 대한 일반 사양입니다.

JSON: 헤더

다음은 호스트 통합 JSON 출력 의 첫 번째 부분의 예입니다.

"name":"com.myorg.nginx",
"protocol_version":"3",
"integration_version":"1.0.0",
"data": [ {entities}...]

최소 페이로드는 헤더 필드만 있는 JSON 객체입니다. 권장 사항: 수집할 데이터가 없으면 프로그램 반환 코드를 사용하고 stderr 에 기록된 메시지를 기록합니다.

JSON 헤더 필드

설명

name

필수의. 구성 파일의 name 필드와 동일해야 합니다.

권장 사항: 역 도메인 이름을 사용하여 고유한 통합 이름을 생성하십시오.

protocol_version

필수의. 통합 실행 파일이 사용 중인 에이전트와 통합 간의 교환 프로토콜 버전 번호입니다.

  • 현재 버전은 3입니다. 이 프로토콜에는 인프라 에이전트 1.2.25 이상이 필요합니다.

  • 프로토콜 2에는 인프라 에이전트 1.0.859 이상이 필요합니다.

  • 프로토콜 1은 모든 에이전트와 호환됩니다.

    자세한 내용은 SDK 변경 사항 을 참조하십시오.

integration_version

선택 과목. 통합 버전. 각 호스트에서 실행 중인 통합 버전을 추적하는 데 사용됩니다.

통합에는 둘 이상의 실행 파일이 있을 수 있습니다. 따라서 이것은 단순히 실행 파일의 버전이 아닙니다.

data

데이터 보고에 필요합니다. 하나 이상의 엔터티에서 보고된 데이터 가 포함된 목록입니다.

JSON: 엔티티

JSON 출력data 목록 내부에는 하나 이상의 항목이 있습니다. 엔터티 입력 필드에는 다음이 포함됩니다.

엔터티 JSON 필드

설명

entity

필수의. 엔터티 데이터 또는 속성.

metrics

선택 과목. 항목 관련 측정항목 목록입니다.

inventory

선택 과목. 엔티티 관련 인벤토리 항목.

events

선택 과목. 엔터티 관련 이벤트 목록입니다.

add_hostname

선택 과목. 부울. true 이면 항목 측정항목이 hostname 로 장식됩니다.

JSON 출력data 목록 내부에는 하나 이상의 항목과 해당 데이터가 있습니다. entity 항목에는 두 개의 필드가 있습니다.

항목 데이터 JSON 필드

설명

name

필수의. 엔티티의 식별자/이름.

권장 사항: 역 도메인 이름을 사용하여 고유한 통합 이름을 생성하십시오.

type

필수의. 엔터티의 종류입니다. 인프라 에이전트는 name 과 함께 고유 식별자 를 구성하기 위한 네임스페이스로 사용합니다.

id_attributes

선택 과목. 엔터티에 고유성을 제공하는 키-값 속성 목록입니다. 가독성을 높이고 추가 정보를 제공하며 엔티티 이름 고유성을 개선하기 위해 key=value 형식으로 이름에 첨부됩니다.

식별자 속성은 엔터티 이름이 고유 식별자로 작동하기에 충분하지 않거나 의미 있는 정보를 충분히 제공하지 않을 때 유용합니다. 예를 들어:

[
{
"key": "service",
"value": "mysql"
},
{
"key": "role",
"value": "master"
}, ...
]

엔티티 이름에 대한 루프백 주소 대체

인프라 에이전트 버전 1.2.25 이상 부터 프로토콜 v3은 에이전트 수준에서 엔티티 이름에 로컬 주소 대체를 추가하여 원격 엔티티 고유성을 개선합니다.

여러 원격 엔티티가 엔드포인트( ip 또는 hostname )를 기반으로 하는 이름을 갖고 이 이름에 루프백 주소 가 포함된 경우 두 가지 문제가 있습니다.

  • 이 localhost 값은 추가 컨텍스트 없이는 귀중한 정보를 제공하지 않습니다.
  • name 은(는) 로컬 주소로 이름이 지정된 다른 서비스와 충돌할 수 있습니다.

다음과 같은 경우에 발생합니다.

  • 엔드포인트 이름은 localhost:port 과 같습니다.
  • 포트는 주어진 서비스에 대해 동일한 경향이 있습니다. 예를 들어 MySQL의 경우 3306입니다.

들어오는 프로토콜 v3 데이터에서 인프라 에이전트는 엔터티 이름(및 키)의 루프백 주소를 다음 목록에서 사용 가능한 첫 번째 항목으로 바꿉니다.

  1. 해당하는 경우 에이전트가 검색한 클라우드 제공자 인스턴스 ID
  2. 표시 이름, display_name 에이전트 구성 옵션 을 통해 설정
  3. 에이전트가 검색한 호스트 이름

예를 들어, 프로토콜 v3를 사용한 통합이 이름이 localhost:3306 인 엔티티를 반환하고 에이전트가 베어 메탈에서 실행 중인 경우(클라우드 제공자 인스턴스 ID가 없음) display_name이 설정되지 않고 호스트 이름이 prod-mysql-01 , 에이전트는 localhost 를 대체하고 엔티티 이름 prod-mysql-01:3306 을 생성합니다.

인프라 에이전트는 v3 통합 프로토콜에 대한 루프백 주소 교체를 자동으로 활성화합니다. 에이전트 구성 플래그 replace_v2_loopback_entity_names 를 통해 v2에 대해 이를 활성화할 수도 있습니다. 이 경우 v2를 사용하는 에이전트가 실행하는 모든 통합은 로컬 주소를 전달할 때마다 이름이 바뀝니다.

JSON: 메트릭, 인벤토리 및 이벤트 데이터

데이터 값은 실행 파일 헤더를 따릅니다. 세 가지 데이터 유형 을 기록할 수 있습니다.

중요

New Relic 대시보드의 관점에서 인프라 메트릭과 이벤트는 모두 이벤트 데이터 로 분류됩니다.

Copyright © 2022 New Relic Inc.

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