2017-11-05 24 views
0

Java 클라이언트 라이브러리 MetricServiceClient을 사용하여 StackDriver timeseries를 가져오고 있습니다. 나는 사용자 Oauth 토큰 (이 사용자는 여러 프로젝트에 대한 액세스 권한을 가짐)을 사용하여 인증하고 있지만 한 번에 하나 또는 두 개의 프로젝트 만 가져올 때 조절이 없기 때문에 여러 프로젝트에서 전역 할당량이되는 것 같습니다. 나는이 같은 오류가 교축하기 시작, 한 번에 네 개 또는 5 개의 다른 프로젝트를 가져 오기 다음 : 나는 프로젝트가 반입되고있는 교류하여이를 확인했다StackDriver 사용자 할당량

io.grpc.StatusRuntimeException: RESOURCE_EXHAUSTED: Insufficient tokens for quota 'DefaultGroup' and limit 'USER-100s' of service 'monitoring.googleapis.com' for consumer 'project_number:764086051850'.

내가 어떤 아니라고 할 수 있도록 단일 프로젝트 - 모두 속도가 제한되기 시작합니다. 또 다른 이상한 점은 오류 메시지의 project_number가 가져 오는 프로젝트에 해당하지 않으며 액세스 권한이 있다는 것입니다. 이는 나에게 의미가 없습니다.

이것은 100 초당 요청 수에 대한 할당량 인 것으로 보이지만 모든 프로젝트에서 10,000 개로 설정되어 있으며 웹 콘솔의 할당량 기록 차트에서 확인할 수있는 것처럼 거의 많은 요청을 수행하지 않습니다.

여러 프로젝트에 걸쳐 적용되는 일부 글로벌 할당량이 있습니까? 그렇다면이를 해결할 수있는 방법이 있습니까? 한 명의 사용자가 서비스 계정 토큰을 모두 만들어야하는 대신 여러 프로젝트에 대한 액세스 권한을 갖는 것이 훨씬 간단합니다.

+0

이 할당량 오류가 계속 표시됩니까? 이 오류가 발생하는 동안 웹 콘솔에 할당량 기록 차트를 첨부 할 수 있습니까? –

+0

단일 사용자 계정 사용을 중단하고 각 프로젝트마다 별도의 서비스 계정 키를 사용했습니다. 그 당시에는 차트가 남아 있지 않았지만, API 할당량에 대한 프로젝트 차트는 명시된 할당량보다 훨씬 더 낮았다는 것을 확신 할 수 있습니다 (10,000 회/100 초 근처에 아무 것도 없었습니다). 서비스 계정을 사용하여 동일한 요청 동작을 수행했을 때 프로젝트 당 동일한 수의 요청을 처리 했음에도 불구하고 아무런 제한도받지 못했습니다. 단일 사용자 계정을 사용하고 있기 때문에 스로틀 링이 교차 프로젝트로 진행되는 것으로 나타났습니다. 어떤 아이디어? – keitwb

답변

0

token quotaApplication Default Credentials (공유 gcloud 프로젝트를 청구) 사용자를위한 것으로, 사용자를 유치하기 위해 존재하지만 실제 프로덕션 용도로는 권장하지 않습니다. 따라서 사용자의 프로젝트에 바인드 된 service account을 올바르게 사용하는 것이 좋습니다.