From d82d5c5e63fa5f94b578b65a276ddc1e77091981 Mon Sep 17 00:00:00 2001 From: ImMin5 Date: Fri, 11 Apr 2025 13:24:05 +0900 Subject: [PATCH 1/2] feat: implement response size logging Signed-off-by: ImMin5 --- src/spaceone/core/service/__init__.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/spaceone/core/service/__init__.py b/src/spaceone/core/service/__init__.py index aaec253..8fcf4ef 100644 --- a/src/spaceone/core/service/__init__.py +++ b/src/spaceone/core/service/__init__.py @@ -1,8 +1,9 @@ import copy import functools +import json import logging import time -from typing import Generator, Union, Literal +from typing import Generator, Union, Literal, Any from opentelemetry import trace from opentelemetry.trace import format_trace_id @@ -244,7 +245,10 @@ def _pipeline( if print_info_log: process_time = time.time() - start_time - _LOGGER.info(f"(RESPONSE) => SUCCESS (Time = {process_time:.2f}s)") + response_size = _get_response_size(response_or_iterator) + _LOGGER.info( + f"(RESPONSE) => SUCCESS (Time = {process_time:.2f}s, Size = {response_size} bytes)", + ) return response_or_iterator @@ -265,6 +269,23 @@ def _pipeline( delete_transaction() +def _get_response_size(response_or_iterator: Any) -> int: + try: + print(type(response_or_iterator)) + if isinstance(response_or_iterator, dict): + response_size = len(json.dumps(response_or_iterator, ensure_ascii=False)) + elif isinstance(response_or_iterator, (bytes, bytearray)): + response_size = len(response_or_iterator) + elif response_or_iterator is None: + response_size = 0 + else: + response_size = -1 + except Exception: + response_size = -1 + + return response_size + + def _error_handler( error_type: _ERROR_TYPE, error: ERROR_BASE, From e956e346ac16089b7dcd8a9e7db47aa82a255e6d Mon Sep 17 00:00:00 2001 From: ImMin5 Date: Fri, 11 Apr 2025 13:30:58 +0900 Subject: [PATCH 2/2] chore: remove debug code Signed-off-by: ImMin5 --- src/spaceone/core/service/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/spaceone/core/service/__init__.py b/src/spaceone/core/service/__init__.py index 8fcf4ef..69304b5 100644 --- a/src/spaceone/core/service/__init__.py +++ b/src/spaceone/core/service/__init__.py @@ -271,7 +271,6 @@ def _pipeline( def _get_response_size(response_or_iterator: Any) -> int: try: - print(type(response_or_iterator)) if isinstance(response_or_iterator, dict): response_size = len(json.dumps(response_or_iterator, ensure_ascii=False)) elif isinstance(response_or_iterator, (bytes, bytearray)):