usageapi not working for ap-mumbai region
Closed this issue · 8 comments
While calling the usage API call, we are getting data for ap-hyderabad region but we are encountering the below mentioned error for ap-mumbai region.
ERROR:
Data import failed: {'target_service': 'usageapi', 'status': 500, 'code': 'InternalServerError', 'opc-request-id': XXXXXXX, 'message': 'Internal Service Error, please try again', 'operation_name': 'request_summarized_usages', 'timestamp': '2024-07-17T09:24:13.337088+00:00', 'client_version': 'Oracle-PythonSDK/2.125.0', 'request_endpoint': 'POST [https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage'](https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage%27), 'logging_tips': 'To get more info on the failing request, refer to https://docs.oracle.com/en-us/iaas/tools/python/latest/logging.html for ways to log the request/response details.', 'troubleshooting_tips': "See https://docs.oracle.com/iaas/Content/API/References/apierrors.htm#apierrors_500__500_internalservererror for more information about resolving this error. Also see https://docs.oracle.com/iaas/api/#/en/usage/20200107/UsageSummary/RequestSummarizedUsages for details on this operation's requirements. If you are unable to resolve this usageapi issue, please contact Oracle support and provide them this full error message."}
Traceback (most recent call last):
File "/usr/src/app/diworker/diworker/main.py", line 230, in process_task
self.report_import(body)
File "/usr/src/app/diworker/diworker/main.py", line 151, in report_import
importer.import_report()
File "/usr/src/app/diworker/diworker/importers/base.py", line 502, in import_report
self.data_import()
File "/usr/src/app/diworker/diworker/importers/base.py", line 492, in data_import
self.load_raw_data()
File "/usr/src/app/diworker/diworker/importers/oci.py", line 83, in load_raw_data
self._load_usage_data(currency_rate)
File "/usr/src/app/diworker/diworker/importers/oci.py", line 105, in _load_usage_data
compartments_details=self.cloud_adapter.discover_compartments(self.period_start)
File "/usr/src/app/tools/cloud_adapter_handler/clouds/oci.py", line 1435, in discover_compartments
request_summarized_usages = self.usage.request_summarized_usages(
File "/usr/local/lib/python3.9/site-packages/oci/usage_api/usageapi_client.py", line 2448, in request_summarized_usages
return retry_strategy.make_retrying_call(
File "/usr/local/lib/python3.9/site-packages/oci/retry/retry.py", line 308, in make_retrying_call
response = func_ref(*func_args, **func_kwargs)
File "/usr/local/lib/python3.9/site-packages/oci/base_client.py", line 535, in call_api
response = self.request(request, allow_control_chars, operation_name, api_reference_link)
File "/usr/local/lib/python3.9/site-packages/circuitbreaker.py", line 159, in wrapper
return call(function, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/circuitbreaker.py", line 170, in call
return func(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/oci/base_client.py", line 724, in request
self.raise_transient_service_error(request, response, service_code, message, operation_name, api_reference_link, target_service, request_endpoint, client_version, timestamp, deserialized_data)
File "/usr/local/lib/python3.9/site-packages/oci/base_client.py", line 906, in raise_transient_service_error
raise exceptions.TransientServiceError(
oci.exceptions.TransientServiceError: {'target_service': 'usageapi', 'status': 500, 'code': 'InternalServerError', opc-request-id': XXXXXXX, 'message': 'Internal Service Error, please try again', 'operation_name': 'request_summarized_usages', 'timestamp': '2024-07-17T09:24:13.337088+00:00', 'client_version': 'Oracle-PythonSDK/2.125.0', 'request_endpoint': 'POST [https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage'](https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage%27), 'logging_tips': 'To get more info on the failing request, refer to https://docs.oracle.com/en-us/iaas/tools/python/latest/logging.html for ways to log the request/response details.', 'troubleshooting_tips': "See https://docs.oracle.com/iaas/Content/API/References/apierrors.htm#apierrors_500__500_internalservererror for more information about resolving this error. Also see https://docs.oracle.com/iaas/api/#/en/usage/20200107/UsageSummary/RequestSummarizedUsages for details on this operation's requirements. If you are unable to resolve this usageapi issue, please contact Oracle support and provide them this full error message."
CODE WE HAVE WRITTEN:
import oci
from oci.retry import RetryStrategyBuilder, retry_checkers
CUSTOM_RETRY_STRATEGY = RetryStrategyBuilder().add_max_attempts(max_attempts=8) \
.add_total_elapsed_time(total_elapsed_time_seconds=120) \
.add_service_error_check(service_error_retry_config=retry_checkers.RETRYABLE_STATUSES_AND_CODES,
service_error_retry_on_any_5xx=True) \
def config_creds(self):
if self._config_creds:
return self._config_creds
self._config_creds = {
'log_requests': False,
'region': self.config['Region'],
'tenancy': self.config['Tenancy_OCID'],
'user': self.config['User_OCID'],
'key_content': self.config['Private_Key'],
'fingerprint': self.config['Finger_Print'],
'pass_phrase': self.config['Pass_Phrase']
}
return self._config_creds
def get_usage(self, start_date, range_end=None, limit=None):
"""
https://docs.oracle.com/en-us/iaas/tools/python-sdk-examples/2.126.2/usageapi/request_summarized_usages.py.html
https://docs.oracle.com/en-us/iaas/tools/python/2.126.2/sdk_behaviors/retries.html
"""
lis=[]
config=self.config_creds
end_date_later = datetime.now(timezone.utc) + timedelta(days=1)
end_date = end_date_later.replace(second=0, microsecond=0, minute=0, hour=0, tzinfo=None)
interval = timedelta(days=3*30)
if not start_date:
return lis
current_date = start_date
LOG.info(f"The billing import is happening for oci tenancy_id:{self.Tenancy_OCID} from {current_date} and {end_date}")
while current_date < end_date:
request_summary_details = RequestSummarizedUsagesDetails(
tenant_id=self.Tenancy_OCID,
granularity='DAILY',
query_type='COST',
group_by=['region', 'resourceId', 'skuName', 'service'],
time_usage_started=self.str_from_datetime(current_date),
time_usage_ended=self.str_from_datetime(min(end_date,current_date+interval)),
compartment_depth=2
)
.get_retry_strategy()
request_summarized_usages = self.usage.request_summarized_usages(
request_summary_details,
retry_strategy=self.CUSTOM_RETRY_STRATEGY
)
lis.extend(request_summarized_usages.data.items)
current_date += interval
return lis
@adizohar, can you please provide your insights
Usage-API can run only on home-region, if you run on different region you will get error
Home Region will produce summary for all regions
Please check my code at https://github.com/oracle/oci-python-sdk/tree/master/examples/showusage
No, we are running the Usage-API on home-region, Mumbai is home-region but still facing the same issue.
Gopi, if you are running on home region and get error, please try the cost analysis on the console, if still error exist, I would open support ticket to Oracle Support from the console
@adizohar, I have tried several times, and am attaching logs.
In the OCI console cost analysis working fine.
07/16/2024 12:39 AM UTC
Billing data import for cloud account OCI (748f62e4-88b2-4225-a918-c7326d00bbb5) failed: {'target_service': 'usageapi', 'status': 500, 'code': 'InternalServerError', 'opc-request-id': 'E16EC7B29C12433789384239CA70AF7A/0AB1794750B83A8B3D4DBED00C42EE03/56BD42F7470B58A9604ADA26BAF783B3', 'message': 'Internal Service Error, please try again', 'operation_name': 'request_summarized_usages', 'timestamp': '2024-07-16T00:39:40.191053+00:00', 'client_version': 'Oracle-PythonSDK/2.125.0', 'request_endpoint': 'POST https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage', 'logging_tips': 'To get more info on the failing request, refer to https://docs.oracle.com/en-us/iaas/tools/python/latest/logging.html for ways to log the request/response details.', '"}
07/16/2024 06:39 AM UTC
Billing data import for cloud account OCI (748f62e4-88b2-4225-a918-c7326d00bbb5) failed: {'target_service': 'usageapi', 'status': 500, 'code': 'InternalServerError', 'opc-request-id': '669EA4629FF84A939CBC5CBEC8742CE8/D10CE770F98FFEDC24459B0157516669/6040B32532E3E59FED14FB110517714A', 'message': 'Internal Service Error, please try again', 'operation_name': 'request_summarized_usages', 'timestamp': '2024-07-16T06:39:19.864215+00:00', 'client_version': 'Oracle-PythonSDK/2.125.0', 'request_endpoint': 'POST https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage', 'logging_tips': 'To get more info on the failing request, refer to https://docs.oracle.com/en-us/iaas/tools/python/latest/logging.html for ways to log the request/response details.',"}
07/16/2024 06:53 PM UTC
Billing data import for cloud account OCI (748f62e4-88b2-4225-a918-c7326d00bbb5) failed: {'target_service': 'usageapi', 'status': 500, 'code': 'InternalServerError', 'opc-request-id': '8A6BD226282B486D983EB0C6483465B9/6A66D87C65462E60C6ACC7D4D88A5CD9/9C27EF6EFAAF12D40A1E895F94C81E52', 'message': 'Internal Service Error, please try again', 'operation_name': 'request_summarized_usages', 'timestamp': '2024-07-16T18:53:21.926699+00:00', 'client_version': 'Oracle-PythonSDK/2.125.0', 'request_endpoint': 'POST https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage', 'logging_tips': 'To get more info on the failing request, refer to https://docs.oracle.com/en-us/iaas/tools/python/latest/logging.html for ways to log the request/response details.',''}
07/17/2024 12:58 AM UTC
Billing data import for cloud account OCI (748f62e4-88b2-4225-a918-c7326d00bbb5) failed: {'target_service': 'usageapi', 'status': 500, 'code': 'InternalServerError', 'opc-request-id': '0EB3AC14F8A2454186716B37821ADE3E/A27BEF1C202615B0558A4D286D961B3F/A0837973BFFCFAFA4408F97E62C05847', 'message': 'Internal Service Error, please try again', 'operation_name': 'request_summarized_usages', 'timestamp': '2024-07-17T00:58:58.839713+00:00', 'client_version': 'Oracle-PythonSDK/2.125.0', 'request_endpoint': 'POST https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage', 'logging_tips': 'To get more info on the failing request, refer to https://docs.oracle.com/en-us/iaas/tools/python/latest/logging.html for ways to log the request/response details.',"}
07/17/2024 06:38 AM UTC
Billing data import for cloud account OCI (748f62e4-88b2-4225-a918-c7326d00bbb5) failed: {'target_service': 'usageapi', 'status': 500, 'code': 'InternalServerError', 'opc-request-id': '6D26B5B6EB2745A4A6DD7D47B821F4A2/89A2592209F7E2164F3417EEB7272753/17F753B4B5898D504FCDDB52328C7CEE', 'message': 'Internal Service Error, please try again', 'operation_name': 'request_summarized_usages', 'timestamp': '2024-07-17T06:38:27.786053+00:00', 'client_version': 'Oracle-PythonSDK/2.125.0', 'request_endpoint': 'POST https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage', 'logging_tips': 'To get more info on the failing request, refer to https://docs.oracle.com/en-us/iaas/tools/python/latest/logging.html for ways to log the request/response details.',}
07/17/2024 12:33 PM UTC
Billing data import for cloud account OCI (748f62e4-88b2-4225-a918-c7326d00bbb5) failed: {'target_service': 'usageapi', 'status': 500, 'code': 'InternalServerError', 'opc-request-id': 'A1CBC982246D48BDB39174590E2B3755/BF9B78C8DBBD9233E8C166EA9AF0A442/19A5776B7C4725470CDA0A325E9F4D74', 'message': 'Internal Service Error, please try again', 'operation_name': 'request_summarized_usages', 'timestamp': '2024-07-17T12:33:27.566882+00:00', 'client_version': 'Oracle-PythonSDK/2.125.0', 'request_endpoint': 'POST https://usageapi.ap-mumbai-1.oci.oraclecloud.com/20200107/usage', 'logging_tips': 'To get more info on the failing request, refer to https://docs.oracle.com/en-us/iaas/tools/python/latest/logging.html for ways to log the request/response details.'}
can you please look.
I will leave it to the SDK team to open ticket accordingly, internal error is service issue.
Thankyou @adizohar
@adizohar any update on this issue ?
Gopi, it is been handle by the SDK team, if this is urgent and you still get internal error, please open support ticket at Oracle Support portal.