diff --git a/contrib/endpoints/src/api_manager/context/request_context.cc b/contrib/endpoints/src/api_manager/context/request_context.cc index 5bc40f69645..448a8404d0f 100644 --- a/contrib/endpoints/src/api_manager/context/request_context.cc +++ b/contrib/endpoints/src/api_manager/context/request_context.cc @@ -165,7 +165,8 @@ void RequestContext::FillOperationInfo(service_control::OperationInfo *info) { info->operation_name = kUnrecognizedOperation; } info->operation_id = operation_id_; - if (check_response_info_.is_api_key_valid) { + if (check_response_info_.is_api_key_valid && + check_response_info_.service_is_activated) { info->api_key = api_key_; } info->producer_project_id = service_context()->project_id(); diff --git a/contrib/endpoints/src/api_manager/service_control/proto.cc b/contrib/endpoints/src/api_manager/service_control/proto.cc index 2c7ef893864..6ee5827ad4c 100644 --- a/contrib/endpoints/src/api_manager/service_control/proto.cc +++ b/contrib/endpoints/src/api_manager/service_control/proto.cc @@ -1019,14 +1019,13 @@ Status Proto::FillReportRequest(const ReportRequestInfo& info, } } - // Not to send consumer metrics for following cases: - // 1) api_key is not provided, or - // 2) the service is not activated for the consumer project, - bool send_consumer_metric = true; - if (info.api_key.empty() || - !info.check_response_info.service_is_activated) { - send_consumer_metric = false; - } + // Not to send consumer metrics if api_key is empty. + // api_key is empty in one of following cases: + // 1) api_key is not provided, + // 2) api_key is invalid determined by the server from the Check call. + // 3) the service is not activated for the consumer project. + bool send_consumer_metric = !info.api_key.empty(); + // Populate all metrics. for (auto it = metrics_.begin(), end = metrics_.end(); it != end; it++) { const SupportedMetric* m = *it;