1616
1717import json
1818
19+ from importlib_metadata import version as v
1920from langtrace .trace_attributes import DatabaseSpanAttributes
20- from langtrace_python_sdk .utils .llm import get_span_name
2121from opentelemetry import baggage , trace
2222from opentelemetry .trace import SpanKind
23- from opentelemetry .trace .status import Status , StatusCode
2423from opentelemetry .trace .propagation import set_span_in_context
24+ from opentelemetry .trace .status import Status , StatusCode
25+
26+ from langtrace_python_sdk .constants import LANGTRACE_SDK_NAME
2527from langtrace_python_sdk .constants .instrumentation .common import (
2628 LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY ,
2729 SERVICE_PROVIDERS ,
2830)
2931from langtrace_python_sdk .constants .instrumentation .weaviate import APIS
32+ from langtrace_python_sdk .utils .llm import get_span_name
3033from langtrace_python_sdk .utils .misc import extract_input_params , to_iso_format
31- from importlib_metadata import version as v
32-
33- from langtrace_python_sdk .constants import LANGTRACE_SDK_NAME
3434
3535# Predefined metadata response attributes
3636METADATA_ATTRIBUTES = [
4545]
4646
4747
48+ def extract_inputs (args , kwargs ):
49+ extracted_params = {}
50+ kwargs_without_properties = {k : v for k , v in kwargs .items () if k != "properties" }
51+ extracted_params .update (extract_input_params (args , kwargs_without_properties ))
52+
53+ if kwargs .get ("properties" , None ):
54+ extracted_params ["properties" ] = []
55+ for each_prop in kwargs .get ("properties" ):
56+ if hasattr (each_prop , "_to_dict" ):
57+ # append properties to extracted_params
58+ extracted_params ["properties" ].append (each_prop ._to_dict ())
59+
60+ extracted_params ["properties" ] = json .dumps (extracted_params ["properties" ])
61+ return extracted_params
62+
63+
4864def extract_metadata (metadata ):
4965 # Extraction response Query metadata
5066 extracted_metadata = {
@@ -126,7 +142,7 @@ def traced_method(wrapped, instance, args, kwargs):
126142 "db.system" : "weaviate" ,
127143 "db.operation" : api ["OPERATION" ],
128144 "db.collection.name" : collection_name ,
129- "db.query" : json .dumps (extract_input_params (args , kwargs )),
145+ "db.query" : json .dumps (extract_inputs (args , kwargs )),
130146 ** (extra_attributes if extra_attributes is not None else {}),
131147 }
132148
@@ -143,7 +159,6 @@ def traced_method(wrapped, instance, args, kwargs):
143159 try :
144160 # Attempt to call the original method
145161 result = wrapped (* args , ** kwargs )
146- print (result )
147162 if api ["OPERATION" ] in ["query" , "generate" ]:
148163 span .add_event (
149164 name = "db.response" ,
0 commit comments