New Relic에는 귀하의 경험, 시스템 및 기타 고객을 보호하기 위해 리소스 제한이 있습니다. 이러한 제한은 쿼리에 포함할 수 있는 최대 문자 수부터 API 요청 비율 등에 이르기까지 다양합니다.
이 페이지에서는 한도, 현재 데이터 사용량 및 이러한 한도와 비교한 전체 리소스 소비량, 한도 이벤트 발생의 영향을 볼 수 있는 한도 측정항목 및 NrIntegrationError 이벤트 에 대해 설명합니다. 또한 대시보드로 컴파일할 때 제한 상태에 대한 일관된 통찰력을 제공할 수 있는 몇 가지 쿼리를 제공합니다.
중요
NrIntegrationError 이벤트는 많은 제한 유형에 대한 데이터를 제공하지만 리소스 제한 측정항목은 현재 요청 속도 수집 및 API 쿼리 속도 제한만 다룹니다.
한계에 도달하면 어떻게 됩니까?
한도 도달에 대한 Google의 대응은 몇 가지 요인에 따라 달라집니다. 도달한 한도의 유형, 한도를 초과하는 기간, 빈도 및 양. 한도를 초과한다고 해서 항상 데이터 삭제, 트래픽 거부 또는 남은 하루 동안 데이터가 꺼지는 등의 한도 이벤트가 발생하는 것은 아닙니다. 제한을 적용하기 전에 작은 버퍼를 허용하는 경우가 있습니다. 즉, 100%를 초과하여 소비된 모든 리소스는 언제든지 제한 영향을 받을 위험이 있습니다.
많은 비율 제한이 비례적으로 적용됩니다. 즉, 한도를 거의 초과하지 않는 경우 200%를 초과하는 경우보다 조치를 덜 취합니다.
제한 지표는 해당 dataType 또는 limitName API 로 데이터를 보내는 경우에만 표시됩니다. 예를 들어 지표 API 통해 데이터를 전송하면 지표 API 리소스 지표가 표시되지만 데이터를 전송하지 않으면 APM 리소스 지표가 표시되지 않습니다.
대시보드에서 세 가지 한도 측정항목을 함께 사용하면 Ingest Resource Request Per Minute 한도에 대한 자세한 시각 자료를 빠르게 볼 수 있고 NrIntegrationError 을 사용하면 한도를 더 자세히 볼 수 있습니다.
몇 가지 쿼리를 사용하여 제한 상태를 표시하는 대시보드.
이 대시보드를 생성하기 위해 다음 쿼리를 사용했습니다. 뉴렐릭에서 이와 같은 대시보드를 만들려면 Dashboards 선택한 다음 Create a dashboard 선택하세요. 그런 다음 정기적으로 모니터링하려는 각 쿼리에 대해 새 차트를 추가합니다. 이러한 쿼리에 포함된 세 가지 제한 지표는 아래의 별도 섹션에 설명되어 있습니다.
왼쪽에서 오른쪽으로, 위에서 아래로:
FROM Metric select rate(sum(newrelic.resourceConsumption.currentValue), 1 minute) /latest(newrelic.resourceConsumption.limitValue) * 100 facet limitName where limitTimeInterval = '1 minute' timeseries limit max
SELECT max(`usage`) FROM (FROM Metric select rate(sum(newrelic.resourceConsumption.currentValue), 1 minute) / latest(newrelic.resourceConsumption.limitValue) * 100 as 'usage' facet limitName timeseries ) facet limitName limit max
FROM Metric select rate(sum(newrelic.resourceConsumption.currentValue), 1 minute) where limitName = 'APM Agent API transaction events requests per minute' TIMESERIES
FROM Metric select rate(sum(newrelic.resourceConsumption.currentValue), 1 minute) as 'usage', latest(newrelic.resourceConsumption.limitValue) as 'limit' where limitName = 'Trace API requests per minute' TIMESERIES
From Metric select rate(sum(newrelic.resourceConsumption.impact), 1 minute) facet dataType, impact, resource TIMESERIES 1 minute limit max
FROM NrIntegrationError select count(*) facet limitName TIMESERIES MAX since 1 day ago limit max
하나의 차트에서 여러 계정에 대한 한도를 보려면 다음 단계를 따르세요.
계정 중 하나에서 이 쿼리를 실행합니다.
FROM Metric select rate(sum(newrelic.resourceConsumption.currentValue), 1 minute) / latest(newrelic.resourceConsumption.limitValue) * 100 facet limitName, consumingAccountId where limitTimeInterval = '1 minute' timeseries limit max
Add another query 을(를) 클릭합니다.
다른 계정을 선택하세요.
그런 다음 이 쿼리를 다시 실행합니다.
FROM Metric select rate(sum(newrelic.resourceConsumption.currentValue), 1 minute) / latest(newrelic.resourceConsumption.limitValue) * 100 facet limitName, consumingAccountId where limitTimeInterval = '1 minute' timeseries limit max
마지막으로 저장합니다.
FROM Metric, NrIntegrationError select rate(sum(newrelic.resourceConsumption.currentValue), 1 minute) as 'Per Minute Count',latest(newrelic.resourceConsumption.limitValue) as ' limit Value',(rate(sum(newrelic.resourceConsumption.currentValue), 1 minute)/latest(newrelic.resourceConsumption.limitValue)*100)as 'Percent Used', filter (count(*), where NrIntegrationError.limitValue is not null) as 'limit reached count' facet limitName limit 1000
측정항목 제한
위의 대시보드 쿼리에 사용된 이러한 메트릭은 단일 제한 또는 리소스에 초점을 맞출 수 있습니다. 또는 FACET limitName or resource 의 도움으로 모든 한계에 대한 보기를 제공합니다.
limitValuelimitName 별로 제한 설정을 보고 이 제한에 연결된 리소스에 대해 자세히 이해할 수 있습니다. 다음 예에서는 쿼리에서 한계값 메트릭을 사용합니다.
분당 Metric API 요청의 예.
FROM Metric select latest(newrelic.resourceConsumption.limitValue) where limitName = 'Metric API requests per minute'
모든 제한을 표시하려면 FACET limitName 을 추가하고 limitTimeInterval 별로 그룹화하는 것을 고려하십시오.
FROM Metric select latest(newrelic.resourceConsumption.limitValue) WHERE limitTimeInterval = '1 minute' FACET limitName limit max
currentValue 현재 소비하고 있는 주어진 리소스의 양을 보여줍니다. 당사 시스템이 귀하의 소비를 어떻게 보고 있는지 더 잘 살펴보려면 limitTimeInterval 에 맞는 기간과 함께 rate() 함수를 사용하십시오. 제한 200.
분당 Metric API 요청의 예:
FROM Metric select rate(sum(newrelic.resourceConsumption.currentValue),1 minute) where limitName = 'Metric API requests per minute'
모든 제한을 표시하려면 FACET limitName 을 추가하고 limitTimeInterval 별로 그룹화하는 것을 고려하십시오.
FROM Metric select rate(sum(newrelic.resourceConsumption.currentValue),1 minute) where limitTimeInterval = '1 minute' FACET limitName limit max
impact 주어진 리소스에 대해 어떤 영향 제한 이벤트가 있는지 알려줍니다. 0은 현재 영향을 받지 않았음을 의미합니다.
가장 세분화된 것은 dataType 입니다. limitName 의 여러 인스턴스가 측정항목 RPM 및 DPM과 같은 단일 유형에 영향을 미칠 수 있습니다. 알고 있으면 limitName 를 표시합니다.
From Metric select rate(sum(newrelic.resourceConsumption.impact), 1 minute) facet dataType, resource, impact, limitName TIMESERIES limit max
측정항목 속성
newrelic.resourceConsumption.limitValue 및 newrelic.resourceConsumption.currentValue 의 속성:
limitName: 측정항목 데이터에 대한 제한 이름(예: RPM Metric API 입니다.
dataType: 측정항목이 추적하는 데이터의 종류(예: Metric , Log 또는 APM )
Resource: 사용 중인 리소스(예: Requests 또는 DPM )
limitTimeInterval: 이 리소스가 제한을 위해 평가되는 시간 창입니다.
consumingAccountId: 자원이 소비되고 있는 New Relic 계정입니다.
속성 newrelic.resourceConsumption.impact
dataType: 영향을 받는 데이터의 종류(예: Metric , Log 또는 APM .
Resource: 영향을 받는 리소스(예: Request Rate )
Impact: 리소스가 설정된 제한을 초과했을 때 발생하는 일의 수입니다(예: 요청 삭제).
consumingAccountId: 자원이 소비되고 있는 New Relic 계정입니다.
리소스 메트릭에 대한 알림 설정
모든 한계를 확인하기 위해 대시보드를 구축하는 것도 편리하지만 이를 자동화하는 것이 훨씬 더 좋습니다. 한도 지표에 설정하여 한도 변경에 대한 업데이트를 제공할 수 있습니다.
팁
현재 1분 시간 창에 대한 메트릭만 있으므로 TimeWindow = 1분으로 설정하면 모두 포함됩니다. 결국 더 많은 측정항목을 사용할 수 있게 되므로 다른 시간 창에서 적용되는 제한에 대해 별도의 경고를 설정할 수 있습니다.
다음 NRQL 쿼리를 사용하여 경고를 만들 수 있습니다. 여기에서 NRQL 쿼리 로 경고를 만드는 방법에 대해 알아보세요.
From Metric select (rate(sum(newrelic.resourceConsumption.currentValue), 1 minute)/latest(newrelic.resourceConsumption.limitValue))*100 facet limitName
From Metric select (rate(sum(newrelic.resourceConsumption.currentValue), 1 minute)/latest(newrelic.resourceConsumption.limitValue))*100 where limitName = 'my limit'