fix - refactor logfire

This commit is contained in:
Ishaan Jaff 2024-06-17 17:21:43 -07:00
parent 6de6bc35a6
commit 18f1a42c5a
2 changed files with 9 additions and 47 deletions

View file

@ -64,6 +64,7 @@ from ..integrations.litedebugger import LiteDebugger
from ..integrations.logfire_logger import LogfireLevel, LogfireLogger from ..integrations.logfire_logger import LogfireLevel, LogfireLogger
from ..integrations.lunary import LunaryLogger from ..integrations.lunary import LunaryLogger
from ..integrations.openmeter import OpenMeterLogger from ..integrations.openmeter import OpenMeterLogger
from ..integrations.opentelemetry import OpenTelemetry, OpenTelemetryConfig
from ..integrations.prometheus import PrometheusLogger from ..integrations.prometheus import PrometheusLogger
from ..integrations.prometheus_services import PrometheusServicesLogger from ..integrations.prometheus_services import PrometheusServicesLogger
from ..integrations.prompt_layer import PromptLayerLogger from ..integrations.prompt_layer import PromptLayerLogger
@ -664,32 +665,6 @@ class Logging:
end_time=end_time, end_time=end_time,
print_verbose=print_verbose, print_verbose=print_verbose,
) )
if callback == "logfire":
global logfireLogger
verbose_logger.debug("reaches logfire for success logging!")
kwargs = {}
for k, v in self.model_call_details.items():
if (
k != "original_response"
): # copy.deepcopy raises errors as this could be a coroutine
kwargs[k] = v
# this only logs streaming once, complete_streaming_response exists i.e when stream ends
if self.stream:
if "complete_streaming_response" not in kwargs:
continue
else:
print_verbose("reaches logfire for streaming logging!")
result = kwargs["complete_streaming_response"]
logfireLogger.log_event(
kwargs=self.model_call_details,
response_obj=result,
start_time=start_time,
end_time=end_time,
print_verbose=print_verbose,
level=LogfireLevel.INFO.value,
)
if callback == "lunary": if callback == "lunary":
print_verbose("reaches lunary for logging!") print_verbose("reaches lunary for logging!")
@ -1594,24 +1569,6 @@ class Logging:
print_verbose=print_verbose, print_verbose=print_verbose,
) )
if callback == "logfire":
verbose_logger.debug("reaches logfire for failure logging!")
kwargs = {}
for k, v in self.model_call_details.items():
if (
k != "original_response"
): # copy.deepcopy raises errors as this could be a coroutine
kwargs[k] = v
kwargs["exception"] = exception
logfireLogger.log_event(
kwargs=kwargs,
response_obj=result,
start_time=start_time,
end_time=end_time,
level=LogfireLevel.ERROR.value,
print_verbose=print_verbose,
)
except Exception as e: except Exception as e:
print_verbose( print_verbose(
f"LiteLLM.LoggingError: [Non-Blocking] Exception occurred while failure logging with integrations {str(e)}" f"LiteLLM.LoggingError: [Non-Blocking] Exception occurred while failure logging with integrations {str(e)}"
@ -1754,8 +1711,6 @@ def set_callbacks(callback_list, function_id=None):
weightsBiasesLogger = WeightsBiasesLogger() weightsBiasesLogger = WeightsBiasesLogger()
elif callback == "langsmith": elif callback == "langsmith":
langsmithLogger = LangsmithLogger() langsmithLogger = LangsmithLogger()
elif callback == "logfire":
logfireLogger = LogfireLogger()
elif callback == "aispend": elif callback == "aispend":
aispendLogger = AISpendLogger() aispendLogger = AISpendLogger()
elif callback == "berrispend": elif callback == "berrispend":
@ -1789,3 +1744,10 @@ def _init_custom_logger_compatible_class(
return LagoLogger() # type: ignore return LagoLogger() # type: ignore
elif logging_integration == "openmeter": elif logging_integration == "openmeter":
return OpenMeterLogger() # type: ignore return OpenMeterLogger() # type: ignore
elif logging_integration == "logfire":
otel_config = OpenTelemetryConfig(
exporter="otlp_http",
endpoint="https://logfire-api.pydantic.dev/v1/traces",
headers=f"Authorization={os.getenv('LOGFIRE_TOKEN')}",
)
return OpenTelemetry(config=otel_config) # type: ignore

View file

@ -24,9 +24,9 @@ general_settings:
litellm_settings: litellm_settings:
success_callback: ["prometheus"] success_callback: ["prometheus"]
callbacks: ["otel"]
failure_callback: ["prometheus"] failure_callback: ["prometheus"]
store_audit_logs: true store_audit_logs: true
turn_off_message_logging: true
redact_messages_in_exceptions: True redact_messages_in_exceptions: True
enforced_params: enforced_params:
- user - user