당사의 로그 전달 솔루션 이 귀하의 요구 사항을 충족하지 못하는 경우 당사의 Log API를 사용하여 HTTP 엔드포인트를 통해 New Relic에 직접 로그 데이터를 보낼 수 있습니다.
HTTP 엔드포인트
New Relic 계정에 적용할 수 있는 엔드포인트를 사용합니다.
미국(US) 엔드포인트:
https://log-api.newrelic.com/log/v1
유럽 연합 (EU) 끝점:
https://log-api.eu.newrelic.com/log/v1
FedRAMP 엔드포인트:
https://gov-log-api.newrelic.com/log/v1
HTTP 설정
Log API를 통해 New Relic 계정에 로그 데이터를 보내려면:
을(를) 받으세요.
JSON 페이로드에 대한 제한 및 제한된 문자 를 검토하십시오.
Api-Key
또는License-Key
이 헤더 또는 쿼리 매개변수 에 포함되어 있는지 확인하세요. 로그 JSON 예제 를 참조하십시오.POST
요청에서 New Relic 계정에 대한 적절한 HTTP 엔드포인트로 JSON 메시지를 보냅니다.- 우리를:
https://log-api.newrelic.com/log/v1
- 유럽 연합:
https://log-api.eu.newrelic.com/log/v1
- 페드램프:
https://gov-log-api.newrelic.com/log/v1
- 우리를:
트래픽을 생성하고 몇 분 정도 기다린 다음 계정에서 데이터를 확인하십시오 .
기능을 활성화한 후에도 데이터가 나타나지 않으면 문제 해결, 문제 해결 절차를 따르세요.
HTTP 헤더
HTTP 헤더를 생성할 때 다음 지침을 사용하십시오.
머리글 | 지원되는 값 |
---|---|
필수의 |
|
Gzip으로 압축된 JSON 형식이 허용됩니다. 압축된 JSON을 보내는 경우 Content-Type: application/json
및 Content-Encoding: gzip
헤더를 포함하세요.
입증
귀하의 은(는) 로그인 API에 대한 요청을 인증하는 역할을 하며 제출된 로그 메시지가 기록될 뉴렐릭 계정을 결정합니다. HTTP 헤더나 쿼리 문자열로 전달되어야 합니다.
옵션 1: HTTP 헤더를 사용하여 인증
아래 설명된 대로 사용자 지정 HTTP 헤더를 추가하여 라이선스 키를 전달합니다.
머리글 | 지원되는 값 |
---|---|
| 뉴렐릭 . 쿼리를 통해 이를 보낼 수도 있습니다. |
옵션 2: 쿼리 문자열 매개변수를 사용하여 인증("헤더 없는" 인증)
라이센스 키는 URL에서 쿼리 문자열 매개변수로 전달될 수도 있습니다. 이는 사용자 정의 HTTP 요청 헤더를 허용하지 않는 클라우드 기반 소스에서 로그를 보낼 때 유용합니다.
예시: https://LOG_API_ENDPOINT/log/v1?Api-Key=YOUR_API_KEY_HERE
쿼리 매개변수 | 값 |
---|---|
| 귀하의 . HTTP 헤더를 통해 이를 보낼 수도 있습니다. |
JSON 본문
간단하거나 자세한 속성 세트를 사용하여 JSON 메시지를 보낼 수 있습니다.
지원되는 속성 유형
속성은 다음 유형 중 하나일 수 있습니다.
JSON 요청 입력 | New Relic 데이터베이스에 저장된 유형 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
정렬 | (지원되지 않음) |
제한 및 제한된 문자
주의
고객 대면 애플리케이션의 코드 내에서 API를 호출하지 마십시오. 응답 시간이 느린 경우 성능 문제가 발생하거나 애플리케이션이 차단될 수 있습니다. 이러한 방식으로 수행해야 하는 경우 이러한 성능 문제를 피하기 위해 API를 비동기식으로 호출하십시오.
Log API로 전송되는 로그에 대한 제한 사항:
페이로드 총 크기:
1MB(10^6 bytes) maximum per POST
. 압축을 사용하는 것이 좋습니다.
페이로드는
UTF-8
으로 인코딩되어야 합니다.
이벤트당 속성 수: 최대 255개.
속성 이름 길이: 255자.
속성 값의 길이: 처음 4,094자는 NRDB에
message
과 같은 이름이 같은Log
이벤트 필드로 저장됩니다. 문자열 값이 4,094자를 초과하면 긴 문자열을 blob 으로 저장합니다.
일부 특정 속성에는 추가 제한 사항이 있습니다.
accountId
: 예약된 속성 이름입니다. 포함되어 있으면 수집 중에 삭제됩니다.appId
: 정수여야 합니다. 정수가 아닌 데이터 유형을 사용하면 데이터가 수집되지만 쿼리할 수 없게 됩니다.entity.guid
,entity.name
및entity.type
: 이러한 속성은 내부적으로 항목을 식별하는 데 사용됩니다. 메트릭 데이터 포인트의 속성 섹션에서 이러한 키로 제출된 모든 값은 UI의 누락된 엔터티 또는 예상 엔터티와 연결되지 않은 원격 분석과 같은 정의되지 않은 동작을 유발할 수 있습니다. 자세한 내용은 엔터티 합성 을 참조하십시오.eventType
: 예약된 속성 이름입니다. 포함되어 있으면 수집 중에 삭제됩니다.timestamp
: Unix epoch 타임스탬프(초 또는 밀리초) 또는 ISO8601 형식의 타임스탬프여야 합니다.
중요
48시간보다 오래된 타임스탬프가 있는 페이로드는 삭제될 수 있습니다.
Log API로 전송된 로그의 속도 제한:
- Log API로 전송되는 HTTP 요청의 최대 속도: 분당 300,000개 요청
- Log API로 전송되는 압축되지 않은 Log JSON 바이트의 최대 속도: 분당 10GB
비율 제한 위반
속도 제한을 초과하면 Log API가 작동하는 방식에 영향을 줍니다. 이 경우 다음 지침을 따르십시오.
로그 페이로드 형식
유효한 JSON 페이로드는 모두 허용됩니다. 페이로드는 UTF-8 으로 인코딩되어야 합니다.
JSON 메시지 속성
JSON 메시지 속성 파싱
우리의 로그 관리 기능은 모든 message
속성을 JSON으로 구문 분석합니다. 구문 분석된 메시지의 결과 JSON 속성이 이벤트에 추가됩니다. message
속성이 JSON이 아닌 경우 그대로 유지됩니다.
다음은 message
속성의 예입니다.
{ "timestamp": 1562767499238, "message": "{\"service-name\": \"login-service\", \"user\": {\"id\": 123, \"name\": \"alice\"}}"}
이것은 다음과 같이 처리됩니다.
{ "timestamp": 1562767499238, "service-name": "login-service", "user": { "id": 123, "name": "alice" }}
JSON 예시 기록
속성은 문자열 및 숫자와 같은 스칼라 JSON 유형일 수 있습니다. 그것들은 또한 복합(또는 중첩된 ) 객체일 수 있습니다. 복합 속성에는 병합된 이름으로 저장된 관련 속성이 있습니다.
예를 들어 다음은 로그 항목 속성의 복합 user
속성입니다.
"attributes": { "action": "login", "user": { "id": 123, "name": "alice" }}
그러면 다음 속성이 로그 이벤트와 함께 저장됩니다.
기인하다 | 값 |
---|---|
|
|
|
|
|
|
로그 POST 메시지 예
로그 POST
메시지 예:
$POST /log/v1 HTTP/1.1$Host: log-api.newrelic.com$Content-Type: application/json$Api-Key: <YOUR_LICENSE_KEY>$Accept: */*$Content-Length: 319$[{$ "common": {$ "attributes": {$ "logtype": "accesslogs",$ "service": "login-service",$ "hostname": "login.example.com"$ }$ },$ "logs": [{$ "timestamp": <TIMESTAMP_IN_UNIX_EPOCH_OR_IS08601_FORMAT>,$ "message": "User 'xyz' logged in"$ },{$ "timestamp": <TIMESTAMP_IN_UNIX_EPOCH_OR_IS08601_FORMAT>,$ "message": "User 'xyz' logged out",$ "attributes": {$ "auditId": 123$ }$ }]$}]
이 POST
메시지는 다음 로그 메시지가 New Relic에 저장되도록 합니다.
기인하다 | 값 |
---|---|
|
|
|
|
|
|
다음은 저장된 로그 블록 속성의 예입니다.
기인하다 | 값 |
---|---|
|
|
|
|
|
|
JSON POST 요청 예시
다음은 JSON POST 요청의 예입니다.
$POST /log/v1 HTTP/1.1$Host: log-api.newrelic.com$Content-Type: application/json$Api-Key: <YOUR_LICENSE_KEY>$Accept: */*$Content-Length: 133${$ "timestamp": <TIMESTAMP_IN_UNIX_EPOCH_OR_IS08601_FORMAT>,$ "message": "User 'xyz' logged in",$ "logtype": "accesslogs",$ "service": "login-service",$ "hostname": "login.example.com"$}
다음은 뭐지?
플랫폼 전반에 걸쳐 로깅 데이터를 탐색합니다.
- 컨텍스트 기능의 로그를 사용하여 로그를 전달하여 애플리케이션과 플랫폼 성능 데이터에 대한 더 깊은 가시성을 얻으십시오.
- 경보를 설정하십시오.
- 데이터를 조회 하고 대시보드를 작성하십시오.