New Relic은 귀하의 경험, 당사 시스템 및 다른 고객을 보호하기 위해 리소스 제한이 있습니다. 이러한 제한은 쿼리에 포함할 수 있는 최대 문자 수, API 요청 속도, 쿼리가 검사하는 이벤트 수 등에 이르기까지 다양합니다.
이 페이지에서는 한도, 현재 데이터 사용량 및 이러한 한도와 비교한 전체 리소스 소비량, 한도 이벤트 발생의 영향을 볼 수 있는 한도 측정항목 및 NrIntegrationError 이벤트 에 대해 설명합니다. 또한 대시보드로 컴파일할 때 제한 상태에 대한 일관된 통찰력을 제공할 수 있는 몇 가지 쿼리를 제공합니다.
중요
NrIntegrationError 이벤트는 많은 제한 유형에 대한 데이터를 제공하지만 리소스 제한 측정항목은 현재 요청 속도 수집 및 API 쿼리 속도 제한만 다룹니다.
한계에 도달하면 어떻게 됩니까?
한도 도달에 대한 Google의 대응은 몇 가지 요인에 따라 달라집니다. 도달한 한도의 유형, 한도를 초과하는 기간, 빈도 및 양. 한도를 초과한다고 해서 항상 데이터 삭제, 트래픽 거부 또는 남은 하루 동안 데이터가 꺼지는 등의 한도 이벤트가 발생하는 것은 아닙니다. 제한을 적용하기 전에 작은 버퍼를 허용하는 경우가 있습니다. 즉, 100%를 초과하여 소비된 모든 리소스는 언제든지 제한 영향을 받을 위험이 있습니다.
많은 비율 제한이 비례적으로 적용됩니다. 즉, 한도를 거의 초과하지 않는 경우 200%를 초과하는 경우보다 조치를 덜 취합니다.
제한 측정항목은 해당 dataType 또는 limitName API로 데이터를 보내는 경우에만 표시됩니다. 예를 들어 Metric API를 통해 데이터를 보내면 Metric API 리소스 메트릭이 표시되지만 아무 것도 보내지 않으면 데이터를 입력하면 APM 리소스 메트릭이 표시되지 않습니다.
대시보드에서 세 가지 한도 측정항목을 함께 사용하면 Ingest Resource Request Per Minute 한도에 대한 자세한 시각 자료를 빠르게 볼 수 있고 NrIntegrationError 을 사용하면 한도를 더 자세히 볼 수 있습니다.
몇 가지 쿼리를 사용하여 제한 상태를 표시하는 대시보드.
다음 쿼리를 사용하여 이 대시보드를 만들었습니다. New Relic에서 이와 같은 대시보드를 만들려면 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
다른 쿼리 추가 를 클릭합니다.
다른 계정을 선택하세요.
그런 다음 이 쿼리를 다시 실행합니다.
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'