NRQL을사용하면 buckets
함수를사용하여 쿼리 결과를 특정 범위를 포함하는 버킷으로 분할할 수 있습니다.
버킷 결과를 사용하는 이유는 무엇입니까?
FACET buckets()
함수를 사용하여 히스토그램 또는 빈도 분포 생성과 같이 지정된 범위를 기반으로 데이터를 버킷으로 그룹화하고 분류할 수 있습니다. count()
또는 sum()
와 같은 집계 함수와 함께 사용하여 다양한 범위의 데이터 분포를 분석합니다.
다음은 몇 가지 사용 사례입니다.
- 응답 시간 분석:
FACET buckets()
사용하여 응답 시간을 범위(예: 0-100ms, 100-200ms, 200-300ms)로 그룹화하고 각 범위 내의 응답 시간 수 또는 평균을 계산할 수 있습니다. 이를 통해 응답 시간 분포를 이해하고 성능 문제를 식별할 수 있습니다. - 요청 크기 검사: 요청 크기에
FACET buckets()
를 사용하면 요청 크기를 다양한 버킷(예: 0-1KB, 1-5KB, 5-10KB)으로 분류하고 각 버킷에 속하는 요청 빈도를 분석할 수 있습니다. 이를 통해 패턴을 식별하고 리소스 할당을 최적화할 수 있습니다. - 오류율 모니터링: 오류 코드 또는 오류율에
FACET buckets()
사용하여 특정 범위로 그룹화할 수 있습니다. 예를 들어 다양한 HTTP 오류 코드(예: 400, 500 등) 또는 오류율 범위(예: 0-1% 또는 1-5%)에 대한 버킷을 생성할 수 있습니다. 이를 통해 오류 분포를 추적하고 주의가 필요한 영역을 식별할 수 있습니다. - 사용자 참여 추적: 세션 시간이나 페이지 조회수와 같은 사용자 참여와 관련된 측정항목이 있는 경우
FACET buckets()
를 사용하여 시간 간격으로 그룹화할 수 있습니다. 이를 통해 다양한 시간 범위에서 사용자가 애플리케이션 또는 웹 사이트에 참여하는 방식을 분석할 수 있습니다.
버킷 NRQL 쿼리 생성
버킷화된 결과를 반환하려면 NRQL 쿼리에서 FACET buckets()
절을 사용하세요. 버킷 쿼리의 구조는 다음과 같습니다.
SELECT FUNCTION(ATTRIBUTE) FROM DATA_TYPE FACET buckets(ATTRIBUTE, CEILING_VALUE, NUMBER_OF_BUCKETS)
New Relic 데이터베이스에 숫자 값으로 저장된 모든 속성과 함께 버킷화된 NRQL 쿼리를 사용할 수 있습니다.
버킷 쿼리 예시
- 속성에 대한
SELECT
문으로 NRQL 문을 만듭니다. 예:SELECT average(duration)
. buckets()
에서 패싯 처리하는FACET
절을 추가합니다. 예를 들어buckets(duration, 40, 10)
.SELECT
문의 속성이 아닌 다른 속성에 버킷을 지정할 수도 있습니다. 예를 들어, 데이터베이스 호출의 평균 지속 시간을 표시하려면buckets(databaseCallCount, 40, 10)
.
이 쿼리는 10개의 버킷에서 특정 페이지 경로의 평균 지속 시간을 계산하며 상한은 40입니다. 상한값인 40을 초과하는 모든 값은 마지막 버킷 >=36.0
에 그룹화됩니다.
SELECT average(duration) FROM PageView WHERE pageUrl LIKE 'http://webportal.telco%' SINCE 1 week ago FACET buckets(duration, 40, 10)
이 쿼리는 다음 결과를 반환합니다.
다음은 10개의 버킷으로 분할된 세그먼트가 있는 NRQL 쿼리의 예입니다. 하단 버킷에는 이상치가 포함되므로 그에 따라 조정할 수 있습니다.