@@ -148,27 +148,46 @@ def _get_db_system(name: str) -> "Optional[str]":
148148
149149def _set_db_data (span : "Union[Span, StreamedSpan]" , conn : "Any" ) -> None :
150150 if isinstance (span , StreamedSpan ):
151- set_on_span = span .set_attribute
151+ db_system = _get_db_system (conn .engine .name )
152+ if db_system is not None :
153+ span .set_attribute (SPANDATA .DB_SYSTEM_NAME , db_system )
154+
155+ try :
156+ driver = conn .dialect .driver
157+ if driver :
158+ span .set_attribute (SPANDATA .DB_DRIVER_NAME , driver )
159+ except Exception :
160+ pass
161+
162+ if conn .engine .url is None :
163+ return
164+
165+ db_name = conn .engine .url .database
166+ if db_name is not None :
167+ span .set_attribute (SPANDATA .DB_NAMESPACE , db_name )
152168 else :
153- set_on_span = span .set_data
169+ db_system = _get_db_system (conn .engine .name )
170+ if db_system is not None :
171+ span .set_data (SPANDATA .DB_SYSTEM , db_system )
154172
155- db_system = _get_db_system (conn .engine .name )
156- if db_system is not None :
157- set_on_span (SPANDATA .DB_SYSTEM_NAME , db_system )
173+ try :
174+ driver = conn .dialect .driver
175+ if driver :
176+ span .set_data (SPANDATA .DB_DRIVER_NAME , driver )
177+ except Exception :
178+ pass
158179
159- try :
160- driver = conn .dialect .driver
161- if driver :
162- set_on_span (SPANDATA .DB_DRIVER_NAME , driver )
163- except Exception :
164- pass
180+ if conn .engine .url is None :
181+ return
165182
166- if conn .engine .url is None :
167- return
183+ db_name = conn .engine .url .database
184+ if db_name is not None :
185+ span .set_data (SPANDATA .DB_NAME , db_name )
168186
169- db_name = conn .engine .url .database
170- if db_name is not None :
171- set_on_span (SPANDATA .DB_NAMESPACE , db_name )
187+ if isinstance (span , StreamedSpan ):
188+ set_on_span = span .set_attribute
189+ else :
190+ set_on_span = span .set_data
172191
173192 server_address = conn .engine .url .host
174193 if server_address is not None :
0 commit comments