NRQL 이 무엇인지, NRQL이 어떻게 작동하는지, NRQL이 차트 및 대시보드와 어떻게 관련되는지와같은 다른 주제에서 NRQL의 기본 사항을 학습한 후에는 이 자습서의 예제를 시도할 준비가 된 것입니다! 이 자습서에서는 다음 방법을 포함하여 데이터를 사용하여 몇 가지 기본 NRQL 쿼리를 만드는 데 도움이 되는 언어 내의 몇 가지 기본 개념을 다룹니다.
SELECT
사용 및FROM
- 사용
LIMIT
- 속성 지정
average()
,max()
,min()
,sum()
및 사용하여 집계count()
SINCE
사용 및UNTIL
- 다음을 사용하여 선 그래프를 플로팅합니다.
TIMESERIES
- 다음을 사용하여 필터링
WHERE
- 다음을 사용하여 속성 그룹화
FACET
전제 조건
이 튜토리얼을 따라가려면 뉴렐릭 플랫폼으로 들어오는 일부 데이터만 있으면 됩니다. 뉴렐릭을 처음 사용하고 NRQL을 얼마나 쉽게 사용할 수 있는지 알고 싶다면 무료로 플랫폼을 시작하고 튜토리얼을 따라갈 수 있습니다. 당신이 해야 할 일은:
- 아직 계정이 없으시다면, 지금 무료 계정을 신청하십시오.
- 에이전트와 통합을 사용하여 일반적인 프레임워크와 도구에서 데이터를 자동으로 수집하세요.
- 뉴렐릭 설정 방법에 대한 권장 경로를 보려면 빠른 릴리스 가이드를 방문하세요. 쿼리할 데이터 수집을 시작하면 이 자습서나 이 시리즈의 다른 자습서를 사용할 준비가 모두 완료됩니다.
시작할 준비가 되셨나요? 갑시다!
1. 첫 번째 쿼리 만들기
쿼리 빌더 에서 시작하기에 가장 좋은 곳은 New Relic APM에서 수집한 Transaction
라는 NRDB의 단일 이벤트 유형을 살펴보는 것입니다. 모든 NRQL 쿼리에는 SELECT
및 FROM
절이 있어야 합니다. 일부 데이터를 SELECT
하고 FROM
위치를 알려주어야 합니다. Transaction
이벤트 유형에서 모든 항목을 선택하는 이 기본 쿼리로 시작합니다.
SELECT *FROM Transaction
2. 데이터 집계
경우에 따라 개별 데이터 포인트를 보는 대신 여러 이벤트에 걸쳐 요약된 집계 데이터를 보고 싶을 수도 있습니다. NRDB가 빛을 발하는 곳이 바로 여기입니다. NRDB는 수십억 개의 이벤트를 스캔하고 데이터에 대한 질문에 대한 즉각적인 실시간 답변을 제공할 수 있습니다. 예를 들어, 각 Transaction
이벤트에는 호출이 실행되는 데 걸린 시간(초)을 나타내는 기간 속성이 있습니다. 모든 Transaction
이벤트의 평균 기간을 알아보려면 다음 쿼리를 사용하세요.
보시다시피 max()
및 min()
는 모두 중요한 데이터 포인트를 반환합니다. 하지만 데이터에 대해 산술 연산을 수행하려면 어떻게 해야 할까요? sum()
사용하면 숫자 속성에 대한 기본 추가를 수행할 수 있습니다. 이 쿼리에서는 databaseCallCount
라는 새 속성을 사용합니다. 이 속성은 각 트랜잭션이 수행하는 데이터베이스 호출 수를 계산합니다. 이를 추가하면 기본 60분 기간 동안 데이터베이스 호출의 총량을 얻을 수 있습니다(앱이 데이터베이스와 통신하지 않는 경우 0이 됩니다).
마지막으로 count(*)
로 기록된 모든 트랜잭션 이벤트를 계산할 수도 있습니다. 이 쿼리를 사용하여 New Relic APM에 보고하는 모든 애플리케이션에 대해 기록된 모든 이벤트를 계산할 수 있습니다.
이제 데이터에 대해 많은 정보를 얻을 수 있습니다. 성능의 경계를 측정하고, 이벤트 데이터를 그룹화하고, 선택한 속성에 대한 정보를 계산할 수도 있습니다. 기간을 선택하고 average
, max
및 min
값을 계산하고 숫자 속성을 추가하고 일정 기간 동안의 모든 이벤트를 계산했습니다. 이와 같은 데이터 조작은 시각화에 데이터를 표시하려는 경우 성능 문제를 파악하는 데 도움이 됩니다. 이제 다음 단계인 시간 범위 사용을 수행할 시간입니다.
3. 시간 범위 사용
다음은 상대 시간 범위를 보여주는 또 다른 쿼리입니다. 상대 시간을 지정할 때 ago
키워드를 포함해야 합니다.
이제 데이터를 더욱 효과적으로 제어할 수 있습니다. 쿼리에 기간을 추가하면 보고 싶은 데이터 창을 정확하게 정의할 수 있습니다. 이러한 컨트롤을 사용하면 데이터 보고가 시작되고 끝나는 위치를 정의하여 원하는 데이터에 집중할 수 있습니다. 또한 창을 선택하고 week
, day
, hour
, minute
및 해당 복수형과 같은 일반적인 용어를 사용했습니다. 이제 다음 단계인 시계열 쿼리를 수행할 시간입니다.
4. 쿼리 시계열
일반적인 NRQL 사용 사례는 시간 경과에 따라 값이 어떻게 변경되는지 쿼리하는 것입니다. 이 유형의 쿼리는 라인 차트, 영역 차트 및 기타 시각화를 위한 데이터를 제공합니다. 집계 함수 average()
, max()
, min()
, sum()
및 count()
를 탐색하기 위해 이미 일부 쿼리를 실행했습니다. 이제 이 예를 사용하여 집계 함수로 만든 쿼리를 가져오고 TIMESERIES
키워드를 추가하여 시간 경과에 따른 값을 그리는 방법을 확인하십시오.
SELECT average(duration) FROM Transaction SINCE 1 day ago TIMESERIES
1일 동안 24개의 데이터 포인트만 표시되므로 더 평평한 그래프가 반환될 수 있습니다. 하지만 가능한 최대 세분성을 확인하려면 어떻게 해야 할까요? 모든 시계열 쿼리에는 최대 366개의 데이터 버킷이 있을 수 있습니다. 즉, 24시간 동안 가능한 최대 세분성은 데이터를 4분 기간으로 버킷화하는 것입니다. TIMESERIES 4 minutes
또는 TIMESERIES MAX
사용하여 이를 쿼리합니다.
SELECT average(duration) FROM Transaction SINCE 1 day ago TIMESERIES MAX
이제 요약된 숫자에서 시간 경과에 따른 데이터 추세를 선형 차트로 표현하는 새로운 수준의 데이터 시각화에 도달했습니다. 보시다시피, TIMESERIES
사용하면 지정된 창에 대한 데이터 시각화, 세분성 및 평균화를 완벽하게 제어할 수 있습니다. 다음 단계인 WHERE
절을 사용할 차례입니다.
5. WHERE 절을 사용하세요
또한 AND
및 OR
을 결합하여 괄호 (
및 )
를 사용하여 이들이 함께 작동하는 방식을 제어하여 더 복잡한 쿼리를 만들 수 있습니다. 이 쿼리는 100ms보다 빠르고 응답 코드가 200 또는 302인 "웹" 트랜잭션의 평균 응답 시간을 보여줍니다. OR
를 제어하기 위해 괄호를 사용하는 것에 주목하십시오.
SELECT average(duration) FROM Transaction WHERE transactionType='Web' AND duration < 0.1 AND (httpResponseCode=200 OR httpResponseCode=302) TIMESERIES
지금까지 수행한 모든 쿼리는 지정된 시간 창에서 사용 가능한 모든 데이터에 대해 작업을 수행했습니다. 그러나 원하지 않는 데이터를 필터링하는 것도 중요합니다. 위의 예는 트랜잭션 유형을 필터링하거나 특정 응답 코드가 발생할 때 유용합니다. 마찬가지로 특정 appName
, 트랜잭션 name
또는 데이터에 태그를 추가한 맞춤 속성으로 필터링할 수 있습니다. 자습서의 마지막 단계인 패싯 쿼리 사용을 수행할 시간입니다.
6. 쿼리를 분석하세요
마지막으로 다음은 New Relic에 보고하는 개별 애플리케이션별로 세분화된 웹 트랜잭션의 양을 비교하는 약간 더 복잡한 쿼리입니다.
SELECT count(*) FROM Transaction WHERE transactionType='Web' FACET appName LIMIT 5 SINCE 6 hours ago TIMESERIES
그룹화 또는 "패싯"을 사용하면 데이터의 차원을 얻을 수 있습니다. 집계 함수를 적용할 때 FACET
를 사용하여 이벤트 데이터를 보고하는 모든 속성(기본값 또는 사용자 정의)별로 그룹화할 수 있습니다( WHERE
절처럼). 결과 데이터 세트를 보다 직접적으로 조사할 수 있도록 데이터 에 사용자 정의 속성을 추가 하거나 새 사용자 정의 이벤트를 보고 하는 것이 좋습니다.
축하합니다: 첫 번째 NRQL 자습서를 완료했습니다! 여기까지 했다면 이제 NRQL을 사용하여 이벤트 데이터를 쿼리하는 기본 사항을 알게 되었습니다.
다음은 뭐지?
더 많은 고급 개념과 사용 사례를 다루는 세 가지 추가 튜토리얼을 통해 더 많은 NRQL을 탐색할 수 있습니다! 먼저 데이터 처리 에 대한 튜토리얼을 진행한 다음 대시보드 고급 튜토리얼로 이동하고 마지막으로 가장 고급 NRQL 기능 에 대한 튜토리얼로 시리즈를 마무리하는 것이 좋습니다.