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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

NerdGraph 튜토리얼: NRQL 쿼리를 비동기적으로 실행

NerdGraph를 사용하여 NRQL 쿼리를 실행할 수 있습니다. 또한 NerdGraph를 사용하여 비동기 NRQL 쿼리를 실행할 수도 있습니다. 비동기 쿼리는 백그라운드에서 실행되며 쿼리 결과 또는 쿼리 상태를 검색하기 위해 후속 요청을 할 수 있습니다. 이 유형의 쿼리는 브라우저 시간 초과 또는 HTTP 연결 시간 초과와 같은 문제로 인해 쿼리가 중단되는 것을 방지합니다. 완료하는 데 시간이 오래 걸릴 수 있는 쿼리를 실행할 때 특히 유용합니다.

요구 사항

Data Plus 가 있는 경우 NerdGraph 또는 쿼리 빌더 UI를 사용하여 최대 10분 동안 비동기 쿼리를 실행할 수 있습니다.

쿼리 제한에 대한 자세한 내용은 쿼리 제한을 참조하세요.

비동기 쿼리 예제

다음은 비동기 쿼리 NerdGraph 호출의 예입니다. async: true 은 쿼리를 비동기식으로 만드는 것입니다. 이 쿼리는 기본 제한 시간인 5초 이내에 완료되면 결과를 반환합니다. 그렇지 않으면 nrqlQueryProgress 필드에 대한 후속 쿼리에 사용할 queryProgress 데이터를 반환합니다.

{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrql(query: "SELECT * FROM Transaction", async: true) {
results
queryProgress {
queryId
completed
retryAfter
retryDeadline
resultExpiration
}
}
}
}
}

비동기 쿼리의 결과 또는 상태 가져오기

쿼리가 기본 시간 초과를 초과하면 쿼리 ID가 반환됩니다. 해당 ID를 사용하고 두 번째 쿼리를 실행하여 쿼리 결과(완료된 경우) 또는 해당 쿼리의 상태를 얻을 수 있습니다.

{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrqlQueryProgress(queryId: "YOUR_QUERY_ID") {
results
queryProgress {
queryId
completed
retryAfter
retryDeadline
resultExpiration
}
}
}
}
}

이 쿼리에 대한 몇 가지 중요한 세부정보:

  • queryId 은 원래 비동기 쿼리에서 반환된 queryProgress 데이터에서 가져옵니다.
  • account 인수는 원래 쿼리의 account 인수와 일치해야 합니다.
  • 이 쿼리는 비동기 실행이 완료된 경우 결과를 반환합니다. 그렇지 않으면 queryProgress 데이터를 반환합니다.
  • 쿼리는 결과나 오류가 반환될 때까지 그대로 반복될 수 있습니다.
Copyright © 2024 New Relic Inc.

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