feat - log DB exceptions to OTEL

This commit is contained in:
Ishaan Jaff 2024-06-07 16:48:55 -07:00
parent f152b5eb1d
commit ac722d02ce

View file

@ -97,27 +97,47 @@ def log_to_opentelemetry(func):
@wraps(func) @wraps(func)
async def wrapper(*args, **kwargs): async def wrapper(*args, **kwargs):
start_time = datetime.now() start_time = datetime.now()
result = await func(*args, **kwargs)
end_time = datetime.now()
# Log to OTEL only if "parent_otel_span" is in kwargs and is not None try:
if ( result = await func(*args, **kwargs)
"parent_otel_span" in kwargs end_time = datetime.now()
and kwargs["parent_otel_span"] is not None
and "proxy_logging_obj" in kwargs # Log to OTEL only if "parent_otel_span" is in kwargs and is not None
and kwargs["proxy_logging_obj"] is not None if (
): "parent_otel_span" in kwargs
proxy_logging_obj = kwargs["proxy_logging_obj"] and kwargs["parent_otel_span"] is not None
await proxy_logging_obj.service_logging_obj.async_service_success_hook( and "proxy_logging_obj" in kwargs
service=ServiceTypes.DB, and kwargs["proxy_logging_obj"] is not None
call_type=func.__name__, ):
parent_otel_span=kwargs["parent_otel_span"], proxy_logging_obj = kwargs["proxy_logging_obj"]
duration=0.0, await proxy_logging_obj.service_logging_obj.async_service_success_hook(
start_time=start_time, service=ServiceTypes.DB,
end_time=end_time, call_type=func.__name__,
) parent_otel_span=kwargs["parent_otel_span"],
# end of logging to otel duration=0.0,
return result start_time=start_time,
end_time=end_time,
)
# end of logging to otel
return result
except Exception as e:
end_time = datetime.now()
if (
"parent_otel_span" in kwargs
and kwargs["parent_otel_span"] is not None
and "proxy_logging_obj" in kwargs
and kwargs["proxy_logging_obj"] is not None
):
proxy_logging_obj = kwargs["proxy_logging_obj"]
await proxy_logging_obj.service_logging_obj.async_service_failure_hook(
error=e,
service=ServiceTypes.DB,
call_type=func.__name__,
duration=0.0,
start_time=start_time,
end_time=end_time,
)
raise e
return wrapper return wrapper