뉴렐릭의 데이터 플러스(Data Plus) 옵션은 기존 데이터 기능에 업계 최고의 보안, 확장성 및 성능을 결합하여, 간단하고 합리적인 GB당 요금으로 엔지니어링 팀의 옵저버빌리티 요구 사항을 해결해줍니다. 이 옵션은 더 긴 데이터 인덱싱 보존 기간, 로그 난독화, FedRAMP 등의 다양한 이점을 최대 56% 더 낮은 요금인 기가바이트당 $0.50로 제공합니다.

또한 쿼리 시간이 더 깁니다. 현재 기존 데이터 옵션의 쿼리 시간은 1분으로 제한되어 있습니다. 데이터 플러스의 경우, NRQL(New Relic Query Language)와 NerdGraph를 사용하는 쿼리의 최대 쿼리 시간이 늘어납니다. 데이터 플러스 고객은

  • NerdGraph를 사용해 최대 10분 동안 NRQL 쿼리를 실행할 수 있습니다.
  • 최대 2분 동안 일반 NRQL 쿼리를 실행할 수 있습니다.

왜 NRQL을 사용해야 할까요?

비즈니스 시스템이 더욱 복잡해지면서, 필요한 정보를 찾기 위해 대규모 데이터 세트를 검색해야 하는 경우가 종종 생깁니다. NRQL 쿼리 빌더 또는 NerdGraph API에서 사용되는 NRQL을 사용하면, 전체 기술 스택에서 데이터를 효과적으로 관찰하고, 맞춤화된 대시보드와 알림을 구축하며, 데이터를 조사하여 비즈니스 문제에 대한 답변을 쉽게 얻을 수 있습니다. 또한 데이터 플러스는 쿼리 시간 제한이 길어 요청 시간을 초과하지 않고 더 큰 데이터 세트를 쿼리할 수 있습니다.

데이터 플러스에서 확장된 쿼리 시간 제한을 활용하려면:

  • 일반 NRQL 쿼리의 경우 NRQL 쿼리 빌더를 시작합니다.
  • 보다 세부적인 설정이 가능하고 더 오래 실행되는 쿼리의 경우 NerdGraph API를 사용합니다.

NerdGraph를 사용해 대규모 데이터베이스에서 쿼리를 실행하는 방법은 다음 비디오를 시청하거나 아래 정보를 확인하시기 바랍니다.

NerdGraph에서의 쿼리 시간 개요

데이터 플러스 옵션을 사용하면, 평균 탐지 시간(MTTD) 증가, 실패한 쿼리로 인한 가시성 저하 등 쿼리 시간 제한으로 발생하는 문제를 피할 수 있습니다.

시작하기 전에 먼저 NerdGraph 탐색기 튜토리얼을 살펴보고, 뉴렐릭 API 키를 가져올 것을 권합니다. 키를 확보한 후에는 ID를 검색합니다. 이를 수행하기 위한 NRQL 쿼리는 다음과 같습니다.

{
 actor {
   user {
     name
     id
   }
 }
}

동기화된 NRQL 쿼리 시간은 소규모 쿼리나 수백만 개의 데이터 포인트 쿼리가 포함되지 않은 대부분의 다른 쿼리에 적합합니다. 그러나 더 크고 복잡한 데이터 볼륨의 경우 쿼리가 결과를 가져오는 데 1분으로는 충분하지 않을 수 있습니다. 다음 예는 NerdGraph의 NRQL 쿼리를 사용하여 2개월 전의 트랜잭션을 살펴봅니다.

{
   actor {
      account(id: YOUR_ACCOUNT_ID) {
         nrql(query: "SELECT count(*) FROM Transaction since 2 months ago") {
            results
         }
      }
   }
}

그러나 이전 쿼리로는 2개월 전 데이터를 가져올 수 없었다고 가정해 보겠습니다. 그런 경우, NRDB 쿼리 시간이 설정된 시간을 초과했다는 메시지가 표시됩니다. 따라서, 결과를 얻으려면 NerdGraph로 쿼리해야 합니다.

데이터 플러스로 쿼리 시간을 늘리는 방법

최대 10분 동안 쿼리를 실행하려면 GraphQL API인 NerdGraph를 통해 NRQL 쿼리를 실행합니다. 긴 쿼리는 매일 수백만 건의 이벤트를 처리하는 뉴렐릭 인스턴스에 적합합니다.

{
   actor {
      account(id: 1) {
         nrql(query: "SELECT count(*) FROM Transaction since 2 months ago, async: true) {
            results
            queryProgress {
               queryId
               resultExpiration
               retryAfter
               retryDeadline
            }
         }
      }
   }
}

async: true를 사용해, 이 쿼리는 중단될 위험 없이 백그라운드에서 실행되고 결과를 반환합니다. 쿼리가 완료되면, 이 명령을 통해 쿼리 검색 결과를 가져올 수 있습니다. queryId를 복사해 안전한 위치에 붙여 넣어 저장하는 것이 좋습니다. 그래야 NerdGraph 쿼리를 실행할 때 이를 기억하고 쿼리가 완료되면 결과를 검색할 수 있습니다.

{
  actor {
    nrqlQueryProgress(accounts: YOUR_ACCOUNT_ID, queryID: “YOUR_QUERY_ID”
      results
    }
  }
}

NerdGraph 쿼리를 활용하면 브라우저 시간 초과 또는 HTTP 연결 실패로 인해 쿼리가 중단될 위험도 줄일 수 있습니다. 또한 나중에 쿼리 결과를 가져올 수 있으며 결과나 오류가 반환될 때까지 쿼리를 그대로 반복할 수 있습니다.