New Relic에는 귀하의 경험, 시스템 및 기타 고객을 보호하기 위해 리소스 제한이 있습니다. 이러한 제한은 쿼리에 포함할 수 있는 최대 문자 수부터 API 요청 비율 등에 이르기까지 다양합니다.
이 페이지에서는 한도, 현재 데이터 사용량 및 이러한 한도와 비교한 전체 리소스 소비량, 한도 이벤트 발생의 영향을 볼 수 있는 한도 측정항목 및 NrIntegrationError
이벤트 에 대해 설명합니다. 또한 대시보드로 컴파일할 때 제한 상태에 대한 일관된 통찰력을 제공할 수 있는 몇 가지 쿼리를 제공합니다.
중요 NrIntegrationError
이벤트는 많은 제한 유형에 대한 데이터를 제공하지만 리소스 제한 측정항목은 현재 요청 속도 수집 및 API 쿼리 속도 제한만 다룹니다.
한계에 도달하면 어떻게 됩니까? 한도 도달에 대한 Google의 대응은 몇 가지 요인에 따라 달라집니다. 도달한 한도의 유형 , 한도를 초과하는 기간, 빈도 및 양. 한도를 초과한다고 해서 항상 데이터 삭제, 트래픽 거부 또는 남은 하루 동안 데이터가 꺼지는 등의 한도 이벤트가 발생하는 것은 아닙니다. 제한을 적용하기 전에 작은 버퍼를 허용하는 경우가 있습니다. 즉, 100%를 초과하여 소비된 모든 리소스는 언제든지 제한 영향을 받을 위험이 있습니다.
많은 비율 제한이 비례적으로 적용됩니다. 즉, 한도를 거의 초과하지 않는 경우 200%를 초과하는 경우보다 조치를 덜 취합니다.
제한 지표는 해당 dataType
또는 limitName
API 로 데이터를 보내는 경우에만 표시됩니다. 예를 들어 지표 API 통해 데이터를 전송하면 지표 API 리소스 지표가 표시되지만 APM 데이터를 전송하지 않으면 APM 리소스 지표가 표시되지 않습니다.
팁 영향 메트릭은 영향에 관계없이 생성됩니다. 영향이 없으면 0이 표시됩니다.
NrIntegrationError
이벤트 는 영향을 받을 때 생성되며 제한 이벤트가 발생했는지 빠르게 확인할 수 있는 좋은 방법입니다. 자세한 내용은 시스템 제한 보기 를 참조하십시오.
한도 상태를 보려면 대시보드를 만드세요. 대시보드에서 세 가지 한도 측정항목을 함께 사용하면 Ingest Resource Request Per Minute
한도에 대한 자세한 시각 자료를 빠르게 볼 수 있고 NrIntegrationError
을 사용하면 한도를 더 자세히 볼 수 있습니다.
몇 가지 쿼리를 사용하여 제한 상태를 표시하는 대시보드.
이 대시보드를 생성하기 위해 다음 쿼리를 사용했습니다. 뉴렐릭에서 이와 같은 대시보드를 만들려면 Dashboards 선택한 다음 Create a dashboard 선택하세요. 그런 다음 정기적으로 모니터링하려는 각 쿼리에 대해 새 차트를 추가합니다. 이러한 쿼리에 포함된 세 가지 제한 지표는 아래의 별도 섹션에 설명되어 있습니다.
왼쪽에서 오른쪽으로, 위에서 아래로:
리소스 소비 한도(%) SELECT rate ( sum ( newrelic . resourceConsumption . currentValue ) , 1 minute ) / latest ( newrelic . resourceConsumption . limitValue ) * 100
FACET limitName WHERE limitTimeInterval = '1 minute' TIMESERIES LIMIT MAX
시간당 최대 % 소비 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
분당 APM 에이전트 API 트랜잭션 이벤트 요청 FROM Metric SELECT rate ( sum ( newrelic . resourceConsumption . currentValue ) , 1 minute )
WHERE limitName = 'APM Agent API transaction events requests per minute' TIMESERIES
제한선이 있는 추적 API 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
NrIntegrationError 제한 FROM NrIntegrationError SELECT count ( * )
FACET limitName TIMESERIES MAX SINCE 1 day ago LIMIT MAX
다중 계정 제한(시계열 차트에만 해당) 하나의 차트에서 여러 계정에 대한 한도를 보려면 다음 단계를 따르세요.
계정 중 하나에서 이 쿼리를 실행합니다.
SELECT rate ( sum ( newrelic . resourceConsumption . currentValue ) , 1 minute ) / latest ( newrelic . resourceConsumption . limitValue ) * 100
WHERE limitTimeInterval = '1 minute'
FACET limitName , consumingAccountId TIMESERIES LIMIT MAX
Add another query 을(를) 클릭합니다.
다른 계정을 선택하세요.
그런 다음 이 쿼리를 다시 실행합니다.
SELECT rate ( sum ( newrelic . resourceConsumption . currentValue ) , 1 minute ) / latest ( newrelic . resourceConsumption . limitValue ) * 100
WHERE limitTimeInterval = '1 minute'
FACET limitName , consumingAccountId TIMESERIES LIMIT MAX
마지막으로 저장합니다.
제한 목록 및 NrIntegrationError 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
의 도움으로 모든 한계에 대한 보기를 제공합니다.
newrelic.resourceConsumption.limit값 limitValue
limitName
별로 제한 설정을 보고 이 제한에 연결된 리소스에 대해 자세히 이해할 수 있습니다. 다음 예에서는 쿼리에서 한계값 메트릭을 사용합니다.
newrelic.resourceConsumption.currentValue currentValue
현재 소비하고 있는 주어진 리소스의 양을 보여줍니다. 당사 시스템이 귀하의 소비를 어떻게 보고 있는지 더 잘 살펴보려면 limitTimeInterval
에 맞는 기간과 함께 rate()
함수를 사용하십시오. 제한 200.
newrelic.resourceConsumption.impact 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 쿼리 로 경고를 만드는 방법에 대해 알아보세요.
LimitName에 의해 패싯 처리되고 Timewindow에 의해 범위가 지정된 제한 SELECT ( rate ( sum ( newrelic . resourceConsumption . currentValue ) , 1 minute ) / latest ( newrelic . resourceConsumption . limitValue ) ) * 100
단일 제한에 대한 경고 SELECT ( rate ( sum ( newrelic . resourceConsumption . currentValue ) , 1 minute ) / latest ( newrelic . resourceConsumption . limitValue ) ) * 100
WHERE limitName = 'my limit'
dataType, 영향, 리소스 및 이유에 따른 제한 영향에 대한 경고 FROM Metric SELECT rate ( sum ( newrelic . resourceConsumption . impact ) , 1 minute )
FACET dataType , impact , resource , reason
단일 dataType의 영향에 대한 경고 FROM Metric SELECT rate ( sum ( newrelic . resourceConsumption . impact ) , 1 minute )
WHERE dataType = 'important things'
FACET dataType , impact , resource , reason