NRQL 쿼리를 실행할 때 응답으로 반환되는 데이터 포인트 수 제한, 쿼리 시간 초과 등 다양한 제한 으로 제한됩니다. 우리의 이력 데이터 내보내기 기능을 사용하면 응답에서 200,000,000개의 데이터 포인트를 반환하고(일반적인 제한인 5,000 대신) 쿼리 시간 초과가 없는 NRQL 쿼리를 실행할 수 있습니다. 결과는 하나 이상의 JSON 파일로 반환됩니다.
요구 사항
- 데이터 플러스 필요
- 데이터를 내보내려면 핵심 또는 전체 플랫폼 사용자 여야 합니다.
제한 및 제한 사항
기능에 대한 몇 가지 제한 사항은 다음과 같습니다.
사용 제한
내보내기에 대한 기본 사용 제한은 다음과 같습니다.
- 내보내기는 2억 개 미만의 이벤트를 반환하는 것으로 추정되어야 합니다.
- 수출은 50억 개 미만의 이벤트를 검사하는 것으로 추정되어야 합니다.
- 계정당 최대 2개의 동시 내보내기
한도를 높이려면 계정 담당자에게 문의하세요.
데이터 유형 제한
다음 데이터 유형은 내보낼 수 없습니다.
- 메트릭 타임슬라이스 데이터
- FedRAMP 데이터
- 블롭 속성
- 배열 속성
- 백분위수 속성
시간 범위 제한
기록 데이터 내보내기 기능은 라이브 데이터 또는 이전 12시간 동안의 데이터 쿼리를 지원하지 않습니다.시간 범위는 과거 12시간 이상이어야 합니다.
쿼리 구문 요구 사항
이 기능은 특정 속성 이름과 와일드카드( SELECT *
) 선택을 지원합니다.예를 들어 다음과 같은 쿼리를 지원합니다.
SELECT * FROM MobileRequest SINCE 3 days ago until 2 days ago
SELECT duration, appId FROM TransactionWHERE appName = 'interesting-application'SINCE '2022-06-11 11:05:00-0600' UNTIL '2022-06-11 11:10:00-0600'
쿼리에는 다음 NRQL 구성요소 cannot 사용됩니다.
- 집계 함수(
sum
,count
,average
,max
) - 평가 가능한 함수(
numeric
,log
,concat
)는WHERE
절 에서만 지원됩니다. FACET
TIMESERIES
COMPARE WITH
JOIN
- 중첩 집계
- 하위 쿼리
- 변수 바인딩
- 교차 계정 쿼리
엔드포인트 세부정보
기록 데이터 내보내기 기능은 NerdGraph API를 사용하고 세 가지 끝점을 사용합니다.
- create 엔드포인트를 사용하면 사용자가 내보내기로 실행할 계정 ID와 NRQL을 지정할 수 있습니다.
- get details for export 엔드포인트를 사용하면 사용자가 계정 ID와 내보내기 ID(생성 엔드포인트의 응답 본문에 있음)를 지정하고 이를 사용하여 내보내기 상태를 검색할 수 있습니다. 내보내기가 완료되면 이 엔드포인트의 응답에서 하나 이상의 다운로드 URL 형태로 결과를 찾을 수 있습니다.
- get details for account exports 엔드포인트를 사용하면 사용자는 계정 ID를 지정하고 해당 계정에 대해 만료되지 않은 모든 활성 내보내기에 대한 세부정보를 검색할 수 있습니다.
쿼리 예시
내보내기 만들기
NerdGraph를 사용하는 한 가지 방법은 NerdGraph 탐색기를 사용하는 것입니다. 이 섹션의 지침은 NerdGraph 탐색기 사용에 중점을 둡니다. 자신의 스크립트를 실행하는 데 관심이 있는 경우 스크립트 를 참조하십시오.
NerdGraph 스키마에서 historicalDataExportCreateExport
엔드포인트는 mutation > historicalDataExport
에서 찾을 수 있습니다.내보내기를 실행하려면 아래와 같은 쿼리를 사용하세요.
내보내기에 대한 세부 정보를 가져오고 결과를 검색하는 데 사용되므로 응답 본문에 대한 ID를 선택하는 것이 좋습니다.
mutation { historicalDataExportCreateExport( accountId: YOUR_ACCOUNT_ID nrql: "FROM Transaction SELECT duration, appId WHERE appName = 'interesting-application' SINCE '2022-06-11 11:05:00-0600' UNTIL '2022-06-11 11:10:00-0600'" ) { percentComplete nrql status id message }}
예시 응답
다음은 내보내기 생성에 대한 응답 예시입니다.
{ "data": { "historicalDataExportCreateExport": { "id": "609b6916-8ca9-417c-bbf8-02e4cdc3afd2", "message": null, "nrql": "FROM Transaction SELECT duration, appId WHERE appName = 'interesting-application' SINCE '2022-06-11 11:05:00-0600' UNTIL '2022-06-11 11:10:00-0600'", "percentComplete": 5, "status": "WAITING" } }}
내보내기 취소
NerdGraph 스키마에서 historicalDataExportCancelExport
엔드포인트는 mutation
> historicalDataExport
아래에서 찾을 수 있습니다. 내보내기를 실행하려면 아래와 같은 쿼리를 사용하십시오.
내보내기가 성공적으로 취소되었는지 확인하려면 응답 본문에서 상태를 선택하는 것이 좋습니다.
mutation { historicalDataExportCancelExport( accountId: YOUR_ACCOUNT_ID id: "YOUR_EXPORT_ID" ) { status id }}
예시 응답
다음은 내보내기 취소에 대한 응답의 예입니다.
{ "data": { "historicalDataExportCancelExport": { "id": "YOUR_EXPORT_ID", "status": "CANCELED" } }}
특정 내보내기에 대한 세부정보 가져오기
아래와 같이 생성 엔드포인트의 응답에 있는 내보내기 ID를 사용하여 내보내기에 대한 세부 정보를 쿼리합니다. 이 엔드포인트는 query
> actor
> account
> historicalDataExport
> export
아래의 NerdGraph에서 찾을 수 있습니다.
{ actor { account(id: YOUR_ACCOUNT_ID) { historicalDataExport { export(id: "YOUR_EXPORT_ID") { availableUntil eventCount eventTypes id message nrql percentComplete results status } } } }}
예시 응답
다음은 특정 내보내기에 대한 세부정보를 가져오는 데 대한 응답입니다.
{ "data": { "actor": { "account": { "historicalDataExport": { "export": { "availableUntil": 1655499642845, "eventCount": 1291, "eventTypes": ["MobileRequest"], "id": "4776677a-1e0f-4ad5-a790-cdbe40a1f348", "message": null, "nrql": "SELECT * FROM MobileRequest SINCE 3 days ago UNTIL 2 days ago", "percentComplete": 100, "results": ["downloadLink1", "downloadLink2"], "status": "COMPLETE_SUCCESS" } } } } }}
계정에 대한 수출 세부정보 가져오기
아래와 같이 계정 ID를 사용하여 해당 계정의 모든 내보내기에 대한 세부 정보를 가져올 수 있습니다. 엔드포인트는 query
> actor
> account
> historicalDataExport
> exports
아래의 NerdGraph 스키마에서 찾을 수 있습니다.
{ actor { account(id: YOUR_ACCOUNT_ID) { historicalDataExport { exports { availableUntil eventCount eventTypes id message nrql percentComplete results status } } } }}
예시 응답
다음은 계정에 대한 내보내기 세부정보를 가져오기 위한 예시 응답입니다.
{ "data": { "actor": { "account": { "historicalDataExport": { "exports": [ { "availableUntil": 1655499642845, "eventCount": 1291, "eventTypes": ["MobileRequest"], "id": "4776677a-1e0f-4ad5-a790-cdbe40a1f348", "message": null, "nrql": "SELECT * FROM MobileRequest SINCE 3 days ago UNTIL 2 days ago", "percentComplete": 100, "results": ["downloadLink1", "downloadLink2"], "status": "COMPLETE_SUCCESS" } ] } } } }}
스크립트 사용
펼쳐보기에서 프로그래밍 방식으로 쿼리 이력 데이터를 내보내는 것이 유용할 수 있습니다. 시작하는 데 다음 curl
명령이 유용할 수 있습니다. 응답 예제는 예제 쿼리 섹션의 응답을 참조하세요.
중요
백슬래시(\'
)를 사용하여 내보내기 NRQL 쿼리에서 작은따옴표('
)의 모든 인스턴스를 이스케이프해야 합니다. 아래의 curl
명령은 ANSI-C 인용이 제공하는 기능인 --data-raw
인수의 선행 $
에 의존합니다. 더 많은 정보는 공식 GNU 매뉴얼을 통해 얻을 수 있습니다.
내보내기 만들기
$curl --location --request POST 'https://api.newrelic.com/graphql' \> --header 'Content-Type: application/json' \> --header 'API-Key: $USER_API_KEY' \> --data-raw $'{"query":"mutation {historicalDataExportCreateExport(accountId: $ACCOUNT_ID, nrql: \\"$NRQL_QUERY_TO_EXPORT\\") {percentComplete nrql status message id}}","variables":{}}'
내보내기 취소
$curl --location --request POST 'https://api.newrelic.com/graphql' \> --header 'Content-Type: application/json' \> --header 'API-Key: $USER_API_KEY' \> --data-raw $'{"query":"mutation {historicalDataExportCancelExport(accountId: $ACCOUNT_ID, id: \\"$YOUR_EXPORT_ID\\") { status message id}}","variables":{}}'
수출 세부정보 얻기
$curl --location --request POST 'https://api.newrelic.com/graphql' \> --header 'Content-Type: application/json' \> --header 'API-Key: $USER_API_KEY' \> --data-raw $'{"query":"{actor {account(id: $ACCOUNT_ID) {historicalDataExport {export(id: \\"$YOUR_EXPORT_ID\\") {availableUntil eventCount eventTypes id message nrql percentComplete results status}}}}}","variables":{}}'
계정 내보내기에 대한 세부정보 가져오기
$curl --location --request POST 'https://api.newrelic.com/graphql' \> --header 'Content-Type: application/json' \> --header 'API-Key: $USER_API_KEY' \> --data-raw $'{"query":"{actor {account(id: $USER_API_KEY) {historicalDataExport {exports {availableUntil eventCount eventTypes id message nrql percentComplete results status}}}}}","variables":{}}'
결과 형식 내보내기
쿼리 결과는 두 get details
엔드포인트 중 하나의 결과 필드에 있습니다.하나 이상의 다운로드 링크 형태입니다.결과 파일 자체는 내보내기가 실행된 후 일주일 동안 유효하며 약 100MB 이하의 GZIP 압축 JSON을 포함합니다.각 링크는 6시간 동안 유효하도록 미리 서명되어 있습니다.링크가 만료되면 결과에 대해 NerdGraph에서 내보내기 세부 정보 개체를 다시 쿼리하여 새 링크를 얻을 수 있습니다.
압축을 푼 결과 파일의 예는 다음과 같습니다.
[ { "attributes": { "duration": 36, "eventType": "Transaction", "accountId": YOUR_ACCOUNT_ID, "timestamp": 1655174793213 } }, { "attributes": { "duration": 3, "eventType": "MobileRequest", "accountId": YOUR_ACCOUNT_ID, "timestamp": 1655174793215 } }]
수출 관련 이벤트 조회 및 알림
이 기능은 내보내기가 실행된 New Relic 계정에서 사용자 지정 이벤트를 생성합니다.계정에서 실행된 내보내기에 대한 정보를 얻기 위해 이러한 이벤트에 대한 경고를 쿼리하거나 생성하는 것이 유용할 수 있습니다.
HistoricalDataExport
이벤트 유형에는 내보내기 상태( Created
, Completed
, Failed
, Canceled
), 내보내기 ID, 내보내기가 생성된 NRQL 문자열 등과 같은 정보가 포함됩니다.
쿼리 빌더 에서 실행하거나 대시보드에 추가할 수 있는 다음 쿼리는 지난 주에 생성된 모든 내보내기와 성공적으로 완료되고 오류가 없는 내보내기 수를 반환합니다.
FROM HistoricalDataExport SELECT * WHERE status = 'Created' SINCE 1 WEEK AGO
FROM HistoricalDataExport SELECT count(*) WHERE status != 'Completed' FACET status SINCE 1 WEEK AGO
문제점 해결
아직 활성화되지 않은 계정
내보내기를 만들려고 하면 다음과 같은 오류 메시지가 표시될 수 있습니다.
Cannot query field \"historicalDataExportCreateExport\" on type \"RootMutationType\".
이 메시지가 표시되면 내보내려는 계정에 대해 기록 데이터 내보내기 기능이 아직 활성화되지 않았음을 의미할 수 있습니다.질문이 있는 경우 요구 사항을 검토하고 계정 담당자에게 액세스 권한에 대해 문의하십시오.
결과 링크 만료됨
미리 서명된 URL을 사용하여 결과를 다운로드하려고 하면 다음과 같은 오류가 표시될 수 있습니다.
<Error> <Code>AccessDenied</Code> <Message>Request has expired</Message> <X-Amz-Expires>120</X-Amz-Expires> <Expires>2022-06-24T15:16:45Z</Expires> <ServerTime>2022-06-24T17:56:40Z</ServerTime> <RequestId>1234567890ABC</RequestId> <HostId>ABCD1234HOST-ID098765-XYZ</HostId></Error>
이와 같은 오류는 결과 URL이 만료되었으며 새 결과 URL에 대해 내보내기 개체를 다시 쿼리해야 함을 나타냅니다.내보내기를 다시 실행할 필요가 없으며 결과에 대한 새로운 URL 집합을 가져오기만 하면 됩니다.