in Runtime_env/app/utils/tracing.py [0:0]
def export(self, spans: Sequence[ReadableSpan]) -> SpanExportResult:
"""
Export the spans to Google Cloud Logging and Cloud Trace.
:param spans: A sequence of spans to export
:return: The result of the export operation
"""
for span in spans:
span_context = span.get_span_context()
trace_id = format(span_context.trace_id, "x")
span_id = format(span_context.span_id, "x")
span_dict = json.loads(span.to_json())
span_dict["trace"] = f"projects/{self.project_id}/traces/{trace_id}"
span_dict["span_id"] = span_id
span_dict = self._process_large_attributes(
span_dict=span_dict, span_id=span_id
)
if self.debug:
print(span_dict)
# Log the span data to Google Cloud Logging
self.logger.log_struct(span_dict, severity="INFO")
# Export spans to Google Cloud Trace using the parent class method
return super().export(spans)